aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/lib/testing.php78
1 files changed, 78 insertions, 0 deletions
diff --git a/engine/lib/testing.php b/engine/lib/testing.php
new file mode 100644
index 000000000..5f24939e8
--- /dev/null
+++ b/engine/lib/testing.php
@@ -0,0 +1,78 @@
+<?php
+ /**
+ * Elgg testing framework.
+ *
+ * This library contains an Elgg unit test framework which can be used and extended by plugins to provide
+ * functional unit tests to aid diagnostics of problems.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @copyright Curverider Ltd 2008-2009
+ * @link http://elgg.org/
+ */
+
+ /**
+ * Elgg test result object.
+ * This class is used to return the values of the test in order to generate a report.
+ */
+ class ElggTestResult {
+
+ /**
+ * Textual description of the test being performed (used for reporting).
+ *
+ * @var string
+ */
+ private $details;
+
+ /**
+ * Boolean, true if the test was executed successfully - false if not.
+ *
+ * @var bool
+ */
+ private $successful;
+
+ /**
+ * Any debug information for the report.
+ *
+ * @var string
+ */
+ private $debug;
+
+ /**
+ * Create a test result object.
+ *
+ */
+ function __construct($success, $details = "", $debug = "")
+ {
+ $success = (bool)$success;
+
+ $this->successful = $success;
+ $this->details = $details;
+ $this->debug = $debug;
+ }
+
+ /**
+ * Factory function to generate a successful result.
+ *
+ */
+ static public function CreateSuccessResult($details) { return new ElggTestResult(true, $details); }
+
+ /**
+ * Factory function to generate a successful result.
+ *
+ */
+ static public function CreateFailResult($details, $debug = "") { return new ElggTestResult(false, $details, $debug); }
+ }
+
+ function testing_execute_tests()
+ {
+ $report = array(); // An array to be populated with ElggTestResult objects
+
+ $report = trigger_plugin_hook('test', 'test', null, $report);
+
+ return $report;
+ }
+
+?> \ No newline at end of file