From 9b6206d47b1e8b6bf39ae17e7cd520a1ac3a2bd9 Mon Sep 17 00:00:00 2001 From: Kamil Kokot Date: Fri, 28 Dec 2018 15:24:33 +0100 Subject: [PATCH] Add MinkParameters support --- ...riendsOfBehatSymfonyExtensionExtension.php | 9 +++++++ src/Mink/MinkParameters.php | 27 +++++++++++++++++++ src/ServiceContainer/SymfonyExtension.php | 7 +++++ 3 files changed, 43 insertions(+) create mode 100644 src/Mink/MinkParameters.php diff --git a/src/Bundle/DependencyInjection/FriendsOfBehatSymfonyExtensionExtension.php b/src/Bundle/DependencyInjection/FriendsOfBehatSymfonyExtensionExtension.php index 5b0e9ae..b3632d5 100644 --- a/src/Bundle/DependencyInjection/FriendsOfBehatSymfonyExtensionExtension.php +++ b/src/Bundle/DependencyInjection/FriendsOfBehatSymfonyExtensionExtension.php @@ -7,6 +7,7 @@ namespace FriendsOfBehat\SymfonyExtension\Bundle\DependencyInjection; use Behat\Behat\Context\Context; use Behat\Mink\Mink; use Behat\Mink\Session; +use FriendsOfBehat\SymfonyExtension\Mink\MinkParameters; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -58,5 +59,13 @@ final class FriendsOfBehatSymfonyExtensionExtension extends Extension implements $container->setDefinition('behat.mink.default_session', $minkDefaultSessionDefinition); $container->setAlias(Session::class, 'behat.mink.default_session'); + + $minkParametersDefinition = new Definition(MinkParameters::class, ['sylius_symfony_extension.mink_parameters']); + $minkParametersDefinition->setPublic(true); + $minkParametersDefinition->setLazy(true); + $minkParametersDefinition->setFactory([new Reference('behat.service_container'), 'get']); + + $container->setDefinition('behat.mink.parameters', $minkParametersDefinition); + $container->setAlias(MinkParameters::class, 'behat.mink.parameters'); } } diff --git a/src/Mink/MinkParameters.php b/src/Mink/MinkParameters.php new file mode 100644 index 0000000..b2f2c6c --- /dev/null +++ b/src/Mink/MinkParameters.php @@ -0,0 +1,27 @@ +minkParameters = $minkParameters; + } + + public function all(): array + { + return $this->minkParameters; + } + + public function get(string $parameter) + { + return $this->minkParameters[$parameter] ?? null; + } +} diff --git a/src/ServiceContainer/SymfonyExtension.php b/src/ServiceContainer/SymfonyExtension.php index 1df810f..db64200 100644 --- a/src/ServiceContainer/SymfonyExtension.php +++ b/src/ServiceContainer/SymfonyExtension.php @@ -13,9 +13,11 @@ use Behat\Testwork\ServiceContainer\ExtensionManager; use FriendsOfBehat\SymfonyExtension\Context\Environment\Handler\ContextServiceEnvironmentHandler; use FriendsOfBehat\SymfonyExtension\Driver\Factory\SymfonyDriverFactory; use FriendsOfBehat\SymfonyExtension\Listener\KernelRebooter; +use FriendsOfBehat\SymfonyExtension\Mink\MinkParameters; use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; +use Symfony\Component\DependencyInjection\Parameter; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\Dotenv\Dotenv; @@ -82,6 +84,11 @@ final class SymfonyExtension implements Extension $this->loadEnvironmentHandler($container); $this->loadKernelRebooter($container); + + $minkParametersDefinition = new Definition(MinkParameters::class, [new Parameter('mink.parameters')]); + $minkParametersDefinition->setPublic(true); + + $container->setDefinition('sylius_symfony_extension.mink_parameters', $minkParametersDefinition); } public function process(ContainerBuilder $container): void