+++ /dev/null
-<?php
-
-/**
- * @file
- * Contains \Drupal\DrupalDriverManager.
- */
-
-namespace Drupal;
-
-use Behat\Testwork\Environment\Environment;
-use Drupal\Driver\DriverInterface;
-
-/**
- * Drupal driver manager.
- */
-class DrupalDriverManager {
-
- /**
- * The name of the default driver.
- *
- * @var string
- */
- private $defaultDriverName;
-
- /**
- * All registered drivers.
- *
- * @var \Drupal\Driver\DriverInterface[]
- */
- private $drivers = array();
-
- /**
- * Behat environment.
- *
- * @var \Behat\Testwork\Environment\Environment
- */
- private $environment;
-
- /**
- * Initialize the driver manager.
- *
- * @param \Drupal\Driver\DriverInterface[] $drivers
- * An array of drivers to register.
- */
- public function __construct(array $drivers = array()) {
- foreach ($drivers as $name => $driver) {
- $this->registerDriver($name, $driver);
- }
- }
-
- /**
- * Register a new driver.
- *
- * @param string $name
- * Driver name.
- * @param \Drupal\Driver\DriverInterface $driver
- * An instance of a DriverInterface.
- */
- public function registerDriver($name, DriverInterface $driver) {
- $name = strtolower($name);
- $this->drivers[$name] = $driver;
- }
-
- /**
- * Return a registered driver by name, or the default driver.
- *
- * @param string $name
- * The name of the driver to return. If omitted the default driver is
- * returned.
- *
- * @return \Drupal\Driver\DriverInterface
- * The requested driver.
- *
- * @throws \InvalidArgumentException
- * Thrown when the requested driver is not registered.
- */
- public function getDriver($name = NULL) {
- $name = strtolower($name) ?: $this->defaultDriverName;
-
- if (NULL === $name) {
- throw new \InvalidArgumentException('Specify a Drupal driver to get.');
- }
-
- if (!isset($this->drivers[$name])) {
- throw new \InvalidArgumentException(sprintf('Driver "%s" is not registered', $name));
- }
-
- $driver = $this->drivers[$name];
-
- // Bootstrap driver if needed.
- if (!$driver->isBootstrapped()) {
- $driver->bootstrap();
- }
-
- return $driver;
- }
-
- /**
- * Set the default driver name.
- *
- * @param string $name
- * Default driver name to set.
- *
- * @throws \InvalidArgumentException
- * Thrown when the driver is not registered.
- */
- public function setDefaultDriverName($name) {
- $name = strtolower($name);
-
- if (!isset($this->drivers[$name])) {
- throw new \InvalidArgumentException(sprintf('Driver "%s" is not registered.', $name));
- }
-
- $this->defaultDriverName = $name;
- }
-
- /**
- * Returns all registered drivers.
- *
- * @return \Drupal\Driver\DriverInterface[]
- * An array of drivers.
- */
- public function getDrivers() {
- return $this->drivers;
- }
-
- /**
- * Sets the Behat Environment.
- *
- * @param \Behat\Testwork\Environment\Environment $environment
- * The Behat Environment to set.
- */
- public function setEnvironment(Environment $environment) {
- $this->environment = $environment;
- }
-
- /**
- * Returns the Behat Environment.
- *
- * @return \Behat\Testwork\Environment\Environment
- * The Behat Environment.
- */
- public function getEnvironment() {
- return $this->environment;
- }
-
-}