From 6f4c58377c145bf440ee779105f0cfee8d5a4f90 Mon Sep 17 00:00:00 2001 From: mark_story Date: Wed, 14 May 2008 02:24:58 +0000 Subject: [PATCH] Updated Code Coverage (100%) git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@6864 3807eeeb-6ff5-0310-8944-8be069107fe0 --- cake/tests/cases/libs/error.test.php | 135 +++++++++++++++++++++++---- 1 file changed, 117 insertions(+), 18 deletions(-) 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