refactored extension to support latest changes in Behat edge
This commit is contained in:
@@ -1,145 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Behat\MinkExtension;
|
||||
|
||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder,
|
||||
Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
|
||||
/*
|
||||
* This file is part of the Behat\MinkExtension
|
||||
*
|
||||
* (c) Konstantin Kudryashov <ever.zet@gmail.com>
|
||||
*
|
||||
* This source file is subject to the MIT license that is bundled
|
||||
* with this source code in the file LICENSE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* MinkExtension configuration tree.
|
||||
*
|
||||
* @author Konstantin Kudryashov <ever.zet@gmail.com>
|
||||
*/
|
||||
class Configuration implements ConfigurationInterface
|
||||
{
|
||||
/**
|
||||
* Returns configuration tree.
|
||||
*
|
||||
* @return TreeBuilder
|
||||
*/
|
||||
public function getConfigTreeBuilder()
|
||||
{
|
||||
$treeBuilder = new TreeBuilder();
|
||||
|
||||
return $treeBuilder->root('mink')->
|
||||
children()->
|
||||
scalarNode('mink_loader')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('base_url')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('files_path')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('show_cmd')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('show_tmp_dir')->
|
||||
defaultValue(sys_get_temp_dir())->
|
||||
end()->
|
||||
scalarNode('default_session')->
|
||||
defaultValue('goutte')->
|
||||
end()->
|
||||
scalarNode('javascript_session')->
|
||||
defaultValue('sahi')->
|
||||
end()->
|
||||
scalarNode('browser_name')->
|
||||
defaultValue('firefox')->
|
||||
end()->
|
||||
arrayNode('goutte')->
|
||||
children()->
|
||||
arrayNode('zend_config')->
|
||||
useAttributeAsKey('key')->
|
||||
prototype('variable')->end()->
|
||||
end()->
|
||||
arrayNode('server_parameters')->
|
||||
useAttributeAsKey('key')->
|
||||
prototype('variable')->end()->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('sahi')->
|
||||
children()->
|
||||
scalarNode('sid')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('host')->
|
||||
defaultValue('localhost')->
|
||||
end()->
|
||||
scalarNode('port')->
|
||||
defaultValue(9999)->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('zombie')->
|
||||
children()->
|
||||
scalarNode('host')->
|
||||
defaultValue('127.0.0.1')->
|
||||
end()->
|
||||
scalarNode('port')->
|
||||
defaultValue(8124)->
|
||||
end()->
|
||||
scalarNode('auto_server')->
|
||||
defaultValue(true)->
|
||||
end()->
|
||||
scalarNode('node_bin')->
|
||||
defaultValue('node')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('selenium')->
|
||||
children()->
|
||||
scalarNode('host')->
|
||||
defaultValue('127.0.0.1')->
|
||||
end()->
|
||||
scalarNode('port')->
|
||||
defaultValue(4444)->
|
||||
end()->
|
||||
scalarNode('browser')->
|
||||
defaultValue('*%behat.mink.browser_name%')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('selenium2')->
|
||||
children()->
|
||||
scalarNode('browser')->
|
||||
defaultValue('%behat.mink.browser_name%')->
|
||||
end()->
|
||||
arrayNode('capabilities')->
|
||||
children()->
|
||||
scalarNode('browserName')->
|
||||
defaultValue('firefox')->
|
||||
end()->
|
||||
scalarNode('version')->
|
||||
defaultValue(8)->
|
||||
end()->
|
||||
scalarNode('platform')->
|
||||
defaultValue('ANY')->
|
||||
end()->
|
||||
scalarNode('browserVersion')->
|
||||
defaultValue(8)->
|
||||
end()->
|
||||
scalarNode('browser')->
|
||||
defaultValue('firefox')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
scalarNode('wd_host')->
|
||||
defaultValue('http://localhost:4444/wd/hub')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
end();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Behat\MinkExtension\Context\ClassGuesser;
|
||||
|
||||
use Behat\Behat\Context\ClassGuesser\ClassGuesserInterface;
|
||||
|
||||
/**
|
||||
* Mink context class guesser.
|
||||
* Provides Mink context class if no other class found.
|
||||
*/
|
||||
class MinkContextClassGuesser implements ClassGuesserInterface
|
||||
{
|
||||
/**
|
||||
* Tries to guess context classname.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function guess()
|
||||
{
|
||||
return 'Behat\\MinkExtension\\Context\\MinkContext';
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace Behat\MinkExtension\Context;
|
||||
namespace Behat\MinkExtension\Context\Initializer;
|
||||
|
||||
use Behat\Behat\Context\ContextInitializerInterface,
|
||||
use Behat\Behat\Context\Initializer\InitializerInterface,
|
||||
Behat\Behat\Context\ContextInterface;
|
||||
|
||||
use Behat\Mink\Mink;
|
||||
|
||||
use Behat\MinkExtension\Context\MinkAwareContextInterface;
|
||||
|
||||
/*
|
||||
* This file is part of the Behat\MinkExtension.
|
||||
* (c) Konstantin Kudryashov <ever.zet@gmail.com>
|
||||
@@ -21,7 +23,7 @@ use Behat\Mink\Mink;
|
||||
*
|
||||
* @author Konstantin Kudryashov <ever.zet@gmail.com>
|
||||
*/
|
||||
class MinkAwareContextInitializer implements ContextInitializerInterface
|
||||
class MinkAwareInitializer implements InitializerInterface
|
||||
{
|
||||
private $mink;
|
||||
private $parameters;
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace Behat\MinkExtension;
|
||||
|
||||
use Symfony\Component\Config\Definition\Processor,
|
||||
Symfony\Component\Config\FileLocator,
|
||||
use Symfony\Component\Config\FileLocator,
|
||||
Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition,
|
||||
Symfony\Component\DependencyInjection\ContainerBuilder,
|
||||
Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||
|
||||
@@ -33,18 +33,14 @@ class Extension implements ExtensionInterface
|
||||
*/
|
||||
public function load(array $config, ContainerBuilder $container)
|
||||
{
|
||||
$processor = new Processor();
|
||||
$configuration = new Configuration();
|
||||
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/services'));
|
||||
|
||||
$config = $processor->processConfiguration($configuration, array($config));
|
||||
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/services'));
|
||||
$loader->load('mink.xml');
|
||||
|
||||
if (isset($config['mink_loader'])) {
|
||||
$configPath = $container->getParameter('behat.paths.config');
|
||||
$basePath = $container->getParameter('behat.paths.base');
|
||||
|
||||
if (file_exists($configPath.DIRECTORY_SEPARATOR.$config['mink_loader'])) {
|
||||
require($configPath.DIRECTORY_SEPARATOR.$config['mink_loader']);
|
||||
if (file_exists($basePath.DIRECTORY_SEPARATOR.$config['mink_loader'])) {
|
||||
require($basePath.DIRECTORY_SEPARATOR.$config['mink_loader']);
|
||||
} else {
|
||||
require($config['mink_loader']);
|
||||
}
|
||||
@@ -83,6 +79,126 @@ class Extension implements ExtensionInterface
|
||||
$container->setParameter('mink.paths.lib', $minkLibPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setups configuration for current extension.
|
||||
*
|
||||
* @param ArrayNodeDefinition $builder
|
||||
*/
|
||||
public function getConfig(ArrayNodeDefinition $builder)
|
||||
{
|
||||
$builder->
|
||||
children()->
|
||||
scalarNode('mink_loader')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('base_url')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('files_path')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('show_cmd')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('show_tmp_dir')->
|
||||
defaultValue(sys_get_temp_dir())->
|
||||
end()->
|
||||
scalarNode('default_session')->
|
||||
defaultValue('goutte')->
|
||||
end()->
|
||||
scalarNode('javascript_session')->
|
||||
defaultValue('selenium2')->
|
||||
end()->
|
||||
scalarNode('browser_name')->
|
||||
defaultValue('firefox')->
|
||||
end()->
|
||||
arrayNode('goutte')->
|
||||
children()->
|
||||
arrayNode('zend_config')->
|
||||
useAttributeAsKey('key')->
|
||||
prototype('variable')->end()->
|
||||
end()->
|
||||
arrayNode('server_parameters')->
|
||||
useAttributeAsKey('key')->
|
||||
prototype('variable')->end()->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('sahi')->
|
||||
children()->
|
||||
scalarNode('sid')->
|
||||
defaultNull()->
|
||||
end()->
|
||||
scalarNode('host')->
|
||||
defaultValue('localhost')->
|
||||
end()->
|
||||
scalarNode('port')->
|
||||
defaultValue(9999)->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('zombie')->
|
||||
children()->
|
||||
scalarNode('host')->
|
||||
defaultValue('127.0.0.1')->
|
||||
end()->
|
||||
scalarNode('port')->
|
||||
defaultValue(8124)->
|
||||
end()->
|
||||
scalarNode('auto_server')->
|
||||
defaultValue(true)->
|
||||
end()->
|
||||
scalarNode('node_bin')->
|
||||
defaultValue('node')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('selenium')->
|
||||
children()->
|
||||
scalarNode('host')->
|
||||
defaultValue('127.0.0.1')->
|
||||
end()->
|
||||
scalarNode('port')->
|
||||
defaultValue(4444)->
|
||||
end()->
|
||||
scalarNode('browser')->
|
||||
defaultValue('*%behat.mink.browser_name%')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
arrayNode('selenium2')->
|
||||
children()->
|
||||
scalarNode('browser')->
|
||||
defaultValue('%behat.mink.browser_name%')->
|
||||
end()->
|
||||
arrayNode('capabilities')->
|
||||
children()->
|
||||
scalarNode('browserName')->
|
||||
defaultValue('firefox')->
|
||||
end()->
|
||||
scalarNode('version')->
|
||||
defaultValue(8)->
|
||||
end()->
|
||||
scalarNode('platform')->
|
||||
defaultValue('ANY')->
|
||||
end()->
|
||||
scalarNode('browserVersion')->
|
||||
defaultValue(8)->
|
||||
end()->
|
||||
scalarNode('browser')->
|
||||
defaultValue('firefox')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
scalarNode('wd_host')->
|
||||
defaultValue('http://localhost:4444/wd/hub')->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
end()->
|
||||
end();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns compiler passes used by mink extension.
|
||||
*
|
||||
|
||||
@@ -9,10 +9,9 @@
|
||||
<parameter key="behat.mink.class">Behat\Mink\Mink</parameter>
|
||||
<parameter key="behat.mink.session.class">Behat\Mink\Session</parameter>
|
||||
<parameter key="behat.mink.selectors_handler.class">Behat\Mink\Selector\SelectorsHandler</parameter>
|
||||
<parameter key="behat.test_client.class">Behat\MinkBundle\Client</parameter>
|
||||
|
||||
<parameter key="behat.mink.default_session">goutte</parameter>
|
||||
<parameter key="behat.mink.javascript_session">sahi</parameter>
|
||||
<parameter key="behat.mink.javascript_session">selenium2</parameter>
|
||||
<parameter key="behat.mink.base_url">null</parameter>
|
||||
<parameter key="behat.mink.show_cmd">null</parameter>
|
||||
<parameter key="behat.mink.show_tmp_dir">null</parameter>
|
||||
@@ -33,10 +32,14 @@
|
||||
<tag name="behat.mink.selector" alias="named" />
|
||||
</service>
|
||||
|
||||
<service id="behat.mink.context_initializer" class="Behat\MinkExtension\Context\MinkAwareContextInitializer">
|
||||
<service id="behat.mink.context.initializer" class="Behat\MinkExtension\Context\Initializer\MinkAwareInitializer">
|
||||
<argument type="service" id="behat.mink" />
|
||||
<argument>%behat.mink.parameters%</argument>
|
||||
<tag name="behat.context_initializer" />
|
||||
<tag name="behat.context.initializer" />
|
||||
</service>
|
||||
|
||||
<service id="behat.mink.context.class_guesser" class="Behat\MinkExtension\Context\ClassGuesser\MinkContextClassGuesser">
|
||||
<tag name="behat.context.class_guesser" priority="-1" />
|
||||
</service>
|
||||
|
||||
</services>
|
||||
|
||||
Reference in New Issue
Block a user