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