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