summaryrefslogtreecommitdiff
path: root/modules/simpletest/drupal_test_suite.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/simpletest/drupal_test_suite.php')
-rw-r--r--modules/simpletest/drupal_test_suite.php150
1 files changed, 0 insertions, 150 deletions
diff --git a/modules/simpletest/drupal_test_suite.php b/modules/simpletest/drupal_test_suite.php
deleted file mode 100644
index cdc681203..000000000
--- a/modules/simpletest/drupal_test_suite.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-// $Id$
-
-/**
- * Implements getTestInstances to allow access to the test objects from outside.
- */
-class DrupalTestSuite extends TestSuite {
- var $_cleanupModules = array();
-
- function DrupalTestSuite($label) {
- $this->TestSuite($label);
- }
-
- /**
- * @return
- * An array of instantiated tests that this GroupTests holds.
- */
- function getTestInstances() {
- for ($i = 0, $count = count($this->_test_cases); $i < $count; $i++) {
- if (is_string($this->_test_cases[$i])) {
- $class = $this->_test_cases[$i];
- $this->_test_cases[$i] = &new $class();
- }
- }
- return $this->_test_cases;
- }
-}
-
-class DrupalTests extends DrupalTestSuite {
- /**
- * Constructor for the DrupalTests class.
- *
- * @param array $class_list
- * List containing the classes of tests to be processed,
- * defaults to process all tests.
- */
- function DrupalTests($class_list = NULL) {
- static $classes;
- $this->DrupalTestSuite('Drupal unit tests');
-
- // Tricky part to avoid double inclusion.
- if (!$classes) {
-
- $files = $this->getFiles();
-
- $existing_classes = get_declared_classes();
- foreach ($files as $file) {
- include_once($file);
- }
- $classes = array_diff(get_declared_classes(), $existing_classes);
- }
- if (!is_null($class_list)) {
- $classes = $class_list;
- }
- if (count($classes) == 0) {
- drupal_set_message('No test cases found.', 'error');
- return;
- }
- $groups = array();
- foreach ($classes as $class) {
- if ($this->classIsTest($class)) {
- $this->_addClassToGroups($groups, $class);
- }
- }
- foreach ($groups as $group_name => $group) {
- $group_test = &new DrupalTestSuite($group_name);
- foreach ($group as $key => $v) {
- $group_test->addTestCase($group[$key]);
- }
- $this->addTestCase($group_test);
- }
- }
-
- /**
- * Adds a class to a groups array specified by the getInfo() of the group.
- *
- * @param array $groups
- * Group of categorized tests.
- * @param string $class
- * Name of the class.
- */
- function _addClassToGroups(&$groups, $class) {
- $test = &new $class();
- if (method_exists($test, 'getInfo')) {
- $info = $test->getInfo();
- $groups[$info['group']][] = $test;
- }
- }
-
- /**
- * Invokes run() on all of the held test cases, instantiating
- * them if necessary.
- * The Drupal version uses paintHeader instead of paintGroupStart
- * to avoid collapsing of the very top level.
- *
- * @param SimpleReporter $reporter
- * Current test reporter.
- * @access public
- */
- function run(&$reporter) {
- @set_time_limit(0);
- ignore_user_abort(TRUE);
-
- $this->cleanupBeforeRun();
- $result = parent::run($reporter);
- return $result;
- }
-
- /**
- * Gets the files which contains the tests.
- *
- * @return
- * A list of files that contains the tests.
- */
- function getFiles() {
- $files = array();
- foreach (array_keys(module_rebuild_cache()) as $module) {
- $module_path = drupal_get_path('module', $module);
- $test = $module_path . "/$module.test";
- if (file_exists($test)) {
- $files[] = $test;
- }
- }
- foreach (file_scan_directory('includes', '\.test$') as $file) {
- $files[] = $file->filename;
- }
- return $files;
- }
-
- /**
- * Determines whether the class is a test.
- *
- * @return
- * TRUE / FALSE depending on whether the class is a test.
- */
- function classIsTest($class) {
- return is_subclass_of($class, 'DrupalWebTestCase');
- }
-
- /**
- * Called before the tests are run.
- */
- function cleanupBeforeRun() {
- cache_clear_all();
- // Disable devel output, check simpletest settings page.
- if (!variable_get('simpletest_devel', FALSE)) {
- $GLOBALS['devel_shutdown'] = FALSE;
- }
- }
-}