annotate core/tests/Drupal/FunctionalJavascriptTests/DrupalSelenium2Driver.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 1fec387a4317
children af1871eacc83
rev   line source
Chris@14 1 <?php
Chris@14 2
Chris@14 3 namespace Drupal\FunctionalJavascriptTests;
Chris@14 4
Chris@14 5 use Behat\Mink\Driver\Selenium2Driver;
Chris@17 6 use WebDriver\ServiceFactory;
Chris@14 7
Chris@14 8 /**
Chris@14 9 * Provides a driver for Selenium testing.
Chris@14 10 */
Chris@14 11 class DrupalSelenium2Driver extends Selenium2Driver {
Chris@14 12
Chris@14 13 /**
Chris@14 14 * {@inheritdoc}
Chris@14 15 */
Chris@17 16 public function __construct($browserName = 'firefox', $desiredCapabilities = NULL, $wdHost = 'http://localhost:4444/wd/hub') {
Chris@17 17 parent::__construct($browserName, $desiredCapabilities, $wdHost);
Chris@17 18 ServiceFactory::getInstance()->setServiceClass('service.curl', WebDriverCurlService::class);
Chris@17 19 }
Chris@17 20
Chris@17 21 /**
Chris@17 22 * {@inheritdoc}
Chris@17 23 */
Chris@14 24 public function setCookie($name, $value = NULL) {
Chris@14 25 if ($value === NULL) {
Chris@14 26 $this->getWebDriverSession()->deleteCookie($name);
Chris@14 27 return;
Chris@14 28 }
Chris@14 29
Chris@14 30 $cookieArray = [
Chris@14 31 'name' => $name,
Chris@14 32 'value' => urlencode($value),
Chris@14 33 'secure' => FALSE,
Chris@14 34 // Unlike \Behat\Mink\Driver\Selenium2Driver::setCookie we set a domain
Chris@14 35 // and an expire date, as otherwise cookies leak from one test site into
Chris@14 36 // another.
Chris@14 37 'domain' => parse_url($this->getWebDriverSession()->url(), PHP_URL_HOST),
Chris@14 38 'expires' => time() + 80000,
Chris@14 39 ];
Chris@14 40
Chris@14 41 $this->getWebDriverSession()->setCookie($cookieArray);
Chris@14 42 }
Chris@14 43
Chris@14 44 }