Expose the Mink service
This commit is contained in:
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
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;
|
||||
@@ -45,10 +46,22 @@ final class FriendsOfBehatSymfonyExtensionExtension extends Extension implements
|
||||
|
||||
private function provideMinkIntegration(ContainerBuilder $container): void
|
||||
{
|
||||
$this->registerMink($container);
|
||||
$this->registerMinkDefaultSession($container);
|
||||
$this->registerMinkParameters($container);
|
||||
}
|
||||
|
||||
private function registerMink(ContainerBuilder $container): void
|
||||
{
|
||||
$minkDefaultSessionDefinition = new Definition(Mink::class, ['fob_symfony.mink']);
|
||||
$minkDefaultSessionDefinition->setPublic(true);
|
||||
$minkDefaultSessionDefinition->setLazy(true);
|
||||
$minkDefaultSessionDefinition->setFactory([new Reference('behat.service_container'), 'get']);
|
||||
|
||||
$container->setDefinition('behat.mink', $minkDefaultSessionDefinition);
|
||||
$container->setAlias(Mink::class, 'behat.mink');
|
||||
}
|
||||
|
||||
private function registerMinkDefaultSession(ContainerBuilder $container): void
|
||||
{
|
||||
$minkDefaultSessionDefinition = new Definition(Session::class, ['fob_symfony.mink.default_session']);
|
||||
|
||||
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace FriendsOfBehat\SymfonyExtension\ServiceContainer;
|
||||
|
||||
use Behat\Behat\Context\ServiceContainer\ContextExtension;
|
||||
use Behat\Mink\Mink;
|
||||
use Behat\Mink\Session;
|
||||
use Behat\MinkExtension\ServiceContainer\MinkExtension;
|
||||
use Behat\Testwork\Environment\ServiceContainer\EnvironmentExtension;
|
||||
@@ -16,6 +17,7 @@ use FriendsOfBehat\SymfonyExtension\Driver\Factory\SymfonyDriverFactory;
|
||||
use FriendsOfBehat\SymfonyExtension\Listener\KernelOrchestrator;
|
||||
use FriendsOfBehat\SymfonyExtension\Mink\MinkParameters;
|
||||
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
|
||||
use Symfony\Component\DependencyInjection\Alias;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\DependencyInjection\Parameter;
|
||||
@@ -81,6 +83,7 @@ final class SymfonyExtension implements Extension
|
||||
$this->loadEnvironmentHandler($container);
|
||||
|
||||
if ($this->minkExtensionFound) {
|
||||
$this->loadMink($container);
|
||||
$this->loadMinkDefaultSession($container);
|
||||
$this->loadMinkParameters($container);
|
||||
}
|
||||
@@ -143,6 +146,11 @@ final class SymfonyExtension implements Extension
|
||||
$container->setDefinition('fob_symfony.environment_handler.context_service', $definition);
|
||||
}
|
||||
|
||||
private function loadMink(ContainerBuilder $container): void
|
||||
{
|
||||
$container->setAlias('fob_symfony.mink', (new Alias('mink'))->setPublic(true));
|
||||
}
|
||||
|
||||
private function loadMinkDefaultSession(ContainerBuilder $container): void
|
||||
{
|
||||
$minkDefaultSessionDefinition = new Definition(Session::class);
|
||||
|
||||
Reference in New Issue
Block a user