public function testErrorScreen()
{
$event = new GetResponseForExceptionEvent($this->mockKernel(), new Request(), HttpKernelInterface::MASTER_REQUEST, new InternalServerErrorHttpException('', new ForwardPageNotFoundException()));
$count = 0;
/** @var \Twig_Environment|\PHPUnit_Framework_MockObject_MockObject $twig */
$twig = $this->getMockBuilder('Twig_Environment')->setMethods(['render'])->setConstructorArgs([$this->getMock('Twig_LoaderInterface')])->getMock();
$twig->expects($this->any())->method('render')->willReturnCallback(function () use(&$count) {
if (0 === $count++) {
throw new \Twig_Error('foo');
}
});
/** @var LoggerInterface|\PHPUnit_Framework_MockObject_MockObject $logger */
$logger = $this->getMock('Psr\\Log\\LoggerInterface');
$logger->expects($this->once())->method('critical');
$listener = new PrettyErrorScreenListener(true, $twig, $this->mockContaoFramework(), $this->mockTokenStorage(), $logger);
$listener->onKernelException($event);
$this->assertTrue($event->hasResponse());
$response = $event->getResponse();
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Response', $response);
$this->assertEquals(500, $response->getStatusCode());
}