| [ Index ] |
PHP Cross Reference of DokuWiki |
[Summary view] [Print] [Text view]
1 <?php 2 define('DOKU_UNITTEST',true); 3 define('DOKU_TESTSCRIPT',$_SERVER['PHP_SELF']); 4 5 if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/'); 6 define('DOKU_CONF',realpath(dirname(__FILE__).'/../conf').'/'); 7 8 require_once DOKU_CONF . 'dokuwiki.php'; 9 if(@file_exists(DOKU_CONF.'local.php')){ require_once(DOKU_CONF.'local.php'); } 10 11 $conf['lang'] = 'en'; 12 define('TEST_ROOT', dirname(__FILE__)); 13 define('TMPL_FILESCHEME_PATH', TEST_ROOT . '/filescheme/'); 14 error_reporting(E_ALL); 15 16 set_time_limit(600); 17 ini_set('memory_limit','128M'); 18 19 /* Used to determine output to display */ 20 define('DW_TESTS_OUTPUT_HTML',1); 21 define('DW_TESTS_OUTPUT_XML',2); 22 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); 27 } 28 29 require_once 'lib/testmanager.php'; 30 TestManager::setup('tests.ini'); 31 32 if ( !defined('SIMPLE_TEST') ) { 33 define('SIMPLE_TEST', ConfigManager::getOptionAsPath('tests', 'simpletest', 'library_path')); 34 } 35 36 if (!@include_once SIMPLE_TEST . 'reporter.php') { 37 RaiseError('runtime', 'LIBRARY_REQUIRED', array( 38 'library' => 'Simple Test', 39 'path' => SIMPLE_TEST)); 40 } 41 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; 54 } 55 } 56 return $Reporter; 57 } 58 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; 67 } 68 } 69 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' /> 83 84 <title>Dokuwiki: Unit Test Suite</title> 85 <link href="tests.css" type="text/css" rel="stylesheet" media="all"/> 86 87 </head> 88 <body> 89 EOD; 90 echo $header; 91 default: 92 break; 93 } 94 } 95 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; 106 } 107 } 108 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; 118 } 119 } 120 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; 130 } 131 } 132 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; 145 } 146 } 147 148 /** OUTPUT STARTS HERE **/ 149 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()); 158 } 159 DW_TESTS_PaintRunMore(); 160 exit(); 161 } 162 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(); 168 } 169 170 // Else it's the main page 171 DW_TESTS_PaintHeader(); 172 173 DW_TESTS_PaintSuiteHeader(); 174 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(); 180 } 181 182 DW_TESTS_PaintFooter();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Dec 3 01:30:02 2008 | Cross-referenced by PHPXref 0.7 |