bug #115 Add safety check for SymfonyDriverFactory to make sure BrowserKitDriver is installed (pamil)

This PR was merged into the 2.1-dev branch.

Discussion
----------



Commits
-------

e37704744c Add safety check for SymfonyDriverFactory to make sure BrowserKitDriver is installed
f08d450cdf Document "behat.driver.service_container" service
This commit is contained in:
Kamil Kokot
2020-04-04 15:42:54 +02:00
committed by GitHub
2 changed files with 9 additions and 1 deletions

View File

@@ -27,7 +27,7 @@ default:
### Usage ### Usage
This integration provides two services to use inside Symfony container: This integration provides the following services to use inside Symfony container:
* **`behat.mink`** (autowired by `\Behat\Mink\Mink`) - the Mink service * **`behat.mink`** (autowired by `\Behat\Mink\Mink`) - the Mink service
@@ -35,3 +35,6 @@ This integration provides two services to use inside Symfony container:
* **`behat.mink.parameters`** (autowired by `\FriendsOfBehat\SymfonyExtension\Mink\MinkParameters`) - an object * **`behat.mink.parameters`** (autowired by `\FriendsOfBehat\SymfonyExtension\Mink\MinkParameters`) - an object
containing the configuration parameters of `MinkExtension` (implementing `\ArrayAccess` so that it can be treated as an array) containing the configuration parameters of `MinkExtension` (implementing `\ArrayAccess` so that it can be treated as an array)
* **`behat.driver.service_container`** - service container used by the `symfony` Mink driver, useful for assertions based on
application state after a request has been handled

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace FriendsOfBehat\SymfonyExtension\Driver\Factory; namespace FriendsOfBehat\SymfonyExtension\Driver\Factory;
use Behat\Mink\Driver\BrowserKitDriver;
use Behat\MinkExtension\ServiceContainer\Driver\DriverFactory; use Behat\MinkExtension\ServiceContainer\Driver\DriverFactory;
use FriendsOfBehat\SymfonyExtension\Driver\SymfonyDriver; use FriendsOfBehat\SymfonyExtension\Driver\SymfonyDriver;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
@@ -40,6 +41,10 @@ final class SymfonyDriverFactory implements DriverFactory
public function buildDriver(array $config): Definition public function buildDriver(array $config): Definition
{ {
if (!class_exists(BrowserKitDriver::class)) {
throw new \RuntimeException('Install "friends-of-behat/mink-browserkit-driver" (drop-in replacement for "behat/mink-browserkit-driver") in order to use the "symfony" driver.');
}
return new Definition(SymfonyDriver::class, [ return new Definition(SymfonyDriver::class, [
$this->kernel, $this->kernel,
'%mink.base_url%', '%mink.base_url%',