aboutsummaryrefslogtreecommitdiff
path: root/engine/tests/suite.php
diff options
context:
space:
mode:
Diffstat (limited to 'engine/tests/suite.php')
-rw-r--r--engine/tests/suite.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/engine/tests/suite.php b/engine/tests/suite.php
new file mode 100644
index 000000000..4203bc5d6
--- /dev/null
+++ b/engine/tests/suite.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Runs unit tests.
+ *
+ * @package Elgg
+ * @subpackage Test
+ */
+
+
+require_once(dirname( __FILE__ ) . '/../start.php');
+
+admin_gatekeeper();
+
+$vendor_path = "$CONFIG->path/vendors/simpletest";
+$test_path = "$CONFIG->path/engine/tests";
+
+require_once("$vendor_path/unit_tester.php");
+require_once("$vendor_path/mock_objects.php");
+require_once("$vendor_path/reporter.php");
+require_once("$test_path/elgg_unit_test.php");
+
+// turn off system log
+elgg_unregister_event_handler('all', 'all', 'system_log_listener');
+elgg_unregister_event_handler('log', 'systemlog', 'system_log_default_logger');
+
+// Disable maximum execution time.
+// Tests take a while...
+set_time_limit(0);
+
+$suite = new TestSuite('Elgg Core Unit Tests');
+
+// emit a hook to pull in all tests
+$test_files = elgg_trigger_plugin_hook('unit_test', 'system', null, array());
+foreach ($test_files as $file) {
+ $suite->addTestFile($file);
+}
+
+// Only run tests in debug mode.
+if (!isset($CONFIG->debug)) {
+ exit ('The site must be in debug mode to run unit tests.');
+}
+
+if (TextReporter::inCli()) {
+ // In CLI error codes are returned: 0 is success
+ elgg_set_ignore_access(TRUE);
+ exit ($suite->Run(new TextReporter()) ? 0 : 1 );
+}
+
+// Ensure that only logged-in users can see this page
+//admin_gatekeeper();
+$old = elgg_set_ignore_access(TRUE);
+$suite->Run(new HtmlReporter('utf-8'));
+elgg_set_ignore_access($old);