From 3f7e2f536f3f7aa25f20e87e5370b26952e85c10 Mon Sep 17 00:00:00 2001 From: Till Claassen Date: Mon, 23 Apr 2012 12:49:28 +0200 Subject: [PATCH] CakeTestSuite::addTestDirectory() ignore non-php CakeTestSuite::addTestDirectory() and addTestDirectoryRecursive() now ignore any files that do not end in .php This avoids any stray non-php files being parsed, especially tilde-style backup files that end in .php~ Improves #2031 Signed-off-by: mark_story --- .../Test/Case/TestSuite/CakeTestSuiteTest.php | 23 +++++++++++++++++++ lib/Cake/TestSuite/CakeTestSuite.php | 8 +++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/Cake/Test/Case/TestSuite/CakeTestSuiteTest.php b/lib/Cake/Test/Case/TestSuite/CakeTestSuiteTest.php index c98c4c6c308..a8dbaf3c022 100644 --- a/lib/Cake/Test/Case/TestSuite/CakeTestSuiteTest.php +++ b/lib/Cake/Test/Case/TestSuite/CakeTestSuiteTest.php @@ -76,6 +76,29 @@ public function testAddTestDirectoryRecursiveWithHidden() { $suite->addTestDirectoryRecursive($Folder->pwd()); + $Folder->delete(); + } + +/** + * testAddTestDirectoryRecursiveWithNonPhp + * + * @return void + */ + public function testAddTestDirectoryRecursiveWithNonPhp() { + $this->skipIf(!is_writeable(TMP), 'Cant addTestDirectoryRecursiveWithNonPhp unless the tmp folder is writable.'); + + $Folder = new Folder(TMP . 'MyTestFolder', true, 0777); + touch($Folder->path . DS . 'BackupTest.php~'); + touch($Folder->path . DS . 'SomeNotesTest.txt'); + touch($Folder->path . DS . 'NotHiddenTest.php'); + + $suite = $this->getMock('CakeTestSuite', array('addTestFile')); + $suite + ->expects($this->exactly(1)) + ->method('addTestFile'); + + $suite->addTestDirectoryRecursive($Folder->pwd()); + $Folder->delete(); } } diff --git a/lib/Cake/TestSuite/CakeTestSuite.php b/lib/Cake/TestSuite/CakeTestSuite.php index 9752ddc681c..ca478a0d25b 100644 --- a/lib/Cake/TestSuite/CakeTestSuite.php +++ b/lib/Cake/TestSuite/CakeTestSuite.php @@ -37,7 +37,9 @@ public function addTestDirectory($directory = '.') { list($dirs, $files) = $Folder->read(true, true, true); foreach ($files as $file) { - $this->addTestFile($file); + if (substr($file, -4) === '.php') { + $this->addTestFile($file); + } } } @@ -52,7 +54,9 @@ public function addTestDirectoryRecursive($directory = '.') { $files = $Folder->tree(null, true, 'files'); foreach ($files as $file) { - $this->addTestFile($file); + if (substr($file, -4) === '.php') { + $this->addTestFile($file); + } } }