Provides the optional ability to render a template for each of 404 and
general error conditions. If no template renderer is provided, returns
empty responses with appropriate status codes.
/** * @param Whoops $whoops * @param PrettyPageHandler $whoopsHandler * @param null|Template\TemplateRendererInterface $renderer * @param null|string $template404 * @param null|string $templateError * @param null|Response $originalResponse */ public function __construct(Whoops $whoops, PrettyPageHandler $whoopsHandler, Template\TemplateRendererInterface $renderer = null, $template404 = 'error/404', $templateError = 'error/error', Response $originalResponse = null) { $this->whoops = $whoops; $this->whoopsHandler = $whoopsHandler; parent::__construct($renderer, $template404, $templateError, $originalResponse); }
/** * @group templated */ public function testInvocationWithoutErrorAndResponseSameAsOriginalCanReturnTemplated404Response() { $template = $this->getTemplateImplementation(); $template->render('error::404', Argument::type('array'))->willReturn('Templated contents'); $handler = new TemplatedErrorHandler($template->reveal(), 'error::404', 'error::500'); $expected = $this->getResponse($this->getStream()); $stream = $this->getStream(); $stream->getSize()->willReturn(100); $stream->write('Templated contents')->shouldBeCalled(); $response = $this->getResponse($stream); $response->getStatusCode()->willReturn(200); $response->withStatus(404)->willReturn($expected->reveal()); $handler->setOriginalResponse($response->reveal()); $request = $this->getRequest($this->getStream()); $request->getUri()->shouldBeCalled(); $result = $handler($request->reveal(), $response->reveal()); $this->assertSame($expected->reveal(), $result); }