diff options
-rw-r--r-- | engine/lib/testing.php | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/engine/lib/testing.php b/engine/lib/testing.php index 5f24939e8..afa5dd2e2 100644 --- a/engine/lib/testing.php +++ b/engine/lib/testing.php @@ -66,13 +66,51 @@ static public function CreateFailResult($details, $debug = "") { return new ElggTestResult(false, $details, $debug); } } - function testing_execute_tests() + /** + * Execute an elgg test. + * + * @param string $function The test function + */ + function execute_elgg_test($function) { + if (is_callable($function)) + return $function(); + + return false; + } + + /** + * Execute all tests. + * + * @return array + */ + function execute_elgg_tests() + { + global $ELGG_TEST_REGISTRY; + $report = array(); // An array to be populated with ElggTestResult objects - $report = trigger_plugin_hook('test', 'test', null, $report); + foreach ($ELGG_TEST_REGISTRY as $func => $desc) + { + $report[] = execute_elgg_test($func); + } return $report; } + /** + * Register an Elgg unit test. + * + * @param string $description elgg_echo description of test. + * @param string $function Function to execute. This function should execute the test and return a ElggTestResult object. + */ + function register_elgg_test($description, $function) + { + global $ELGG_TEST_REGISTRY; + + if (!$ELGG_TEST_REGISTRY) $ELGG_TEST_REGISTRY = array(); + + $ELGG_TEST_REGISTRY[$function] = $description; + } + ?>
\ No newline at end of file |