Updated Code Coverage (100%)

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@6864 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
mark_story 2008-05-14 02:24:58 +00:00
parent d7817abf29
commit 6f4c58377c

View file

@ -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("/<h2>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('/<h2>Not Found<\/h2>/', $result);
$this->assertPattern("/<strong>'\/test_error'<\/strong>/", $result);
}
function testMissingController() {
function testMissingController() {
ob_start();
$ErrorHandler = new ErrorHandler('missingController', array(
'className' => 'PostsController'
));
$result = ob_get_clean();
$this->assertPattern('/<h2>Missing Controller<\/h2>/', $result);
$this->assertPattern('/<em>PostsController<\/em>/', $result);
}
function testMissingAction() {
ob_start();
$ErrorHandler = new ErrorHandler('missingAction', array(
'className' => 'PostsController',
'action' => 'index'
));
$result = ob_get_clean();
$this->assertPattern('/<h2>Missing Method in PostsController<\/h2>/', $result);
$this->assertPattern('/<em>PostsController::<\/em><em>index\(\)<\/em>/', $result);
}
function testPrivateAction() {
ob_start();
$ErrorHandler = new ErrorHandler('privateAction', array(
'className' => 'PostsController',
'action' => '_secretSauce'
));
$result = ob_get_clean();
$this->assertPattern('/<h2>Private Method in PostsController<\/h2>/', $result);
$this->assertPattern('/<em>PostsController::<\/em><em>_secretSauce\(\)<\/em>/', $result);
}
function testMissingTable() {
ob_start();
$ErrorHandler = new ErrorHandler('missingTable', array(
'className' => 'Article',
'table' => 'articles'
));
$result = ob_get_clean();
$this->assertPattern('/<h2>Missing Database Table<\/h2>/', $result);
$this->assertPattern('/table <em>articles<\/em> for model <em>Article<\/em>/', $result);
}
function testMissingDatabase() {
ob_start();
$ErrorHandler = new ErrorHandler('missingDatabase', array());
$result = ob_get_clean();
$this->assertPattern('/<h2>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('/<h2>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('/<h2>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('/<h2>Missing Helper Class<\/h2>/', $result);
$this->assertPattern('/The helper class <em>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('/<h2>Missing Component File<\/h2>/', $result);
$this->assertPattern('/Create the class <em>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('/<h2>Missing Component Class<\/h2>/', $result);
$this->assertPattern('/Create the class <em>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('/<h2>Missing Model<\/h2>/', $result);
$this->assertPattern('/<em>Article<\/em> could not be found./', $result);
$this->assertPattern('/\/article.php/', $result);
}
}
?>