protected function setUpSessionStrategy($params) { // This logic enables us to have a session strategy reused for each // item in self::$browsers. We don't want them both to share one // and we don't want each test for a specific browser to have a // new strategy if ($params == self::$lastBrowserParams) { // do nothing so we use the same session strategy for this // browser } elseif (isset($params['sessionStrategy'])) { $strat = $params['sessionStrategy']; if ($strat != "isolated" && $strat != "shared") { throw new InvalidArgumentException("Session strategy must be either 'isolated' or 'shared'"); } elseif ($strat == "isolated") { self::$browserSessionStrategy = new PHPUnit_Extensions_Selenium2TestCase_SessionStrategy_Isolated(); } else { self::$browserSessionStrategy = new PHPUnit_Extensions_Selenium2TestCase_SessionStrategy_Shared(self::defaultSessionStrategy()); } } else { self::$browserSessionStrategy = self::defaultSessionStrategy(); } self::$lastBrowserParams = $params; $this->localSessionStrategy = self::$browserSessionStrategy; }