From e569fd7bc1af69c4546677a55a3d6ec5268a1c5a Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Sat, 11 Jan 2014 00:13:31 +0100 Subject: [PATCH] Added a shortcut syntax for the configuration of sessions --- src/Behat/MinkExtension/Extension.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Behat/MinkExtension/Extension.php b/src/Behat/MinkExtension/Extension.php index a62dda2..a2fba1f 100644 --- a/src/Behat/MinkExtension/Extension.php +++ b/src/Behat/MinkExtension/Extension.php @@ -97,7 +97,28 @@ class Extension implements ExtensionInterface */ public function configure(ArrayNodeDefinition $builder) { + // Rewrite keys to define a shortcut way without allowing conflicts with real keys + $renamedKeys = array_diff( + array_keys($this->driverFactories), + array('mink_loader', 'base_url', 'files_path', 'show_auto', 'show_cmd', 'show_tmp_dir', 'default_session', 'javascript_session', 'browser_name', 'sessions') + ); + $builder + ->beforeNormalization() + ->always() + ->then(function ($v) use ($renamedKeys) { + foreach ($renamedKeys as $driverType) { + if (!array_key_exists($driverType, $v) || isset($v['sessions'][$driverType])) { + continue; + } + + $v['sessions'][$driverType][$driverType] = $v[$driverType]; + unset($v[$driverType]); + } + + return $v; + }) + ->end() ->addDefaultsIfNotSet() ->children() ->scalarNode('mink_loader')->defaultNull()->end()