X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fbehat%2Fmink-extension%2Fsrc%2FBehat%2FMinkExtension%2FServiceContainer%2FDriver%2FSauceLabsFactory.php;fp=vendor%2Fbehat%2Fmink-extension%2Fsrc%2FBehat%2FMinkExtension%2FServiceContainer%2FDriver%2FSauceLabsFactory.php;h=ee436a59f4c2c6203cdbb9570b01789112306ad2;hp=0000000000000000000000000000000000000000;hb=1270d9129ce8f27c9b28b10518e32132c58e0aca;hpb=c27c0f0cdaa3f354b1fe54a56ae7e854be6e3f68 diff --git a/vendor/behat/mink-extension/src/Behat/MinkExtension/ServiceContainer/Driver/SauceLabsFactory.php b/vendor/behat/mink-extension/src/Behat/MinkExtension/ServiceContainer/Driver/SauceLabsFactory.php new file mode 100644 index 000000000..ee436a59f --- /dev/null +++ b/vendor/behat/mink-extension/src/Behat/MinkExtension/ServiceContainer/Driver/SauceLabsFactory.php @@ -0,0 +1,98 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Behat\MinkExtension\ServiceContainer\Driver; + +use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; + +class SauceLabsFactory extends Selenium2Factory +{ + /** + * {@inheritdoc} + */ + public function getDriverName() + { + return 'sauce_labs'; + } + + /** + * {@inheritdoc} + */ + public function configure(ArrayNodeDefinition $builder) + { + $builder + ->children() + ->scalarNode('username')->defaultValue(getenv('SAUCE_USERNAME'))->end() + ->scalarNode('access_key')->defaultValue(getenv('SAUCE_ACCESS_KEY'))->end() + ->booleanNode('connect')->defaultFalse()->end() + ->scalarNode('browser')->defaultValue('firefox')->end() + ->append($this->getCapabilitiesNode()) + ->end() + ; + } + + /** + * {@inheritdoc} + */ + public function buildDriver(array $config) + { + $host = 'ondemand.saucelabs.com'; + if ($config['connect']) { + $host = 'localhost:4445'; + } + + $config['wd_host'] = sprintf('%s:%s@%s/wd/hub', $config['username'], $config['access_key'], $host); + + return parent::buildDriver($config); + } + + protected function getCapabilitiesNode() + { + $node = parent::getCapabilitiesNode(); + + $node + ->children() + ->scalarNode('platform')->defaultValue('Linux')->end() + ->scalarNode('selenium-version')->end() + ->scalarNode('max-duration')->end() + ->scalarNode('command-timeout')->end() + ->scalarNode('idle-timeout')->end() + ->scalarNode('build')->info('will be set automatically based on the TRAVIS_BUILD_NUMBER environment variable if available')->end() + ->arrayNode('custom-data') + ->useAttributeAsKey('') + ->prototype('variable')->end() + ->end() + ->scalarNode('screen-resolution')->end() + ->scalarNode('tunnel-identifier')->info('will be set automatically based on the TRAVIS_JOB_NUMBER environment variable if available')->end() + ->arrayNode('prerun') + ->children() + ->scalarNode('executable')->isRequired()->end() + ->arrayNode('args')->prototype('scalar')->end()->end() + ->booleanNode('background')->defaultFalse()->end() + ->end() + ->end() + ->booleanNode('record-video')->end() + ->booleanNode('record-screenshots')->end() + ->booleanNode('capture-html')->end() + ->booleanNode('disable-popup-handler')->end() + ->end() + ->validate() + ->ifTrue(function ($v) {return empty($v['custom-data']);}) + ->then(function ($v) { + unset ($v['custom-data']); + + return $v; + }) + ->end() + ; + + return $node; + } +}