Improved the guessing of capabilities on Travis
The logic is not duplicated anymore between BrowserStack and Travis, and user-defined capabilities now win over guessed capabilities. Refs #140
This commit is contained in:
@@ -42,16 +42,6 @@ class BrowserStackFactory extends Selenium2Factory
|
|||||||
*/
|
*/
|
||||||
public function buildDriver(array $config)
|
public function buildDriver(array $config)
|
||||||
{
|
{
|
||||||
$capabilities = $config['capabilities'];
|
|
||||||
$capabilities['tags'] = array(php_uname('n'), 'PHP '.phpversion());
|
|
||||||
|
|
||||||
if (getenv('TRAVIS_JOB_NUMBER')) {
|
|
||||||
$capabilities['tunnel-identifier'] = getenv('TRAVIS_JOB_NUMBER');
|
|
||||||
$capabilities['build'] = getenv('TRAVIS_BUILD_NUMBER');
|
|
||||||
$capabilities['tags'] = array('Travis-CI', 'PHP '.phpversion());
|
|
||||||
}
|
|
||||||
|
|
||||||
$config['capabilities'] = $capabilities;
|
|
||||||
$config['wd_host'] = sprintf('%s:%s@hub.browserstack.com/wd/hub', $config['username'], $config['access_key']);
|
$config['wd_host'] = sprintf('%s:%s@hub.browserstack.com/wd/hub', $config['username'], $config['access_key']);
|
||||||
|
|
||||||
return parent::buildDriver($config);
|
return parent::buildDriver($config);
|
||||||
|
|||||||
@@ -43,21 +43,11 @@ class SauceLabsFactory extends Selenium2Factory
|
|||||||
*/
|
*/
|
||||||
public function buildDriver(array $config)
|
public function buildDriver(array $config)
|
||||||
{
|
{
|
||||||
$capabilities = $config['capabilities'];
|
|
||||||
$capabilities['tags'] = array(php_uname('n'), 'PHP '.phpversion());
|
|
||||||
|
|
||||||
if (getenv('TRAVIS_JOB_NUMBER')) {
|
|
||||||
$capabilities['tunnel-identifier'] = getenv('TRAVIS_JOB_NUMBER');
|
|
||||||
$capabilities['build'] = getenv('TRAVIS_BUILD_NUMBER');
|
|
||||||
$capabilities['tags'] = array('Travis-CI', 'PHP '.phpversion());
|
|
||||||
}
|
|
||||||
|
|
||||||
$host = 'ondemand.saucelabs.com';
|
$host = 'ondemand.saucelabs.com';
|
||||||
if ($config['connect']) {
|
if ($config['connect']) {
|
||||||
$host = 'localhost:4445';
|
$host = 'localhost:4445';
|
||||||
}
|
}
|
||||||
|
|
||||||
$config['capabilities'] = $capabilities;
|
|
||||||
$config['wd_host'] = sprintf('%s:%s@%s/wd/hub', $config['username'], $config['access_key'], $host);
|
$config['wd_host'] = sprintf('%s:%s@%s/wd/hub', $config['username'], $config['access_key'], $host);
|
||||||
|
|
||||||
return parent::buildDriver($config);
|
return parent::buildDriver($config);
|
||||||
@@ -75,13 +65,13 @@ class SauceLabsFactory extends Selenium2Factory
|
|||||||
->scalarNode('max-duration')->defaultValue('300')->end()
|
->scalarNode('max-duration')->defaultValue('300')->end()
|
||||||
->scalarNode('command-timeout')->end()
|
->scalarNode('command-timeout')->end()
|
||||||
->scalarNode('idle-timeout')->end()
|
->scalarNode('idle-timeout')->end()
|
||||||
->scalarNode('build')->info('will be set automatically based on the TRAVIS_JOB_NUMBER environment variable if available')->end()
|
->scalarNode('build')->info('will be set automatically based on the TRAVIS_BUILD_NUMBER environment variable if available')->end()
|
||||||
->arrayNode('custom-data')
|
->arrayNode('custom-data')
|
||||||
->useAttributeAsKey('')
|
->useAttributeAsKey('')
|
||||||
->prototype('variable')->end()
|
->prototype('variable')->end()
|
||||||
->end()
|
->end()
|
||||||
->scalarNode('screen-resolution')->end()
|
->scalarNode('screen-resolution')->end()
|
||||||
->scalarNode('tunnel-identifier')->end()
|
->scalarNode('tunnel-identifier')->info('will be set automatically based on the TRAVIS_JOB_NUMBER environment variable if available')->end()
|
||||||
->arrayNode('prerun')
|
->arrayNode('prerun')
|
||||||
->children()
|
->children()
|
||||||
->scalarNode('executable')->isRequired()->end()
|
->scalarNode('executable')->isRequired()->end()
|
||||||
|
|||||||
@@ -60,9 +60,21 @@ class Selenium2Factory implements DriverFactory
|
|||||||
$extraCapabilities = $config['capabilities']['extra_capabilities'];
|
$extraCapabilities = $config['capabilities']['extra_capabilities'];
|
||||||
unset($config['capabilities']['extra_capabilities']);
|
unset($config['capabilities']['extra_capabilities']);
|
||||||
|
|
||||||
|
if (getenv('TRAVIS_JOB_NUMBER')) {
|
||||||
|
$guessedCapabilities = array(
|
||||||
|
'tunnel-identifier' => getenv('TRAVIS_JOB_NUMBER'),
|
||||||
|
'build' => getenv('TRAVIS_BUILD_NUMBER'),
|
||||||
|
'tags' => array('Travis-CI', 'PHP '.phpversion()),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$guessedCapabilities = array(
|
||||||
|
'tags' => array(php_uname('n'), 'PHP '.phpversion()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return new Definition('Behat\Mink\Driver\Selenium2Driver', array(
|
return new Definition('Behat\Mink\Driver\Selenium2Driver', array(
|
||||||
$config['browser'],
|
$config['browser'],
|
||||||
array_replace($extraCapabilities, $config['capabilities']),
|
array_replace($extraCapabilities, $guessedCapabilities, $config['capabilities']),
|
||||||
$config['wd_host'],
|
$config['wd_host'],
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user