Add MinkParameters support

This commit is contained in:
Kamil Kokot
2018-12-28 15:24:33 +01:00
parent 50fc509fb3
commit 9b6206d47b
3 changed files with 43 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ namespace FriendsOfBehat\SymfonyExtension\Bundle\DependencyInjection;
use Behat\Behat\Context\Context; use Behat\Behat\Context\Context;
use Behat\Mink\Mink; use Behat\Mink\Mink;
use Behat\Mink\Session; use Behat\Mink\Session;
use FriendsOfBehat\SymfonyExtension\Mink\MinkParameters;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -58,5 +59,13 @@ final class FriendsOfBehatSymfonyExtensionExtension extends Extension implements
$container->setDefinition('behat.mink.default_session', $minkDefaultSessionDefinition); $container->setDefinition('behat.mink.default_session', $minkDefaultSessionDefinition);
$container->setAlias(Session::class, 'behat.mink.default_session'); $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');
} }
} }

View File

@@ -0,0 +1,27 @@
<?php
declare(strict_types=1);
namespace FriendsOfBehat\SymfonyExtension\Mink;
/** @final */
class MinkParameters
{
/** @var array */
private $minkParameters;
public function __construct(array $minkParameters)
{
$this->minkParameters = $minkParameters;
}
public function all(): array
{
return $this->minkParameters;
}
public function get(string $parameter)
{
return $this->minkParameters[$parameter] ?? null;
}
}

View File

@@ -13,9 +13,11 @@ use Behat\Testwork\ServiceContainer\ExtensionManager;
use FriendsOfBehat\SymfonyExtension\Context\Environment\Handler\ContextServiceEnvironmentHandler; use FriendsOfBehat\SymfonyExtension\Context\Environment\Handler\ContextServiceEnvironmentHandler;
use FriendsOfBehat\SymfonyExtension\Driver\Factory\SymfonyDriverFactory; use FriendsOfBehat\SymfonyExtension\Driver\Factory\SymfonyDriverFactory;
use FriendsOfBehat\SymfonyExtension\Listener\KernelRebooter; use FriendsOfBehat\SymfonyExtension\Listener\KernelRebooter;
use FriendsOfBehat\SymfonyExtension\Mink\MinkParameters;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Parameter;
use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\Dotenv\Dotenv;
@@ -82,6 +84,11 @@ final class SymfonyExtension implements Extension
$this->loadEnvironmentHandler($container); $this->loadEnvironmentHandler($container);
$this->loadKernelRebooter($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 public function process(ContainerBuilder $container): void