[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/ -> index.php (source)

   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();


Generated: Fri Mar 19 03:00:35 2010 Cross-referenced by PHPXref 0.7
WikiForumIRCBugsGitXRefTranslate