+++ /dev/null
-<?php
-/**
- * Horde Test Runner
- *
- * @category Horde
- * @package Horde
- * @subpackage UnitTests
- * @author Chuck Hagenbuch <chuck@horde.org>
- * @license http://opensource.org/licenses/bsd-license.php BSD
- */
-
-if (!defined('PHPUnit_MAIN_METHOD')) {
- define('PHPUnit_MAIN_METHOD', 'AllTests::main');
-}
-
-require_once 'PHPUnit/Framework/TestSuite.php';
-require_once 'PHPUnit/TextUI/TestRunner.php';
-
-/**
- * @category Horde
- * @package Horde
- * @subpackage UnitTests
- * @author Chuck Hagenbuch <chuck@horde.org>
- * @license http://opensource.org/licenses/lgpl-license.php
- */
-class AllTests
-{
-
- public static function main()
- {
- PHPUnit_TextUI_TestRunner::run(self::suite());
- }
-
- public static function suite()
- {
- $suite = new PHPUnit_Framework_TestSuite('Horde Test Runner');
-
- $basedir = dirname(__FILE__);
- $baseregexp = preg_quote($basedir . DIRECTORY_SEPARATOR, '/');
-
- // Find all AllTests.php files.
- foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($basedir)) as $file) {
- if ($file->isFile() && $file->getFilename() == 'AllTests.php' && $file->getPathname() != __FILE__) {
- $pathname = $file->getPathname();
-
- // Include the test suite.
- require $pathname;
-
- // Generate possible classnames (namespaced and
- // non-namespaced, with and without Horde_, _tests_,
- // and the full tests/Horde/... hierarchy).
- $class = str_replace(DIRECTORY_SEPARATOR, '_', preg_replace("/^$baseregexp(.*)\.php/", '\\1', $pathname));
- $class_notests = preg_replace('/_tests?/', '', $class);
- $class_horde = 'Horde_' . $class;
- $class_horde_notests = 'Horde_' . $class_notests;
- $class_pear2 = preg_replace('/' . substr($class, 0, strpos($class, '_')) . '_tests?_/', '', $class);
- $class_pear2_notests = preg_replace('/\w+_tests?_/', '', $class);
-
- $classnames = array($class, $class_notests, $class_horde, $class_horde_notests, $class_pear2, $class_pear2_notests);
- foreach ($classnames as $classname) {
- $classnames[] = str_replace('_', '::', $classname);
- }
-
- // Look for something with a ::suite() method.
- foreach ($classnames as $classname) {
- // We've already included the AllTests.php file,
- // so explicitly disable autoloading in the
- // class_exists check. Otherwise we can get all
- // kinds of double-define errors.
- if (class_exists($classname, false)) {
- // Once we've found a usable test suite, add it and move on.
- $suite->addTestSuite(call_user_func(array($classname, 'suite')));
- break;
- }
- }
- }
- }
-
- return $suite;
- }
-
-}
-
-if (PHPUnit_MAIN_METHOD == 'AllTests::main') {
- AllTests::main();
-}