Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Behat\Mink\Driver; Chris@0: Chris@0: use Behat\Mink\Driver\Goutte\Client as ExtendedClient; Chris@0: use Goutte\Client; Chris@0: Chris@0: /** Chris@0: * Goutte driver. Chris@0: * Chris@0: * @author Konstantin Kudryashov Chris@0: */ Chris@0: class GoutteDriver extends BrowserKitDriver Chris@0: { Chris@0: /** Chris@0: * Initializes Goutte driver. Chris@0: * Chris@0: * @param Client $client Goutte client instance Chris@0: */ Chris@0: public function __construct(Client $client = null) Chris@0: { Chris@0: parent::__construct($client ?: new ExtendedClient()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function setBasicAuth($user, $password) Chris@0: { Chris@0: if (false === $user) { Chris@0: $this->getClient()->resetAuth(); Chris@0: Chris@0: return; Chris@0: } Chris@0: Chris@0: $this->getClient()->setAuth($user, $password); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Gets the Goutte client. Chris@0: * Chris@0: * The method is overwritten only to provide the appropriate return type hint. Chris@0: * Chris@0: * @return Client Chris@0: */ Chris@0: public function getClient() Chris@0: { Chris@0: return parent::getClient(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function reset() Chris@0: { Chris@0: parent::reset(); Chris@0: $this->getClient()->resetAuth(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: protected function prepareUrl($url) Chris@0: { Chris@0: return $url; Chris@0: } Chris@0: }