'?id=', 'REQUEST_METHOD' => 'GET', 'CONTENT_TYPE' => '', 'CONTENT_LENGTH' => '', 'SCRIPT_NAME' => '/doku.php', 'REQUEST_URI' => '/doku.php?id=', 'DOCUMENT_URI' => '/doku.php', 'DOCUMENT_ROOT' => DOKU_INC, 'SERVER_PROTOCOL' => 'HTTP/1.1', 'SERVER_SOFTWARE' => 'nginx/0.7.67', 'REMOTE_ADDR' => '172.17.18.19', 'REMOTE_PORT' => '21418', 'SERVER_ADDR' => '10.11.12.13', 'SERVER_PORT' => '80', 'SERVER_NAME' => 'wiki.example.com', 'REDIRECT_STATUS' => '200', 'SCRIPT_FILENAME' => DOKU_INC.'doku.php', 'HTTP_HOST' => 'wiki.example.com', 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; OpenBSD amd64; rv:11.0) Gecko/20100101 Firefox/11.0', 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5', 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate', 'HTTP_CONNECTION' => 'keep-alive', 'HTTP_CACHE_CONTROL' => 'max-age=0', 'PHP_SELF' => '/doku.php', 'REQUEST_TIME' => time(), ); // fixup for $_SERVER when run from CLI, // some values should be mocked for use by inc/init.php which is called here // [ $_SERVER is also mocked in TestRequest::execute() ] if (php_sapi_name() == 'cli') { $_SERVER = array_merge($default_server_vars, $_SERVER); } // create temp directories mkdir(TMP_DIR); // cleanup dir after exit if (getenv('PRESERVE_TMP') != 'true') { register_shutdown_function(function() { TestUtils::rdelete(TMP_DIR); }); } else { echo ">>>> Preserving temporary directory: ".TMP_DIR."\n"; } // populate default dirs for initial setup DokuWikiTest::setupDataDir(); DokuWikiTest::setupConfDir(); // disable all non-default plugins by default $dh = dir(DOKU_INC.'lib/plugins/'); while (false !== ($entry = $dh->read())) { if ($entry == '.' || $entry == '..') { continue; } if (!is_dir(DOKU_INC.'lib/plugins/'.$entry)) { continue; } if (!in_array($entry, $default_plugins)) { // disable this plugin TestUtils::fappend(DOKU_CONF.'plugins.local.php', "\$plugins['$entry'] = 0;\n"); } } $dh->close(); // use no mbstring help during tests if (!defined('UTF8_NOMBSTRING')) define('UTF8_NOMBSTRING', 1); // load dw require_once(DOKU_INC.'inc/init.php'); // load the parser so $PARSER_MODES is defined before the tests start // otherwise PHPUnit unsets $PARSER_MODES in some cases which breaks p_get_parsermodes() require_once(DOKU_INC.'inc/parser/parser.php');