3 namespace spec\Drupal\DrupalExtension\Listener;
5 use Behat\Behat\EventDispatcher\Event\ScenarioTested;
6 use Behat\Gherkin\Node\FeatureNode;
7 use Behat\Gherkin\Node\ScenarioNode;
8 use Behat\Testwork\Environment\Environment;
9 use Behat\Testwork\Suite\Suite;
11 use Drupal\DrupalDriverManager;
13 use PhpSpec\ObjectBehavior;
14 use Prophecy\Argument;
16 class DriverListenerSpec extends ObjectBehavior
18 function let(DrupalDriverManager $drupal, ScenarioTested $event, FeatureNode $feature, ScenarioNode $scenario, Suite $suite, Environment $environment)
21 'default_driver' => 'blackbox',
22 'api_driver' => 'drupal_driver',
24 $this->beConstructedWith($drupal, $parameters);
26 $event->getFeature()->willReturn($feature);
27 $event->getScenario()->willReturn($scenario);
28 $event->getEnvironment()->willReturn($environment);
30 $feature->getTags()->willReturn(array('api'));
31 $feature->hasTag('api')->willReturn(TRUE);
33 $scenario->getTags()->willReturn(array());
36 function it_should_be_an_event_subscriber()
38 $this->shouldHaveType('Symfony\Component\EventDispatcher\EventSubscriberInterface');
41 function it_resets_the_default_drupal_driver_before_scenarios($event, $drupal, $environment, $feature, $scenario)
43 $drupal->setDefaultDriverName('drupal_driver')->shouldBeCalled();
44 $drupal->setEnvironment($environment)->shouldBeCalled();
45 $event->getEnvironment()->shouldBeCalled();
46 $event->getFeature()->shouldBeCalled();
47 $event->getScenario()->shouldBeCalled();
48 $feature->getTags()->shouldBeCalled();
49 $scenario->getTags()->shouldBeCalled();
50 $this->prepareDefaultDrupalDriver($event);
53 function it_subscribes_to_scenarios_and_outlines()
55 $subscribedEvents = array(
56 'tester.scenario_tested.before' => array('prepareDefaultDrupalDriver', 11),
57 'tester.example_tested.before' => array('prepareDefaultDrupalDriver', 11),
59 $this->getSubscribedEvents()->shouldReturn($subscribedEvents);;