2 define('DOKU_UNITTEST',true);
3 define('DOKU_TESTSCRIPT',$_SERVER['PHP_SELF']);
5 if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__
).'/../').'/');
6 define('DOKU_CONF',realpath(dirname(__FILE__
).'/../conf').'/');
8 require_once DOKU_CONF
. 'dokuwiki.php';
9 if(@file_exists
(DOKU_CONF
.'local.php')){ require_once(DOKU_CONF
.'local.php'); }
12 define('TEST_ROOT', dirname(__FILE__
));
13 define('TMPL_FILESCHEME_PATH', TEST_ROOT
. '/filescheme/');
14 error_reporting(E_ALL
);
17 ini_set('memory_limit','128M');
19 /* Used to determine output to display */
20 define('DW_TESTS_OUTPUT_HTML',1);
21 define('DW_TESTS_OUTPUT_XML',2);
23 if ( isset($_GET['output']) && $_GET['output'] == 'xml' ) {
24 define('DW_TESTS_OUTPUT',DW_TESTS_OUTPUT_XML
);
26 define('DW_TESTS_OUTPUT',DW_TESTS_OUTPUT_HTML
);
29 require_once 'lib/testmanager.php';
30 TestManager
::setup('tests.ini');
32 if ( !defined('SIMPLE_TEST') ) {
33 define('SIMPLE_TEST', ConfigManager
::getOptionAsPath('tests', 'simpletest', 'library_path'));
36 if (!@include_once SIMPLE_TEST
. 'reporter.php') {
37 RaiseError('runtime', 'LIBRARY_REQUIRED', array(
38 'library' => 'Simple Test',
39 'path' => SIMPLE_TEST
));
42 function & DW_TESTS_GetReporter() {
43 static $Reporter = NULL;
45 switch ( DW_TESTS_OUTPUT
) {
46 case DW_TESTS_OUTPUT_XML
:
47 require_once SIMPLE_TEST
. 'xml.php';
48 $Reporter = new XmlReporter();
50 case DW_TESTS_OUTPUT_HTML
:
52 $Reporter = new HTMLReporter('utf-8');
59 function DW_TESTS_PaintRunMore() {
60 switch ( DW_TESTS_OUTPUT
) {
61 case DW_TESTS_OUTPUT_XML
:
63 case DW_TESTS_OUTPUT_HTML
:
65 echo "<p><a href='" . DOKU_TESTSCRIPT
. "'>Run more tests</a></p>";
70 function DW_TESTS_PaintHeader() {
71 switch ( DW_TESTS_OUTPUT
) {
72 case DW_TESTS_OUTPUT_XML
:
73 header('Content-Type: text/xml; charset="utf-8"');
75 case DW_TESTS_OUTPUT_HTML
:
77 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
78 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
79 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
81 <meta http-equiv='Content-Type'
82 content='text/html; charset=iso-8859-1' />
84 <title>Dokuwiki: Unit Test Suite</title>
85 <link href="tests.css" type="text/css" rel="stylesheet" media="all"/>
96 function DW_TESTS_PaintSuiteHeader() {
97 switch ( DW_TESTS_OUTPUT
) {
98 case DW_TESTS_OUTPUT_XML
:
100 case DW_TESTS_OUTPUT_HTML
:
102 echo "<h1>Dokuwiki: Unit Test Suite</h1>\n";
103 echo "<p><a href='". DOKU_TESTSCRIPT
."?show=groups'>Test groups</a>";
104 echo " || <a href='". DOKU_TESTSCRIPT
."?show=cases'>Test cases</a></p>";
109 function DW_TESTS_PaintCaseList() {
110 switch ( DW_TESTS_OUTPUT
) {
111 case DW_TESTS_OUTPUT_XML
:
112 echo XMLTestManager
::getTestCaseList(TEST_CASES
);
114 case DW_TESTS_OUTPUT_HTML
:
116 echo HTMLTestManager
::getTestCaseList(TEST_CASES
);
121 function DW_TESTS_PaintGroupTestList() {
122 switch ( DW_TESTS_OUTPUT
) {
123 case DW_TESTS_OUTPUT_XML
:
124 echo XMLTestManager
::getGroupTestList(TEST_GROUPS
);
126 case DW_TESTS_OUTPUT_HTML
:
128 echo HTMLTestManager
::getGroupTestList(TEST_GROUPS
);
133 function DW_TESTS_PaintFooter() {
134 switch ( DW_TESTS_OUTPUT
) {
135 case DW_TESTS_OUTPUT_XML
:
137 case DW_TESTS_OUTPUT_HTML
:
148 /** OUTPUT STARTS HERE **/
150 // If it's a group test
151 if (isset($_GET['group'])) {
152 if ('all' == $_GET['group']) {
153 TestManager
::runAllTests(DW_TESTS_GetReporter());
155 TestManager
::runGroupTest(ucfirst($_GET['group']),
157 DW_TESTS_GetReporter());
159 DW_TESTS_PaintRunMore();
163 // If it's a single test case
164 if (isset($_GET['case'])) {
165 TestManager
::runTestCase($_GET['case'], TEST_CASES
, DW_TESTS_GetReporter());
166 DW_TESTS_PaintRunMore();
170 // Else it's the main page
171 DW_TESTS_PaintHeader();
173 DW_TESTS_PaintSuiteHeader();
175 if (isset($_GET['show']) && $_GET['show'] == 'cases') {
176 DW_TESTS_PaintCaseList();
178 /* no group specified, so list them all */
179 DW_TESTS_PaintGroupTestList();
182 DW_TESTS_PaintFooter();