From 58ca78aa59b4f69d0ce6e5d1b5491906b1c1aaf8 Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Sat, 11 Jan 2014 00:27:14 +0100 Subject: [PATCH] Added some validation of the default session and javascript session --- src/Behat/MinkExtension/Extension.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Behat/MinkExtension/Extension.php b/src/Behat/MinkExtension/Extension.php index 99261e8..a62dda2 100644 --- a/src/Behat/MinkExtension/Extension.php +++ b/src/Behat/MinkExtension/Extension.php @@ -23,6 +23,7 @@ use Behat\Testwork\ServiceContainer\Exception\ProcessingException; use Behat\Testwork\ServiceContainer\Extension as ExtensionInterface; use Behat\Testwork\ServiceContainer\ExtensionManager; use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; +use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -217,10 +218,18 @@ class Extension implements ExtensionInterface if (null === $javascriptSession && !empty($javascriptSessions)) { $javascriptSession = $javascriptSessions[0]; + } elseif (null !== $javascriptSession && !in_array($javascriptSession, $javascriptSessions)) { + throw new InvalidConfigurationException(sprintf( + 'The javascript session must be one of the enabled javascript sessions (%s), but got %s', + json_encode($javascriptSessions), + $javascriptSession + )); } if (null === $defaultSession) { $defaultSession = !empty($nonJavascriptSessions) ? $nonJavascriptSessions[0] : $javascriptSessions[0]; + } elseif (!isset($config['sessions'][$defaultSession])) { + throw new InvalidConfigurationException(sprintf('The default session must be one of the enabled sessions, but got %s', $defaultSession)); } $container->setParameter('mink.default_session', $defaultSession);