DrupalSelenium2Driver.php 1.2 KB

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