+++ /dev/null
-<?php
-
-namespace Drupal\DrupalExtension\Context;
-
-use Behat\Behat\Context\TranslatableContext;
-
-/**
- * Provides step definitions for interacting directly with Drush commands.
- */
-class DrushContext extends RawDrupalContext implements TranslatableContext {
-
- /**
- * Keep track of drush output.
- *
- * @var string|boolean
- */
- protected $drushOutput;
-
- /**
- * {@inheritDoc}
- */
- public static function getTranslationResources() {
- return glob(__DIR__ . '/../../../../i18n/*.xliff');
- }
-
- /**
- * Return the most recent drush command output.
- *
- * @return string
- */
- public function readDrushOutput() {
- if (!isset($this->drushOutput)) {
- throw new \RuntimeException('No drush output was found.');
- }
- return $this->drushOutput;
- }
-
- /**
- * @Given I run drush :command
- */
- public function assertDrushCommand($command) {
- if (!$this->drushOutput = $this->getDriver('drush')->$command()) {
- $this->drushOutput = TRUE;
- }
- }
-
- /**
- * @Given I run drush :command :arguments
- */
- public function assertDrushCommandWithArgument($command, $arguments) {
- $this->drushOutput = $this->getDriver('drush')->$command($this->fixStepArgument($arguments));
- if (!isset($this->drushOutput)) {
- $this->drushOutput = TRUE;
- }
- }
-
- /**
- * @Then drush output should contain :output
- */
- public function assertDrushOutput($output) {
- if (strpos((string) $this->readDrushOutput(), $this->fixStepArgument($output)) === FALSE) {
- throw new \Exception(sprintf("The last drush command output did not contain '%s'.\nInstead, it was:\n\n%s'", $output, $this->drushOutput));
- }
- }
-
- /**
- * @Then drush output should match :regex
- */
- public function assertDrushOutputMatches($regex) {
- if (!preg_match($regex, (string) $this->readDrushOutput())) {
- throw new \Exception(sprintf("The pattern %s was not found anywhere in the drush output.\nOutput:\n\n%s", $regex, $this->drushOutput));
- }
- }
-
- /**
- * @Then drush output should not contain :output
- */
- public function drushOutputShouldNotContain($output) {
- if (strpos((string) $this->readDrushOutput(), $this->fixStepArgument($output)) !== FALSE) {
- throw new \Exception(sprintf("The last drush command output did contain '%s' although it should not.\nOutput:\n\n%s'", $output, $this->drushOutput));
- }
- }
-
- /**
- * @Then print last drush output
- */
- public function printLastDrushOutput() {
- echo $this->readDrushOutput();
- }
-
- /**
- * Returns fixed step argument (with \\" replaced back to ").
- *
- * @param string $argument
- *
- * @return string
- */
- protected function fixStepArgument($argument) {
- return str_replace('\\"', '"', $argument);
- }
-
-}