* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Debug\Tests; use Symfony\Component\Debug\ExceptionHandler; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; class ExceptionHandlerTest extends \PHPUnit_Framework_TestCase { protected function setUp() { if (!class_exists('Symfony\Component\HttpFoundation\Request')) { $this->markTestSkipped('The "HttpFoundation" component is not available'); } } public function testDebug() { $handler = new ExceptionHandler(false); $response = $handler->createResponse(new \RuntimeException('Foo')); $this->assertContains('

Whoops, looks like something went wrong.

', $response->getContent()); $this->assertNotContains('
', $response->getContent()); $handler = new ExceptionHandler(true); $response = $handler->createResponse(new \RuntimeException('Foo')); $this->assertContains('

Whoops, looks like something went wrong.

', $response->getContent()); $this->assertContains('
', $response->getContent()); } public function testStatusCode() { $handler = new ExceptionHandler(false); $response = $handler->createResponse(new \RuntimeException('Foo')); $this->assertEquals('500', $response->getStatusCode()); $this->assertContains('Whoops, looks like something went wrong.', $response->getContent()); $response = $handler->createResponse(new NotFoundHttpException('Foo')); $this->assertEquals('404', $response->getStatusCode()); $this->assertContains('Sorry, the page you are looking for could not be found.', $response->getContent()); } public function testHeaders() { $handler = new ExceptionHandler(false); $response = $handler->createResponse(new MethodNotAllowedHttpException(array('POST'))); $this->assertEquals('405', $response->getStatusCode()); $this->assertEquals('POST', $response->headers->get('Allow')); } public function testNestedExceptions() { $handler = new ExceptionHandler(true); $response = $handler->createResponse(new \RuntimeException('Foo', null, new \RuntimeException('Bar'))); } }