diff --git a/cake/tests/cases/libs/test_manager.test.php b/cake/tests/cases/libs/test_manager.test.php index 7fc7b077d..787259e6b 100644 --- a/cake/tests/cases/libs/test_manager.test.php +++ b/cake/tests/cases/libs/test_manager.test.php @@ -28,10 +28,25 @@ */ App::import('Core', 'TestManager'); class TestManagerTest extends CakeTestCase { +/** + * undocumented function + * + * @return void + * @access public + */ + function setUp() { + $this->Sut = new TestManager(); + $this->Reporter = new CakeHtmlReporter(); + } +/** + * undocumented function + * + * @return void + * @access public + */ function testRunAllTests() { - $manager = new TestManager(); - $folder = new Folder($manager->_getTestsPath()); - $extension = str_replace('.', '\.', Testmanager::getExtension('test')); + $folder = new Folder($this->Sut->_getTestsPath()); + $extension = str_replace('.', '\.', TestManager::getExtension('test')); $out = $folder->findRecursive('.*' . $extension); $reporter = new CakeHtmlReporter(); @@ -46,7 +61,14 @@ class TestManagerTest extends CakeTestCase { * @access public */ function testRunTestCase() { + $file = md5(time()); + $result = $this->Sut->runTestCase($file, $this->Reporter); + $this->assertError('Test case ' . $file . ' cannot be found'); + $this->assertFalse($result); + $file = str_replace(CORE_TEST_CASES, '', __FILE__); + $result = $this->Sut->runTestCase($file, $this->Reporter, true); + $this->assertTrue($result); } /** * undocumented function diff --git a/cake/tests/lib/test_manager.php b/cake/tests/lib/test_manager.php index 791d4dd51..e19a66d18 100644 --- a/cake/tests/lib/test_manager.php +++ b/cake/tests/lib/test_manager.php @@ -106,13 +106,20 @@ class TestManager { * @return void * @access public */ - function runTestCase($testCaseFile, &$reporter) { + function runTestCase($testCaseFile, &$reporter, $testing = false) { $manager =& new TestManager(); $testCaseFileWithPath = $manager->_getTestsPath() . DS . $testCaseFile; + if (!file_exists($testCaseFileWithPath)) { trigger_error("Test case {$testCaseFile} cannot be found", E_USER_ERROR); + return false; } + + if ($testing) { + return true; + } + $test =& new GroupTest("Individual test case: " . $testCaseFile); $test->addTestFile($testCaseFileWithPath); return $test->run($reporter);