Chris@14: Chris@14: * @author Anthon Pang Chris@14: */ Chris@14: Chris@14: namespace WebDriver; Chris@14: Chris@14: /** Chris@14: * WebDriver class Chris@14: * Chris@14: * @package WebDriver Chris@14: * Chris@14: * @method status Chris@14: */ Chris@14: class WebDriver extends AbstractWebDriver implements WebDriverInterface Chris@14: { Chris@14: /** Chris@14: * {@inheritdoc} Chris@14: */ Chris@14: protected function methods() Chris@14: { Chris@14: return array( Chris@14: 'status' => 'GET', Chris@14: ); Chris@14: } Chris@14: Chris@14: /** Chris@14: * {@inheritdoc} Chris@14: */ Chris@14: public function session($requiredCapabilities = Browser::FIREFOX, $desiredCapabilities = array()) Chris@14: { Chris@14: // for backwards compatibility when the only required capability was browser name Chris@14: if (! is_array($requiredCapabilities)) { Chris@14: $desiredCapabilities[Capability::BROWSER_NAME] = $requiredCapabilities ?: Browser::FIREFOX; Chris@14: Chris@14: $requiredCapabilities = array(); Chris@14: } Chris@14: Chris@14: // required Chris@14: $parameters = array( Chris@14: 'desiredCapabilities' => array_merge($desiredCapabilities, $requiredCapabilities) Chris@14: ); Chris@14: Chris@14: // optional Chris@14: if (! empty($requiredCapabilities)) { Chris@14: $parameters['requiredCapabilities'] = $requiredCapabilities; Chris@14: } Chris@14: Chris@14: $result = $this->curl( Chris@14: 'POST', Chris@14: '/session', Chris@14: $parameters, Chris@14: array(CURLOPT_FOLLOWLOCATION => true) Chris@14: ); Chris@14: Chris@14: return new Session($result['sessionUrl']); Chris@14: } Chris@14: Chris@14: /** Chris@14: * {@inheritdoc} Chris@14: */ Chris@14: public function sessions() Chris@14: { Chris@14: $result = $this->curl('GET', '/sessions'); Chris@14: $sessions = array(); Chris@14: Chris@14: foreach ($result['value'] as $session) { Chris@14: $sessions[] = new Session($this->url . '/session/' . $session['id']); Chris@14: } Chris@14: Chris@14: return $sessions; Chris@14: } Chris@14: }