Chris@14
|
1 <?php
|
Chris@14
|
2
|
Chris@14
|
3 namespace Behat\Mink\Tests\Driver;
|
Chris@14
|
4
|
Chris@14
|
5 use Behat\Mink\Driver\Selenium2Driver;
|
Chris@14
|
6
|
Chris@14
|
7 class Selenium2Config extends AbstractConfig
|
Chris@14
|
8 {
|
Chris@14
|
9 public static function getInstance()
|
Chris@14
|
10 {
|
Chris@14
|
11 return new self();
|
Chris@14
|
12 }
|
Chris@14
|
13
|
Chris@14
|
14 /**
|
Chris@14
|
15 * {@inheritdoc}
|
Chris@14
|
16 */
|
Chris@14
|
17 public function createDriver()
|
Chris@14
|
18 {
|
Chris@14
|
19 $browser = getenv('WEB_FIXTURES_BROWSER') ?: 'firefox';
|
Chris@14
|
20 $seleniumHost = $_SERVER['DRIVER_URL'];
|
Chris@14
|
21
|
Chris@14
|
22 return new Selenium2Driver($browser, null, $seleniumHost);
|
Chris@14
|
23 }
|
Chris@14
|
24
|
Chris@14
|
25 /**
|
Chris@14
|
26 * {@inheritdoc}
|
Chris@14
|
27 */
|
Chris@14
|
28 public function skipMessage($testCase, $test)
|
Chris@14
|
29 {
|
Chris@14
|
30 if ('phantomjs' === getenv('WEBDRIVER') && null !== $message = $this->skipPhantomJs($testCase, $test)) {
|
Chris@14
|
31 return $message;
|
Chris@14
|
32 }
|
Chris@14
|
33
|
Chris@14
|
34 if (
|
Chris@14
|
35 'phantomjs' !== getenv('WEBDRIVER')
|
Chris@14
|
36 && 'Behat\Mink\Tests\Driver\Form\Html5Test' === $testCase
|
Chris@14
|
37 && 'testHtml5Types' === $test
|
Chris@14
|
38 ) {
|
Chris@14
|
39 return 'WebDriver does not support setting value in color inputs. See https://code.google.com/p/selenium/issues/detail?id=7650';
|
Chris@14
|
40 }
|
Chris@14
|
41
|
Chris@14
|
42 if (
|
Chris@14
|
43 'Behat\Mink\Tests\Driver\Js\WindowTest' === $testCase
|
Chris@14
|
44 && (0 === strpos($test, 'testWindowMaximize'))
|
Chris@14
|
45 && 'true' === getenv('TRAVIS')
|
Chris@14
|
46 ) {
|
Chris@14
|
47 return 'Maximizing the window does not work when running the browser in Xvfb.';
|
Chris@14
|
48 }
|
Chris@14
|
49
|
Chris@14
|
50 return parent::skipMessage($testCase, $test);
|
Chris@14
|
51 }
|
Chris@14
|
52
|
Chris@14
|
53 /**
|
Chris@14
|
54 * {@inheritdoc}
|
Chris@14
|
55 */
|
Chris@14
|
56 protected function supportsCss()
|
Chris@14
|
57 {
|
Chris@14
|
58 return true;
|
Chris@14
|
59 }
|
Chris@14
|
60
|
Chris@14
|
61 private function skipPhantomJs($testCase, $test)
|
Chris@14
|
62 {
|
Chris@14
|
63 if (
|
Chris@14
|
64 'Behat\Mink\Tests\Driver\Js\WindowTest' === $testCase
|
Chris@14
|
65 && in_array($test, array('testResizeWindow', 'testWindowMaximize'))
|
Chris@14
|
66 ) {
|
Chris@14
|
67 return 'PhantomJS is headless so resizing the window does not make sense.';
|
Chris@14
|
68 }
|
Chris@14
|
69
|
Chris@14
|
70
|
Chris@14
|
71 if (
|
Chris@14
|
72 'Behat\Mink\Tests\Driver\Basic\CookieTest' === $testCase
|
Chris@14
|
73 && 'testHttpOnlyCookieIsDeleted' === $test
|
Chris@14
|
74 ) {
|
Chris@14
|
75 return 'This test does not work for PhantomJS. See https://github.com/detro/ghostdriver/issues/170';
|
Chris@14
|
76 }
|
Chris@14
|
77
|
Chris@14
|
78 return null;
|
Chris@14
|
79 }
|
Chris@14
|
80 }
|