/** * Replaces the default output stream of Symfony's * CliDumper and HtmlDumper classes in order to * be able to run on Google App Engine. * * 'php://stdout' is used by CliDumper, * 'php://output' is used by HtmlDumper, * both are not supported on GAE. */ protected function replaceDefaultSymfonyLineDumpers() { HtmlDumper::$defaultOutput = CliDumper::$defaultOutput = function ($line, $depth, $indentPad) { if (-1 !== $depth) { echo str_repeat($indentPad, $depth) . $line . PHP_EOL; } }; }
/** * Assert status code, and on failure print the output to assist debugging. * @param int $code */ public function assertResponseStatusWithDebug($code) { try { $actual = $this->response->getStatusCode(); return $this->assertEquals($code, $actual, "Expected status code {$code}, got {$actual}."); } catch (\PHPUnit_Framework_ExpectationFailedException $e) { $content = $this->response->getContent(); $json = json_decode($content); //check to see if the response was valid json, if so assign the object to $content if (json_last_error() === JSON_ERROR_NONE) { $content = $json; } $originalDefaultOutput = CliDumper::$defaultOutput; CliDumper::$defaultOutput = 'php://output'; $dumper = new CliDumper(); $dumper->dump((new VarCloner())->cloneVar($content)); CliDumper::$defaultOutput = $originalDefaultOutput; throw $e; } }