1<?php 2 3require_once DOKU_INC.'inc/init.php'; 4 5class init_getBaseURL_test extends DokuWikiTest { 6 7 /** 8 * Apache, mod_php, subdirectory 9 * 10 * data provided by Andreas Gohr <andi@splitbrain.org> 11 */ 12 function test1(){ 13 global $conf; 14 $conf['basedir'] = ''; 15 $conf['baseurl'] = ''; 16 $conf['canonical'] = 0; 17 18 $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; 19 $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; 20 $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; 21 $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php?do=debug'; 22 $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; 23 $_SERVER['PATH_INFO'] = null; 24 $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; 25 $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; 26 27 $this->assertEquals(getBaseURL(),'/dokuwiki/'); 28 } 29 30 /** 31 * Apache, CGI, mod_userdir, subdirectory 32 * 33 * data provided by Hilko Bengen <bengen@hilluzination.de> 34 */ 35 function test2(){ 36 global $conf; 37 $conf['basedir'] = ''; 38 $conf['baseurl'] = ''; 39 $conf['canonical'] = 0; 40 41 $_SERVER['DOCUMENT_ROOT'] = '/var/www/localhost'; 42 $_SERVER['HTTP_HOST'] = 'localhost'; 43 $_SERVER['SCRIPT_FILENAME'] = '/usr/lib/cgi-bin/php4'; 44 $_SERVER['REQUEST_URI'] = '/~bengen/dokuwiki/doku.php?do=debug'; 45 $_SERVER['SCRIPT_NAME'] = '/cgi-bin/php4'; 46 $_SERVER['PATH_INFO'] = '/~bengen/dokuwiki/doku.php'; 47 $_SERVER['PATH_TRANSLATED'] = '/home/bengen/public_html/dokuwiki/doku.php'; 48 $_SERVER['PHP_SELF'] = '/~bengen/dokuwiki/doku.php'; 49 50 $this->assertEquals(getBaseURL(),'/~bengen/dokuwiki/'); 51 } 52 53 /** 54 * Apache, FastCGI, mod_userdir, subdirectory 55 * 56 * data provided by Hilko Bengen <bengen@hilluzination.de> 57 */ 58 function test3(){ 59 global $conf; 60 $conf['basedir'] = ''; 61 $conf['baseurl'] = ''; 62 $conf['canonical'] = 0; 63 64 $_SERVER['DOCUMENT_ROOT'] = '/var/www/localhost'; 65 $_SERVER['HTTP_HOST'] = 'localhost'; 66 $_SERVER['SCRIPT_FILENAME'] = '/var/run/php-fastcgi/fcgi-bin/bengen/php4'; 67 $_SERVER['REQUEST_URI'] = '/~bengen/dokuwiki/doku.php?do=debug'; 68 $_SERVER['SCRIPT_NAME'] = '/fcgi-bin/php4-bengen'; 69 $_SERVER['PATH_INFO'] = '/~bengen/dokuwiki/doku.php'; 70 $_SERVER['PATH_TRANSLATED'] = '/home/bengen/public_html/dokuwiki/doku.php'; 71 $_SERVER['PHP_SELF'] = '/~bengen/dokuwiki/doku.php'; 72 73 $this->assertEquals(getBaseURL(),'/~bengen/dokuwiki/'); 74 } 75 76 /** 77 * Apache, mod_php, mod_userdir, subdirectory 78 * 79 * data provided by Hilko Bengen <bengen@hilluzination.de> 80 */ 81 function test4(){ 82 global $conf; 83 $conf['basedir'] = ''; 84 $conf['baseurl'] = ''; 85 $conf['canonical'] = 0; 86 87 $_SERVER['DOCUMENT_ROOT'] = '/var/www/localhost'; 88 $_SERVER['HTTP_HOST'] = 'localhost'; 89 $_SERVER['SCRIPT_FILENAME'] = '/home/bengen/public_html/dokuwiki/doku.php'; 90 $_SERVER['REQUEST_URI'] = '/~bengen/dokuwiki/doku.php?do=debug'; 91 $_SERVER['SCRIPT_NAME'] = '/~bengen/dokuwiki/doku.php'; 92 $_SERVER['PATH_INFO'] = null; 93 $_SERVER['PATH_TRANSLATED'] = '/home/bengen/public_html/dokuwiki/doku.php'; 94 $_SERVER['PHP_SELF'] = '/~bengen/dokuwiki/doku.php'; 95 96 $this->assertEquals(getBaseURL(),'/~bengen/dokuwiki/'); 97 } 98 99 /** 100 * IIS 101 * 102 * data provided by David Mach <david.mach@centrum.cz> 103 */ 104 function test5(){ 105 global $conf; 106 $conf['basedir'] = ''; 107 $conf['baseurl'] = ''; 108 $conf['canonical'] = 0; 109 110 $_SERVER['DOCUMENT_ROOT'] = null; 111 $_SERVER['HTTP_HOST'] = 'intranet'; 112 $_SERVER['SCRIPT_FILENAME'] = null; 113 $_SERVER['REQUEST_URI'] = null; 114 $_SERVER['SCRIPT_NAME'] = '/wiki/doku.php'; 115 $_SERVER['PATH_INFO'] = '/wiki/doku.php'; 116 $_SERVER['PATH_TRANSLATED'] = 'C:\\Inetpub\\wwwroot\\wiki\\doku.php'; 117 $_SERVER['PHP_SELF'] = '/wiki/doku.php'; 118 119 $this->assertEquals(getBaseURL(),'/wiki/'); 120 } 121 122 /** 123 * Apache 2, mod_php, real URL rewriting, useslash (bug #292) 124 * 125 * data provided by Ted <bugsX2904@elcsplace.com> 126 */ 127 function test6(){ 128 global $conf; 129 $conf['basedir'] = ''; 130 $conf['baseurl'] = ''; 131 $conf['canonical'] = 0; 132 133 $_SERVER['DOCUMENT_ROOT'] = '/home/websites/wiki/htdocs'; 134 $_SERVER['HTTP_HOST'] = 'wiki.linuxwan.net'; 135 $_SERVER['SCRIPT_FILENAME'] = '/home/websites/wiki/htdocs/doku.php'; 136 $_SERVER['REQUEST_URI'] = '/wiki/syntax?do=debug'; 137 $_SERVER['SCRIPT_NAME'] = '/wiki/syntax'; 138 $_SERVER['PATH_INFO'] = null; 139 $_SERVER['PATH_TRANSLATED'] = null; 140 $_SERVER['PHP_SELF'] = '/wiki/syntax'; 141 142 $this->assertEquals(getBaseURL(),'/'); 143 } 144 145 /** 146 * lighttpd, fastcgi 147 * 148 * data provided by Andreas Gohr <andi@splitbrain.org> 149 */ 150 function test7(){ 151 global $conf; 152 $conf['basedir'] = ''; 153 $conf['baseurl'] = ''; 154 $conf['canonical'] = 0; 155 156 $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; 157 $_SERVER['HTTP_HOST'] = 'localhost'; 158 $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; 159 $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php?do=debug'; 160 $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; 161 $_SERVER['PATH_INFO'] = ''; 162 $_SERVER['PATH_TRANSLATED'] = null; 163 $_SERVER['PHP_SELF'] = ''; 164 165 $this->assertEquals(getBaseURL(),'/dokuwiki/'); 166 } 167 168 /** 169 * Apache, mod_php, Pseudo URL rewrite, useslash 170 * 171 * data provided by Andreas Gohr <andi@splitbrain.org> 172 */ 173 function test8(){ 174 global $conf; 175 $conf['basedir'] = ''; 176 $conf['baseurl'] = ''; 177 $conf['canonical'] = 0; 178 179 $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; 180 $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; 181 $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; 182 $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php/wiki/syntax?do=debug'; 183 $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; 184 $_SERVER['PATH_INFO'] = '/wiki/syntax'; 185 $_SERVER['PATH_TRANSLATED'] = '/var/www/wiki/syntax'; 186 $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php/wiki/syntax'; 187 188 $this->assertEquals(getBaseURL(),'/dokuwiki/'); 189 } 190 191 /** 192 * Apache, mod_php, real URL rewrite, useslash 193 * 194 * data provided by Andreas Gohr <andi@splitbrain.org> 195 */ 196 function test9(){ 197 global $conf; 198 $conf['basedir'] = ''; 199 $conf['baseurl'] = ''; 200 $conf['canonical'] = 0; 201 202 $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; 203 $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; 204 $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; 205 $_SERVER['REQUEST_URI'] = '/dokuwiki/wiki/syntax?do=debug'; 206 $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; 207 $_SERVER['PATH_INFO'] = null; 208 $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; 209 $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; 210 211 $this->assertEquals(getBaseURL(),'/dokuwiki/'); 212 } 213 214 /** 215 * Possible user settings of $conf['baseurl'] & absolute baseURL required 216 * 217 * data provided by Andreas Gohr <andi@splitbrain.org> 218 */ 219 function test10(){ 220 // values for $conf['baseurl'] and expected results 221 $tests = array( 222 'http://www.mysite.com' => 'http://www.mysite.com/dokuwiki/', 223 'http://www.mysite.com/' => 'http://www.mysite.com/dokuwiki/', 224 'http://www.mysite.com/path/to/wiki' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', 225 'http://www.mysite.com/path/to/wiki/' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', 226 ); 227 228 global $conf; 229 $conf['basedir'] = ''; 230 $conf['baseurl'] = ''; 231 232 $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; 233 $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; 234 $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; 235 $_SERVER['REQUEST_URI'] = '/dokuwiki/wiki/syntax?do=debug'; 236 $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; 237 $_SERVER['PATH_INFO'] = null; 238 $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; 239 $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; 240 241 foreach ($tests as $test => $correct_result) { 242 $conf['baseurl'] = $test; 243 $this->assertEquals(getBaseURL(true),$correct_result); 244 } 245 } 246 /** 247 * Possible user settings of $conf['baseurl'] & absolute baseURL required 248 * 249 * data provided by Andreas Gohr <andi@splitbrain.org> 250 */ 251 function test11(){ 252 // values for $conf['baseurl'] and expected results 253 $tests = array( 254 'http://www.mysite.com' => 'http://www.mysite.com/dokuwiki/', 255 'http://www.mysite.com/' => 'http://www.mysite.com/dokuwiki/', 256 'http://www.mysite.com/path/to/wiki' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', 257 'http://www.mysite.com/path/to/wiki/' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', 258 ); 259 260 global $conf; 261 $conf['basedir'] = '/dokuwiki'; 262 $conf['baseurl'] = ''; 263 264 $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; 265 $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; 266 $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; 267 $_SERVER['REQUEST_URI'] = '/dokuwiki/wiki/syntax?do=debug'; 268 $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; 269 $_SERVER['PATH_INFO'] = null; 270 $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; 271 $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; 272 273 foreach ($tests as $test => $correct_result) { 274 $conf['baseurl'] = $test; 275 $this->assertEquals(getBaseURL(true),$correct_result); 276 } 277 } 278 279 /** 280 * Absolute URL with IPv6 domain name. 281 * lighttpd, fastcgi 282 * 283 * data provided by Michael Hamann <michael@content-space.de> 284 */ 285 function test12() { 286 global $conf; 287 $conf['basedir'] = ''; 288 $conf['baseurl'] = ''; 289 $conf['canonical'] = 0; 290 291 $_SERVER['DOCUMENT_ROOT'] = '/srv/http/'; 292 $_SERVER['HTTP_HOST'] = '[fd00::6592:39ed:a2ed:2c78]'; 293 $_SERVER['SCRIPT_FILENAME'] = '/srv/http/~michitux/dokuwiki/doku.php'; 294 $_SERVER['REQUEST_URI'] = '/~michitux/dokuwiki/doku.php?do=debug'; 295 $_SERVER['SCRIPT_NAME'] = '/~michitux/dokuwiki/doku.php'; 296 $_SERVER['PATH_INFO'] = null; 297 $_SERVER['PATH_TRANSLATED'] = null; 298 $_SERVER['PHP_SELF'] = '/~michitux/dokuwiki/doku.php'; 299 $_SERVER['SERVER_PORT'] = '80'; 300 $_SERVER['SERVER_NAME'] = '[fd00'; 301 $this->assertEquals(getBaseURL(true), 'http://[fd00::6592:39ed:a2ed:2c78]/~michitux/dokuwiki/'); 302 } 303} 304 305//Setup VIM: ex: et ts=2 : 306