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