Added CRSF security token checks in ACL plugin
[dokuwiki/radio.git] / _test / index.php
blob87cc10a35970dc01d83bd9d783944ced00fa2f61
1 <?php
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'); }
11 $conf['lang'] = 'en';
12 define('TEST_ROOT', dirname(__FILE__));
13 define('TMPL_FILESCHEME_PATH', TEST_ROOT . '/filescheme/');
14 error_reporting(E_ALL);
16 set_time_limit(600);
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);
25 } else {
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;
44 if ( !$Reporter ) {
45 switch ( DW_TESTS_OUTPUT ) {
46 case DW_TESTS_OUTPUT_XML:
47 require_once SIMPLE_TEST . 'xml.php';
48 $Reporter = new XmlReporter();
49 break;
50 case DW_TESTS_OUTPUT_HTML:
51 default:
52 $Reporter = new HTMLReporter('utf-8');
53 break;
56 return $Reporter;
59 function DW_TESTS_PaintRunMore() {
60 switch ( DW_TESTS_OUTPUT ) {
61 case DW_TESTS_OUTPUT_XML:
62 break;
63 case DW_TESTS_OUTPUT_HTML:
64 default:
65 echo "<p><a href='" . DOKU_TESTSCRIPT . "'>Run more tests</a></p>";
66 break;
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"');
74 break;
75 case DW_TESTS_OUTPUT_HTML:
76 $header = <<<EOD
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'>
80 <head>
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"/>
87 </head>
88 <body>
89 EOD;
90 echo $header;
91 default:
92 break;
96 function DW_TESTS_PaintSuiteHeader() {
97 switch ( DW_TESTS_OUTPUT ) {
98 case DW_TESTS_OUTPUT_XML:
99 break;
100 case DW_TESTS_OUTPUT_HTML:
101 default:
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>";
105 break;
109 function DW_TESTS_PaintCaseList() {
110 switch ( DW_TESTS_OUTPUT ) {
111 case DW_TESTS_OUTPUT_XML:
112 echo XMLTestManager::getTestCaseList(TEST_CASES);
113 break;
114 case DW_TESTS_OUTPUT_HTML:
115 default:
116 echo HTMLTestManager::getTestCaseList(TEST_CASES);
117 break;
121 function DW_TESTS_PaintGroupTestList() {
122 switch ( DW_TESTS_OUTPUT ) {
123 case DW_TESTS_OUTPUT_XML:
124 echo XMLTestManager::getGroupTestList(TEST_GROUPS);
125 break;
126 case DW_TESTS_OUTPUT_HTML:
127 default:
128 echo HTMLTestManager::getGroupTestList(TEST_GROUPS);
129 break;
133 function DW_TESTS_PaintFooter() {
134 switch ( DW_TESTS_OUTPUT ) {
135 case DW_TESTS_OUTPUT_XML:
136 break;
137 case DW_TESTS_OUTPUT_HTML:
138 default:
139 $footer = <<<EOD
140 </body>
141 </html>
142 EOD;
143 echo $footer;
144 break;
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());
154 } else {
155 TestManager::runGroupTest(ucfirst($_GET['group']),
156 TEST_GROUPS,
157 DW_TESTS_GetReporter());
159 DW_TESTS_PaintRunMore();
160 exit();
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();
167 exit();
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();
177 } else {
178 /* no group specified, so list them all */
179 DW_TESTS_PaintGroupTestList();
182 DW_TESTS_PaintFooter();