From 60ada4432a1a52839f2f6a4cafdb0d6594a410e0 Mon Sep 17 00:00:00 2001 From: mark_story Date: Sat, 11 Dec 2010 13:30:29 -0500 Subject: [PATCH] Making unknown errors with codes higher than 500 render as error500. Test added. --- cake/libs/error/exception_renderer.php | 2 +- .../libs/error/exception_renderer.test.php | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/cake/libs/error/exception_renderer.php b/cake/libs/error/exception_renderer.php index 0d6c71b839d..6666f441413 100644 --- a/cake/libs/error/exception_renderer.php +++ b/cake/libs/error/exception_renderer.php @@ -107,7 +107,7 @@ function __construct(Exception $exception) { } } elseif (!$methodExists) { $method = 'error500'; - if ($code >= 400) { + if ($code >= 400 && $code < 500) { $method = 'error400'; } } diff --git a/cake/tests/cases/libs/error/exception_renderer.test.php b/cake/tests/cases/libs/error/exception_renderer.test.php index c99c6b11800..91efdf6081e 100644 --- a/cake/tests/cases/libs/error/exception_renderer.test.php +++ b/cake/tests/cases/libs/error/exception_renderer.test.php @@ -322,6 +322,24 @@ function testUnknownExceptionTypeWithNoCodeIsA500() { $this->assertEquals('error500', $ExceptionRenderer->method, 'incorrect method coercion.'); } +/** + * test that unknown exception types with valid status codes are treated correctly. + * + * @return void + */ + function testUnknownExceptionTypeWithCodeHigherThan500() { + $exception = new OutOfBoundsException('foul ball.', 501); + $ExceptionRenderer = new ExceptionRenderer($exception); + $ExceptionRenderer->controller->response = $this->getMock('CakeResponse', array('statusCode', '_sendHeader')); + $ExceptionRenderer->controller->response->expects($this->once())->method('statusCode')->with(501); + + ob_start(); + $ExceptionRenderer->render(); + $results = ob_get_clean(); + + $this->assertEquals('error500', $ExceptionRenderer->method, 'incorrect method coercion.'); + } + /** * testerror400 method *