diff --git a/cake/tests/cases/libs/error.test.php b/cake/tests/cases/libs/error.test.php
index cf35157e9..8f234f3ce 100644
--- a/cake/tests/cases/libs/error.test.php
+++ b/cake/tests/cases/libs/error.test.php
@@ -52,21 +52,24 @@ class TestErrorController extends TestAppController {
}
}
+class TestAppErrorController extends TestAppController {
+ function apperror($method, $message) {
+ return sprintf('Error: %s Message: %s', $method, $message);
+ }
+}
/**
* Short description for class.
*
* @package cake.tests
* @subpackage cake.tests.cases.libs
*/
-class ErrorHandlerTest extends UnitTestCase {
+class ErrorHandlerTest extends CakeTestCase {
function skip() {
$this->skipif ((php_sapi_name() == 'cli'), 'ErrorHandlerTest cannot be run from console');
}
function testFromBeforeFilter() {
- $Test = new TestErrorController();
-
if (!class_exists('dispatcher')) {
require CAKE . 'dispatcher.php';
}
@@ -82,31 +85,79 @@ class ErrorHandlerTest extends UnitTestCase {
}
function testError() {
-
+ //Cannot test Error currently as calling it creates an exit();
+ ob_start();
+ $ErrorHandler = new ErrorHandler('error404', array('message' => 'Page not found'));
+ ob_clean();
+
+ ob_start();
+ $ErrorHandler->error(array(
+ 'code' => 404,
+ 'message' => 'Page not Found',
+ 'name' => "Couldn't find what you were looking for"
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern("/
Couldn't find what you were looking for<\/h2>/", $result);
+ $this->assertPattern('/Page not Found/', $result);
}
function testError404() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('error404', array('message' => 'Page not found'));
+ $result = ob_get_clean();
+ $this->assertPattern('/Not Found<\/h2>/', $result);
+ $this->assertPattern("/'\/test_error'<\/strong>/", $result);
}
- function testMissingController() {
-
+ function testMissingController() {
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingController', array(
+ 'className' => 'PostsController'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Controller<\/h2>/', $result);
+ $this->assertPattern('/PostsController<\/em>/', $result);
}
-
+
function testMissingAction() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingAction', array(
+ 'className' => 'PostsController',
+ 'action' => 'index'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Method in PostsController<\/h2>/', $result);
+ $this->assertPattern('/PostsController::<\/em>index\(\)<\/em>/', $result);
}
function testPrivateAction() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('privateAction', array(
+ 'className' => 'PostsController',
+ 'action' => '_secretSauce'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Private Method in PostsController<\/h2>/', $result);
+ $this->assertPattern('/PostsController::<\/em>_secretSauce\(\)<\/em>/', $result);
}
function testMissingTable() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingTable', array(
+ 'className' => 'Article',
+ 'table' => 'articles'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Database Table<\/h2>/', $result);
+ $this->assertPattern('/table articles<\/em> for model Article<\/em>/', $result);
}
function testMissingDatabase() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingDatabase', array());
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Database Connection<\/h2>/', $result);
+ $this->assertPattern('/Confirm you have created the file/', $result);
}
function testMissingView() {
@@ -141,27 +192,75 @@ class ErrorHandlerTest extends UnitTestCase {
}
function testMissingConnection() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingConnection', array(
+ 'className' => 'Article'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Database Connection<\/h2>/', $result);
+ $this->assertPattern('/Article requires a database connection/', $result);
}
function testMissingHelperFile() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingHelperFile', array(
+ 'helper' => 'MyCustom',
+ 'file' => 'my_custom.php'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Helper File<\/h2>/', $result);
+ $this->assertPattern('/Create the class below in file:/', $result);
+ $this->assertPattern('/\/my_custom.php/', $result);
}
function testMissingHelperClass() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingHelperClass', array(
+ 'helper' => 'MyCustom',
+ 'file' => 'my_custom.php'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Helper Class<\/h2>/', $result);
+ $this->assertPattern('/The helper class MyCustomHelper<\/em> can not be found or does not exist./', $result);
+ $this->assertPattern('/\/my_custom.php/', $result);
}
function testMissingComponentFile() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingComponentFile', array(
+ 'className' => 'PostsController',
+ 'component' => 'Sidebox',
+ 'file' => 'sidebox.php'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Component File<\/h2>/', $result);
+ $this->assertPattern('/Create the class SideboxComponent<\/em> in file:/', $result);
+ $this->assertPattern('/\/sidebox.php/', $result);
}
function testMissingComponentClass() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingComponentClass', array(
+ 'className' => 'PostsController',
+ 'component' => 'Sidebox',
+ 'file' => 'sidebox.php'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Component Class<\/h2>/', $result);
+ $this->assertPattern('/Create the class SideboxComponent<\/em> in file:/', $result);
+ $this->assertPattern('/\/sidebox.php/', $result);
}
function testMissingModel() {
-
+ ob_start();
+ $ErrorHandler = new ErrorHandler('missingModel', array(
+ 'className' => 'Article',
+ 'file' => 'article.php'
+ ));
+ $result = ob_get_clean();
+ $this->assertPattern('/Missing Model<\/h2>/', $result);
+ $this->assertPattern('/Article<\/em> could not be found./', $result);
+ $this->assertPattern('/\/article.php/', $result);
}
}
?>
\ No newline at end of file