summaryrefslogtreecommitdiff
path: root/_test/lib
diff options
context:
space:
mode:
Diffstat (limited to '_test/lib')
-rw-r--r--_test/lib/testmanager.php91
-rw-r--r--_test/lib/unittest.php5
2 files changed, 91 insertions, 5 deletions
diff --git a/_test/lib/testmanager.php b/_test/lib/testmanager.php
index 14cc20bf3..96c9a57a2 100644
--- a/_test/lib/testmanager.php
+++ b/_test/lib/testmanager.php
@@ -5,6 +5,7 @@
define('TEST_GROUPS',realpath(dirname(__FILE__).'/../cases'));
define('TEST_CASES',realpath(dirname(__FILE__).'/../cases'));
+define('TEST_PLUGINS',realpath(dirname(__FILE__).'/../../lib/plugins'));
// try to load runkit extension
if (!extension_loaded('runkit') && function_exists('dl')) {
@@ -59,6 +60,17 @@ class TestManager {
$test->run($reporter);
}
+ function runAllPluginTests(&$reporter) {
+ $manager =& new TestManager();
+ $test_cases =& $manager->_getTestFileList(TEST_PLUGINS);
+ $test =& new GroupTest('All Plugin Tests');
+ foreach ($test_cases as $test_case) {
+ $test->addTestFile($test_case);
+ }
+ $test->run($reporter);
+ }
+
+
function runTestCase($testcase_name, $test_case_directory, &$reporter) {
$manager =& new TestManager();
@@ -125,12 +137,12 @@ class TestManager {
}
function &_getTestCaseList($directory = '.') {
- $base = TEST_GROUPS . DIRECTORY_SEPARATOR;
$file_list =& $this->_getTestFileList($directory);
$testcases = array();
foreach ($file_list as $testcase_file) {
$case = str_replace($this->_testcase_extension, '',$testcase_file);
- $case = str_replace($base, '', $case);
+ $case = str_replace(TEST_GROUPS . DIRECTORY_SEPARATOR, '', $case);
+ $case = str_replace(TEST_PLUGINS . DIRECTORY_SEPARATOR, '', $case);
$case = str_replace(DIRECTORY_SEPARATOR, ':', $case);
$testcases[$testcase_file] = $case;
}
@@ -142,6 +154,16 @@ class TestManager {
array(&$this, '_isTestCaseFile'));
}
+ function &getPluginTestCaseList($directory = '.') {
+ $manager =& new TestManager();
+ return $manager->_getTestCaseList($directory);
+ }
+
+ function &getPluginGroupTestList($directory = '.') {
+ $manager =& new TestManager();
+ return $manager->_getTestGroupList($directory);
+ }
+
function &getGroupTestList($directory = '.') {
$manager =& new TestManager();
return $manager->_getTestGroupList($directory);
@@ -153,12 +175,12 @@ class TestManager {
}
function &_getTestGroupList($directory = '.') {
- $base = TEST_GROUPS . DIRECTORY_SEPARATOR;
$file_list =& $this->_getTestGroupFileList($directory);
$grouptests = array();
foreach ($file_list as $grouptest_file) {
$group = str_replace($this->_grouptest_extension, '',$grouptest_file);
- $group = str_replace($base, '', $group);
+ $group = str_replace(TEST_GROUPS . DIRECTORY_SEPARATOR, '', $group);
+ $group = str_replace(TEST_PLUGINS . DIRECTORY_SEPARATOR, '', $group);
$group = str_replace(DIRECTORY_SEPARATOR, ':', $group);
$grouptests[$grouptest_file] = $group;
}
@@ -168,7 +190,7 @@ class TestManager {
function &_getGroupTestClassNames($grouptest_file) {
$file = implode("\n", file($grouptest_file));
- preg_match("~lass\s+?(.*)\s+?extends GroupTest~", $file, $matches);
+ preg_match("~lass\s+?(.*)\s+?extends .*?GroupTest~", $file, $matches);
if (! empty($matches)) {
unset($matches[0]);
return $matches;
@@ -242,6 +264,29 @@ class CLITestManager extends TestManager {
}
return $buffer . "\n";
}
+
+ function &getPluginTestCaseList($directory = '.') {
+ $manager =& new CLITestManager();
+ $test_cases =& $manager->_getTestCaseList($directory);
+
+ $buffer = "Available test cases:\n";
+ foreach ($test_cases as $test_case) {
+ $buffer .= " " . $test_case . "\n";
+ }
+ return $buffer . "\n";
+ }
+
+ function &getPluginGroupTestList($directory = '.') {
+ $manager =& new CLITestManager();
+ $test_cases =& $manager->_getTestGroupList($directory);
+
+ $buffer = "Available test cases:\n";
+ foreach ($test_cases as $test_case) {
+ $buffer .= " " . $test_case . "\n";
+ }
+ return $buffer . "\n";
+ }
+
}
class HTMLTestManager extends TestManager {
@@ -289,6 +334,42 @@ class HTMLTestManager extends TestManager {
$buffer .= "</ul>\n";
return $buffer;
}
+
+ function &getPluginTestCaseList($directory = '.') {
+ $manager =& new HTMLTestManager();
+ $testcases =& $manager->_getTestCaseList($directory);
+
+ if (1 > count($testcases)) {
+ return "<p>No plugin test cases set up!</p>";
+ }
+ $buffer = "<p>Available plugin test cases:</p>\n<ul>";
+ foreach ($testcases as $testcase) {
+ $buffer .= "<li><a href='" . $manager->getBaseURL() .
+ "?plugin_case=" . urlencode($testcase) . "'>" .
+ $testcase . "</a></li>\n";
+ }
+
+ $buffer .= "</ul>\n";
+ return $buffer;
+ }
+
+ function &getPluginGroupTestList($directory = '.') {
+ $manager =& new HTMLTestManager();
+ $group_tests =& $manager->_getTestGroupList($directory);
+ if (1 > count($group_tests)) {
+ return "<p>No plugin test groups set up!</p>";
+ }
+ $buffer = "<p>Available plugin groups:</p>\n<ul>";
+ $buffer .= "<li><a href='" . $manager->getBaseURL() . "?plugin_group=all'>All tests</a></li>\n";
+ foreach ($group_tests as $group_test) {
+ $buffer .= "<li><a href='" . $manager->getBaseURL() . "?plugin_group={$group_test}'>" .
+ $group_test . "</a></li>\n";
+ }
+
+ $buffer .= "</ul>\n";
+ return $buffer;
+ }
+
}
/**
diff --git a/_test/lib/unittest.php b/_test/lib/unittest.php
new file mode 100644
index 000000000..220aa6c1b
--- /dev/null
+++ b/_test/lib/unittest.php
@@ -0,0 +1,5 @@
+<?php
+class Doku_UnitTestCase extends UnitTestCase {
+}
+class Doku_GroupTest extends GroupTest {
+}