1: <?php
2: /**
3: * A class to contain test cases and run them with shared fixtures
4: *
5: * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
6: * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
7: *
8: * Licensed under The MIT License
9: * For full copyright and license information, please see the LICENSE.txt
10: * Redistributions of files must retain the above copyright notice.
11: *
12: * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
13: * @link http://cakephp.org CakePHP(tm) Project
14: * @package Cake.TestSuite
15: * @since CakePHP(tm) v 2.0
16: * @license http://www.opensource.org/licenses/mit-license.php MIT License
17: */
18:
19: App::uses('Folder', 'Utility');
20:
21: /**
22: * A class to contain test cases and run them with shared fixtures
23: *
24: * @package Cake.TestSuite
25: */
26: class CakeTestSuite extends PHPUnit_Framework_TestSuite {
27:
28: /**
29: * Adds all the files in a directory to the test suite. Does not recurse through directories.
30: *
31: * @param string $directory The directory to add tests from.
32: * @return void
33: */
34: public function addTestDirectory($directory = '.') {
35: $Folder = new Folder($directory);
36: list(, $files) = $Folder->read(true, true, true);
37:
38: foreach ($files as $file) {
39: if (substr($file, -4) === '.php') {
40: $this->addTestFile($file);
41: }
42: }
43: }
44:
45: /**
46: * Recursively adds all the files in a directory to the test suite.
47: *
48: * @param string $directory The directory subtree to add tests from.
49: * @return void
50: */
51: public function addTestDirectoryRecursive($directory = '.') {
52: $Folder = new Folder($directory);
53: $files = $Folder->tree(null, true, 'files');
54:
55: foreach ($files as $file) {
56: if (substr($file, -4) === '.php') {
57: $this->addTestFile($file);
58: }
59: }
60: }
61:
62: }
63: