Merge pull request #30 from jubianchi/master

Add config via env
This commit is contained in:
Konstantin Kudryashov
2012-08-23 02:17:47 -07:00

View File

@@ -123,31 +123,33 @@ class Extension implements ExtensionInterface
*/ */
public function getConfig(ArrayNodeDefinition $builder) public function getConfig(ArrayNodeDefinition $builder)
{ {
$config = $this->loadEnvironmentConfiguration();
$builder-> $builder->
children()-> children()->
scalarNode('mink_loader')-> scalarNode('mink_loader')->
defaultNull()-> defaultValue(isset($config['mink_loader']) ? $config['mink_loader'] : null)->
end()-> end()->
scalarNode('base_url')-> scalarNode('base_url')->
defaultNull()-> defaultValue(isset($config['base_url']) ? $config['base_url'] : null)->
end()-> end()->
scalarNode('files_path')-> scalarNode('files_path')->
defaultNull()-> defaultValue(isset($config['files_path']) ? $config['files_path'] : null)->
end()-> end()->
scalarNode('show_cmd')-> scalarNode('show_cmd')->
defaultNull()-> defaultValue(isset($config['show_cmd']) ? $config['show_cmd'] : null)->
end()-> end()->
scalarNode('show_tmp_dir')-> scalarNode('show_tmp_dir')->
defaultValue(sys_get_temp_dir())-> defaultValue(isset($config['show_tmp_dir']) ? $config['show_tmp_dir'] : sys_get_temp_dir())->
end()-> end()->
scalarNode('default_session')-> scalarNode('default_session')->
defaultValue('goutte')-> defaultValue(isset($config['default_session']) ? $config['default_session'] : 'goutte')->
end()-> end()->
scalarNode('javascript_session')-> scalarNode('javascript_session')->
defaultValue('selenium2')-> defaultValue(isset($config['javascript_session']) ? $config['javascript_session'] : 'selenium2')->
end()-> end()->
scalarNode('browser_name')-> scalarNode('browser_name')->
defaultValue('firefox')-> defaultValue(isset($config['browser_name']) ? $config['browser_name'] : 'firefox')->
end()-> end()->
arrayNode('goutte')-> arrayNode('goutte')->
children()-> children()->
@@ -160,66 +162,66 @@ class Extension implements ExtensionInterface
arrayNode('sahi')-> arrayNode('sahi')->
children()-> children()->
scalarNode('sid')-> scalarNode('sid')->
defaultNull()-> defaultValue(isset($config['sahi']['sid']) ? $config['sahi']['sid'] : null)->
end()-> end()->
scalarNode('host')-> scalarNode('host')->
defaultValue('localhost')-> defaultValue('localhost')->
end()-> end()->
scalarNode('port')-> scalarNode('port')->
defaultValue(9999)-> defaultValue(isset($config['sahi']['port']) ? $config['sahi']['port'] : 999)->
end()-> end()->
end()-> end()->
end()-> end()->
arrayNode('zombie')-> arrayNode('zombie')->
children()-> children()->
scalarNode('host')-> scalarNode('host')->
defaultValue('127.0.0.1')-> defaultValue(isset($config['zombie']['host']) ? $config['zombie']['host'] : '127.0.0.1')->
end()-> end()->
scalarNode('port')-> scalarNode('port')->
defaultValue(8124)-> defaultValue(isset($config['zombie']['port']) ? $config['zombie']['port'] : 8124)->
end()-> end()->
scalarNode('auto_server')-> scalarNode('auto_server')->
defaultValue(true)-> defaultValue(isset($config['zombie']['auto_server']) ? $config['zombie']['auto_server'] : true)->
end()-> end()->
scalarNode('node_bin')-> scalarNode('node_bin')->
defaultValue('node')-> defaultValue(isset($config['zombie']['node_bin']) ? $config['zombie']['node_bin'] : 'node')->
end()-> end()->
end()-> end()->
end()-> end()->
arrayNode('selenium')-> arrayNode('selenium')->
children()-> children()->
scalarNode('host')-> scalarNode('host')->
defaultValue('127.0.0.1')-> defaultValue(isset($config['selenium']['host']) ? $config['selenium']['host'] : '127.0.0.1')->
end()-> end()->
scalarNode('port')-> scalarNode('port')->
defaultValue(4444)-> defaultValue(isset($config['selenium']['port']) ? $config['selenium']['port'] : 4444)->
end()-> end()->
scalarNode('browser')-> scalarNode('browser')->
defaultValue('*%behat.mink.browser_name%')-> defaultValue(isset($config['selenium']['browser']) ? $config['selenium']['browser'] : '*%behat.mink.browser_name%')->
end()-> end()->
end()-> end()->
end()-> end()->
arrayNode('selenium2')-> arrayNode('selenium2')->
children()-> children()->
scalarNode('browser')-> scalarNode('browser')->
defaultValue('%behat.mink.browser_name%')-> defaultValue(isset($config['selenium2']['browser']) ? $config['selenium2']['browser'] : '%behat.mink.browser_name%')->
end()-> end()->
arrayNode('capabilities')-> arrayNode('capabilities')->
children()-> children()->
scalarNode('browserName')-> scalarNode('browserName')->
defaultValue('firefox')-> defaultValue(isset($config['selenium2']['capabilities']['browserName']) ? $config['selenium2']['capabilities']['browserName'] : 'firefox')->
end()-> end()->
scalarNode('version')-> scalarNode('version')->
defaultValue("9")-> defaultValue(isset($config['selenium2']['capabilities']['version']) ? $config['selenium2']['capabilities']['version'] : 9)->
end()-> end()->
scalarNode('platform')-> scalarNode('platform')->
defaultValue('ANY')-> defaultValue(isset($config['selenium2']['capabilities']['platform']) ? $config['selenium2']['capabilities']['platform'] : 'ANY')->
end()-> end()->
scalarNode('browserVersion')-> scalarNode('browserVersion')->
defaultValue("9")-> defaultValue(isset($config['selenium2']['capabilities']['browserVersion']) ? $config['selenium2']['capabilities']['browserVersion'] : 9)->
end()-> end()->
scalarNode('browser')-> scalarNode('browser')->
defaultValue('firefox')-> defaultValue(isset($config['selenium2']['capabilities']['browser']) ? $config['selenium2']['capabilities']['browser'] : 'firefox')->
end()-> end()->
arrayNode('proxy')-> arrayNode('proxy')->
useAttributeAsKey('key')-> useAttributeAsKey('key')->
@@ -228,7 +230,7 @@ class Extension implements ExtensionInterface
end()-> end()->
end()-> end()->
scalarNode('wd_host')-> scalarNode('wd_host')->
defaultValue('http://localhost:4444/wd/hub')-> defaultValue(isset($config['selenium2']['wd_host']) ? $config['selenium2']['wd_host'] : 'http://localhost:4444/wd/hub')->
end()-> end()->
end()-> end()->
end()-> end()->
@@ -248,4 +250,14 @@ class Extension implements ExtensionInterface
new Compiler\SessionsPass(), new Compiler\SessionsPass(),
); );
} }
protected function loadEnvironmentConfiguration()
{
$config = array();
if ($envConfig = getenv('MINK_EXTENSION_PARAMS')) {
parse_str($envConfig, $config);
}
return $config;
}
} }