Updated the code for latest changes done in Behat
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
"require": {
|
||||
"php": ">=5.3.2",
|
||||
"behat/behat": "~3.0-RC1@dev",
|
||||
"behat/behat": "~3.0-RC2@dev",
|
||||
"behat/mink": ">=1.4.3,<1.6-dev",
|
||||
"symfony/config": "~2.2"
|
||||
},
|
||||
|
||||
@@ -19,14 +19,9 @@ class MinkAwareInitializerSpec extends ObjectBehavior
|
||||
$this->shouldHaveType('Behat\Behat\Context\Initializer\ContextInitializer');
|
||||
}
|
||||
|
||||
function it_supports_mink_aware_contexts(MinkAwareContext $context)
|
||||
function it_does_nothing_for_basic_contexts(Context $context)
|
||||
{
|
||||
$this->supportsContext($context)->shouldBe(true);
|
||||
}
|
||||
|
||||
function it_does_not_support_basic_contexts(Context $context)
|
||||
{
|
||||
$this->supportsContext($context)->shouldBe(false);
|
||||
$this->initializeContext($context);
|
||||
}
|
||||
|
||||
function it_injects_mink_and_parameters_in_mink_aware_contexts(MinkAwareContext $context, $mink)
|
||||
|
||||
@@ -7,7 +7,6 @@ use Behat\Gherkin\Node\FeatureNode;
|
||||
use Behat\Gherkin\Node\ScenarioNode;
|
||||
use Behat\Mink\Mink;
|
||||
use PhpSpec\ObjectBehavior;
|
||||
use Prophecy\Argument;
|
||||
|
||||
class SessionsListenerSpec extends ObjectBehavior
|
||||
{
|
||||
|
||||
@@ -40,20 +40,29 @@ class MinkAwareInitializer implements ContextInitializer
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if initializer supports provided context.
|
||||
* Initializes provided context.
|
||||
*
|
||||
* @param Context $context
|
||||
*/
|
||||
public function initializeContext(Context $context)
|
||||
{
|
||||
if (!$context instanceof MinkAwareContext && !$this->usesMinkDictionary($context)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$context->setMink($this->mink);
|
||||
$context->setMinkParameters($this->parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the context uses the MinkDictionary trait.
|
||||
*
|
||||
* @param Context $context
|
||||
*
|
||||
* @return Boolean
|
||||
*/
|
||||
public function supportsContext(Context $context)
|
||||
private function usesMinkDictionary(Context $context)
|
||||
{
|
||||
// if context/subcontext implements MinkAwareContext
|
||||
if ($context instanceof MinkAwareContext) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// if context/subcontext uses MinkDictionary trait
|
||||
$refl = new \ReflectionObject($context);
|
||||
if (method_exists($refl, 'getTraitNames')) {
|
||||
if (in_array('Behat\\MinkExtension\\Context\\MinkDictionary', $refl->getTraitNames())) {
|
||||
@@ -63,15 +72,4 @@ class MinkAwareInitializer implements ContextInitializer
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes provided context.
|
||||
*
|
||||
* @param Context $context
|
||||
*/
|
||||
public function initializeContext(Context $context)
|
||||
{
|
||||
$context->setMink($this->mink);
|
||||
$context->setMinkParameters($this->parameters);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ class FailureShowListener implements EventSubscriberInterface
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$event->getTestResult()->getCallResult()->getException() instanceof MinkException) {
|
||||
if (!$event->getTestResult()->getException() instanceof MinkException) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
|
||||
namespace Behat\MinkExtension\Listener;
|
||||
|
||||
use Behat\Behat\Tester\Event\AbstractScenarioTested;
|
||||
use Behat\Behat\Tester\Event\ExampleTested;
|
||||
use Behat\Behat\Tester\Event\ScenarioTested;
|
||||
use Behat\Mink\Mink;
|
||||
use Behat\Testwork\Tester\Event\ExerciseCompleted;
|
||||
@@ -45,6 +47,7 @@ class SessionsListener implements EventSubscriberInterface
|
||||
{
|
||||
return array(
|
||||
ScenarioTested::BEFORE => array('prepareDefaultMinkSession', 10),
|
||||
ExampleTested::BEFORE => array('prepareDefaultMinkSession', 10),
|
||||
ExerciseCompleted::AFTER => array('tearDownMinkSessions', -10)
|
||||
);
|
||||
}
|
||||
@@ -60,9 +63,9 @@ class SessionsListener implements EventSubscriberInterface
|
||||
* `@insulated` tag will cause Mink to stop current sessions before scenario
|
||||
* instead of just soft-resetting them
|
||||
*
|
||||
* @param ScenarioTested $event
|
||||
* @param AbstractScenarioTested $event
|
||||
*/
|
||||
public function prepareDefaultMinkSession(ScenarioTested $event)
|
||||
public function prepareDefaultMinkSession(AbstractScenarioTested $event)
|
||||
{
|
||||
$scenario = $event->getScenario();
|
||||
$feature = $event->getFeature();
|
||||
|
||||
Reference in New Issue
Block a user