Updated the code for latest changes done in Behat

This commit is contained in:
Christophe Coevoet
2014-01-05 00:48:09 +01:00
parent 2c521b68ad
commit 8f5332371a
7 changed files with 30 additions and 35 deletions

View File

@@ -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"
},

View File

@@ -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)

View File

@@ -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
{

View File

@@ -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);
}
}

View File

@@ -65,7 +65,7 @@ class FailureShowListener implements EventSubscriberInterface
return;
}
if (!$event->getTestResult()->getCallResult()->getException() instanceof MinkException) {
if (!$event->getTestResult()->getException() instanceof MinkException) {
return;
}

View File

@@ -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();