Add config via env

This commit is contained in:
jubianchi
2012-08-12 20:05:45 +02:00
committed by Julien Bianchi
parent 33ff2d4fa7
commit 57d6199102

View File

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