public function testNormalExceptionRendering()
{
$Exception = new Exception('Hello World');
$Controller = $this->getMockBuilder('Cake\\Controller\\Controller')->setMethods(['render'])->getMock();
$Controller->request = new Request();
$Controller->response = new Response();
$Renderer = $this->getMockBuilder('Crud\\Error\\ExceptionRenderer')->setMethods(['_getController'])->disableOriginalConstructor()->getMock();
$Renderer->expects($this->once())->method('_getController')->with()->will($this->returnValue($Controller));
$Renderer->__construct($Exception);
$Renderer->render();
$viewVars = $Controller->viewVars;
$this->assertTrue(!empty($viewVars['_serialize']));
$expected = ['success', 'data'];
$actual = $viewVars['_serialize'];
$this->assertEquals($expected, $actual);
$expected = ['code' => 500, 'url' => $Controller->request->here(), 'message' => 'Hello World', 'exception' => ['class' => 'Cake\\Core\\Exception\\Exception', 'code' => 500, 'message' => 'Hello World']];
$actual = $viewVars['data'];
unset($actual['trace']);
$this->assertEquals($expected, $actual);
$this->assertTrue(!isset($actual['queryLog']));
$this->assertTrue(isset($viewVars['success']));
$this->assertFalse($viewVars['success']);
$this->assertTrue(isset($viewVars['code']));
$this->assertSame(500, $viewVars['code']);
$this->assertTrue(isset($viewVars['url']));
$this->assertSame($Controller->request->here(), $viewVars['url']);
$this->assertTrue(isset($viewVars['message']));
$this->assertSame('Hello World', $viewVars['message']);
$this->assertTrue(isset($viewVars['error']));
$this->assertSame($Exception, $viewVars['error']);
}