*/ function test1(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php?do=debug'; $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = null; $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; $this->assertEquals(getBaseURL(),'/dokuwiki/'); } /** * Apache, CGI, mod_userdir, subdirectory * * data provided by Hilko Bengen */ function test2(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/var/www/localhost'; $_SERVER['HTTP_HOST'] = 'localhost'; $_SERVER['SCRIPT_FILENAME'] = '/usr/lib/cgi-bin/php4'; $_SERVER['REQUEST_URI'] = '/~bengen/dokuwiki/doku.php?do=debug'; $_SERVER['SCRIPT_NAME'] = '/cgi-bin/php4'; $_SERVER['PATH_INFO'] = '/~bengen/dokuwiki/doku.php'; $_SERVER['PATH_TRANSLATED'] = '/home/bengen/public_html/dokuwiki/doku.php'; $_SERVER['PHP_SELF'] = '/~bengen/dokuwiki/doku.php'; $this->assertEquals(getBaseURL(),'/~bengen/dokuwiki/'); } /** * Apache, FastCGI, mod_userdir, subdirectory * * data provided by Hilko Bengen */ function test3(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/var/www/localhost'; $_SERVER['HTTP_HOST'] = 'localhost'; $_SERVER['SCRIPT_FILENAME'] = '/var/run/php-fastcgi/fcgi-bin/bengen/php4'; $_SERVER['REQUEST_URI'] = '/~bengen/dokuwiki/doku.php?do=debug'; $_SERVER['SCRIPT_NAME'] = '/fcgi-bin/php4-bengen'; $_SERVER['PATH_INFO'] = '/~bengen/dokuwiki/doku.php'; $_SERVER['PATH_TRANSLATED'] = '/home/bengen/public_html/dokuwiki/doku.php'; $_SERVER['PHP_SELF'] = '/~bengen/dokuwiki/doku.php'; $this->assertEquals(getBaseURL(),'/~bengen/dokuwiki/'); } /** * Apache, mod_php, mod_userdir, subdirectory * * data provided by Hilko Bengen */ function test4(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/var/www/localhost'; $_SERVER['HTTP_HOST'] = 'localhost'; $_SERVER['SCRIPT_FILENAME'] = '/home/bengen/public_html/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/~bengen/dokuwiki/doku.php?do=debug'; $_SERVER['SCRIPT_NAME'] = '/~bengen/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = null; $_SERVER['PATH_TRANSLATED'] = '/home/bengen/public_html/dokuwiki/doku.php'; $_SERVER['PHP_SELF'] = '/~bengen/dokuwiki/doku.php'; $this->assertEquals(getBaseURL(),'/~bengen/dokuwiki/'); } /** * IIS * * data provided by David Mach */ function test5(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = null; $_SERVER['HTTP_HOST'] = 'intranet'; $_SERVER['SCRIPT_FILENAME'] = null; $_SERVER['REQUEST_URI'] = null; $_SERVER['SCRIPT_NAME'] = '/wiki/doku.php'; $_SERVER['PATH_INFO'] = '/wiki/doku.php'; $_SERVER['PATH_TRANSLATED'] = 'C:\\Inetpub\\wwwroot\\wiki\\doku.php'; $_SERVER['PHP_SELF'] = '/wiki/doku.php'; $this->assertEquals(getBaseURL(),'/wiki/'); } /** * Apache 2, mod_php, real URL rewriting, useslash (bug #292) * * data provided by Ted */ function test6(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/home/websites/wiki/htdocs'; $_SERVER['HTTP_HOST'] = 'wiki.linuxwan.net'; $_SERVER['SCRIPT_FILENAME'] = '/home/websites/wiki/htdocs/doku.php'; $_SERVER['REQUEST_URI'] = '/wiki/syntax?do=debug'; $_SERVER['SCRIPT_NAME'] = '/wiki/syntax'; $_SERVER['PATH_INFO'] = null; $_SERVER['PATH_TRANSLATED'] = null; $_SERVER['PHP_SELF'] = '/wiki/syntax'; $this->assertEquals(getBaseURL(),'/'); } /** * lighttpd, fastcgi * * data provided by Andreas Gohr */ function test7(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; $_SERVER['HTTP_HOST'] = 'localhost'; $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php?do=debug'; $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = ''; $_SERVER['PATH_TRANSLATED'] = null; $_SERVER['PHP_SELF'] = ''; $this->assertEquals(getBaseURL(),'/dokuwiki/'); } /** * Apache, mod_php, Pseudo URL rewrite, useslash * * data provided by Andreas Gohr */ function test8(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/dokuwiki/doku.php/wiki/syntax?do=debug'; $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = '/wiki/syntax'; $_SERVER['PATH_TRANSLATED'] = '/var/www/wiki/syntax'; $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php/wiki/syntax'; $this->assertEquals(getBaseURL(),'/dokuwiki/'); } /** * Apache, mod_php, real URL rewrite, useslash * * data provided by Andreas Gohr */ function test9(){ global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/dokuwiki/wiki/syntax?do=debug'; $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = null; $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; $this->assertEquals(getBaseURL(),'/dokuwiki/'); } /** * Possible user settings of $conf['baseurl'] & absolute baseURL required * * data provided by Andreas Gohr */ function test10(){ // values for $conf['baseurl'] and expected results $tests = array( 'http://www.mysite.com' => 'http://www.mysite.com/dokuwiki/', 'http://www.mysite.com/' => 'http://www.mysite.com/dokuwiki/', 'http://www.mysite.com/path/to/wiki' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', 'http://www.mysite.com/path/to/wiki/' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', ); global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/dokuwiki/wiki/syntax?do=debug'; $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = null; $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; foreach ($tests as $test => $correct_result) { $conf['baseurl'] = $test; $this->assertEquals(getBaseURL(true),$correct_result); } } /** * Possible user settings of $conf['baseurl'] & absolute baseURL required * * data provided by Andreas Gohr */ function test11(){ // values for $conf['baseurl'] and expected results $tests = array( 'http://www.mysite.com' => 'http://www.mysite.com/dokuwiki/', 'http://www.mysite.com/' => 'http://www.mysite.com/dokuwiki/', 'http://www.mysite.com/path/to/wiki' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', 'http://www.mysite.com/path/to/wiki/' => 'http://www.mysite.com/path/to/wiki/dokuwiki/', ); global $conf; $conf['basedir'] = '/dokuwiki'; $conf['baseurl'] = ''; $_SERVER['DOCUMENT_ROOT'] = '/var/www/'; $_SERVER['HTTP_HOST'] = 'xerxes.my.home'; $_SERVER['SCRIPT_FILENAME'] = '/var/www/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/dokuwiki/wiki/syntax?do=debug'; $_SERVER['SCRIPT_NAME'] = '/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = null; $_SERVER['PATH_TRANSLATED'] = '/var/www/dokuwiki/doku.php'; $_SERVER['PHP_SELF'] = '/dokuwiki/doku.php'; foreach ($tests as $test => $correct_result) { $conf['baseurl'] = $test; $this->assertEquals(getBaseURL(true),$correct_result); } } /** * Absolute URL with IPv6 domain name. * lighttpd, fastcgi * * data provided by Michael Hamann */ function test12() { global $conf; $conf['basedir'] = ''; $conf['baseurl'] = ''; $conf['canonical'] = 0; $_SERVER['DOCUMENT_ROOT'] = '/srv/http/'; $_SERVER['HTTP_HOST'] = '[fd00::6592:39ed:a2ed:2c78]'; $_SERVER['SCRIPT_FILENAME'] = '/srv/http/~michitux/dokuwiki/doku.php'; $_SERVER['REQUEST_URI'] = '/~michitux/dokuwiki/doku.php?do=debug'; $_SERVER['SCRIPT_NAME'] = '/~michitux/dokuwiki/doku.php'; $_SERVER['PATH_INFO'] = null; $_SERVER['PATH_TRANSLATED'] = null; $_SERVER['PHP_SELF'] = '/~michitux/dokuwiki/doku.php'; $_SERVER['SERVER_PORT'] = '80'; $_SERVER['SERVER_NAME'] = '[fd00'; $this->assertEquals(getBaseURL(true), 'http://[fd00::6592:39ed:a2ed:2c78]/~michitux/dokuwiki/'); } } //Setup VIM: ex: et ts=2 :