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