Contao\CoreBundle\Test\EventListener\PrettyErrorScreenListenerTest::testErrorScreen PHP Method

testErrorScreen() public method

Tests rendering the error screen.
public testErrorScreen ( )
    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());
    }