metadata = $test->getMetadata();
$this->test = $test;
}
public function setFeature($feature)
{
$this->metadata->setFeature($feature);
}
public function getFeature()
{
return $this->metadata->getFeature();
}
public function getGroups()
{
return $this->metadata->getGroups();
}
public function current($key)
{
return $this->metadata->getCurrent($key);
}
public function runStep(Step $step)
{
$step->saveTrace();
if ($this->metaStep instanceof Step\Meta) {
$step->setMetaStep($this->metaStep);
}
$this->steps[] = $step;
$result = null;
$this->metadata->getService('dispatcher')->dispatch(Events::STEP_BEFORE, new StepEvent($this->test, $step));
try {
$result = $step->run($this->metadata->getService('modules'));
} catch (ConditionalAssertionFailed $f) {
$result = $this->test->getTestResultObject();
if (is_null($result)) {
$this->metadata->getService('dispatcher')->dispatch(Events::STEP_AFTER, new StepEvent($this->test, $step));
throw $f;
} else {
$result->addFailure(clone($this->test), $f, $result->time());
}
} catch (\Exception $e) {
$this->metadata->getService('dispatcher')->dispatch(Events::STEP_AFTER, new StepEvent($this->test, $step));
throw $e;
}
$this->metadata->getService('dispatcher')->dispatch(Events::STEP_AFTER, new StepEvent($this->test, $step));
$step->executed = true;
return $result;
}
public function addStep(Step $step)
{
$this->steps[] = $step;
}
/**
* Returns the steps of this scenario.
*
* @return array
*/
public function getSteps()
{
return $this->steps;
}
public function getHtml()
{
$text = '';
foreach ($this->getSteps() as $step) {
/** @var Step $step */
if ($step->getName() !== 'Comment') {
$text .= $step->getHtml() . '
';
} else {
$text .= trim($step->getHumanizedArguments(), '"') . '
';
}
}
$text = str_replace(['"\'', '\'"'], ["'", "'"], $text);
$text = "