diff --git a/src/Behat/MinkExtension/Extension.php b/src/Behat/MinkExtension/Extension.php index 624263f..51cc0dc 100644 --- a/src/Behat/MinkExtension/Extension.php +++ b/src/Behat/MinkExtension/Extension.php @@ -99,31 +99,6 @@ class Extension implements ExtensionInterface } $loader->load('sessions/saucelabs.xml'); - - $http = 'https'; - $host = 'ondemand.saucelabs.com'; - if ($config['saucelabs']['connect']) { - $http = 'http'; - $host = 'localhost:4445'; - } - - $username = $config['saucelabs']['username']; - $accessKey = $config['saucelabs']['access_key']; - - $container->setParameter('behat.mink.saucelabs.wd_host', sprintf( - '%s://%s:%s@%s/wd/hub', $http, $username, $accessKey, $host - )); - $container->setParameter('behat.mink.saucelabs.browser', - $config['saucelabs']['capabilities']['browser_name'] - ); - - if ($config['saucelabs']['travis']) { - $capabilities = $container->getParameter('behat.mink.saucelabs.capabilities'); - $capabilities['tunnel-identifier'] = getenv('TRAVIS_JOB_NUMBER'); - $capabilities['build'] = getenv('TRAVIS_BUILD_NUMBER'); - - $container->setParameter('behat.mink.saucelabs.capabilities'); - } } $minkParameters = array(); @@ -142,6 +117,29 @@ class Extension implements ExtensionInterface } $container->setParameter('behat.mink.parameters', $minkParameters); + if (isset($config['saucelabs'])) { + $capabilities = $container->getParameter('behat.mink.saucelabs.capabilities'); + + if ($config['saucelabs']['travis']) { + $capabilities['tunnel-identifier'] = getenv('TRAVIS_JOB_NUMBER'); + $capabilities['build'] = getenv('TRAVIS_BUILD_NUMBER'); + } + + $container->setParameter('behat.mink.saucelabs.capabilities', $capabilities); + + $host = 'ondemand.saucelabs.com'; + if ($config['saucelabs']['connect']) { + $host = 'localhost:4445'; + } + + $username = $config['saucelabs']['username']; + $accessKey = $config['saucelabs']['access_key']; + + $container->setParameter('behat.mink.saucelabs.wd_host', sprintf( + '%s:%s@%s/wd/hub', $username, $accessKey, $host + )); + } + if (isset($config['base_url'])) { $container->setParameter('behat.mink.base_url', $config['base_url']); } @@ -378,10 +376,13 @@ class Extension implements ExtensionInterface booleanNode('connect')-> defaultValue(isset($config['saucelabs']['connect']) ? 'true' === $config['saucelabs']['connect'] : false)-> end()-> + scalarNode('browser')-> + defaultValue(isset($config['saucelabs']['browser']) ? $config['saucelabs']['browser'] : 'firefox')-> + end()-> arrayNode('capabilities')-> children()-> - scalarNode('browser')-> - defaultValue(isset($config['saucelabs']['browser']) ? $config['saucelabs']['browser'] : 'firefox')-> + scalarNode('name')-> + defaultValue(isset($config['saucelabs']['name']) ? $config['saucelabs']['name'] : 'Behat feature suite')-> end()-> scalarNode('platform')-> defaultValue(isset($config['saucelabs']['platform']) ? $config['saucelabs']['platform'] : 'Linux')-> diff --git a/src/Behat/MinkExtension/services/sessions/saucelabs.xml b/src/Behat/MinkExtension/services/sessions/saucelabs.xml index 8f7f586..680e86d 100644 --- a/src/Behat/MinkExtension/services/sessions/saucelabs.xml +++ b/src/Behat/MinkExtension/services/sessions/saucelabs.xml @@ -7,7 +7,13 @@ Behat\Mink\Driver\Selenium2Driver %behat.mink.browser_name% - + + Behat feature suite + 21 + Linux + 2.31.0 + 300 + https://USERNAME:ACCESS_KEY@ondemand.saucelabs.com/wd/hub