[ Index ] |
PHP Cross Reference of DokuWiki |
[Summary view] [Print] [Text view]
1 <?php 2 3 class init_fullpath_test extends DokuWikiTest { 4 5 function test_unix_paths(){ 6 $base = $_SERVER['SCRIPT_FILENAME']; 7 $_SERVER['SCRIPT_FILENAME'] = '/absolute/path/self.php'; 8 $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS'] = false; 9 10 // paths to check 11 $tests = array( 12 '/foo/bar/baz' => '/foo/bar/baz', 13 '/foo//bar/baz' => '/foo/bar/baz', 14 '/foo/../bar/baz' => '/bar/baz', 15 '/foo/./bar/baz' => '/foo/bar/baz', 16 '/foo/bar/..' => '/foo', 17 '/foo/bar/../../../baz' => '/baz', 18 '/foo/bar//baz' => '/foo/bar/baz', 19 20 'foo/bar/baz' => '/absolute/path/foo/bar/baz', 21 'foo//bar/baz' => '/absolute/path/foo/bar/baz', 22 'foo/../bar/baz' => '/absolute/path/bar/baz', 23 'foo/./bar/baz' => '/absolute/path/foo/bar/baz', 24 'foo/bar/..' => '/absolute/path/foo', 25 'foo/bar/../../../baz' => '/absolute/baz', 26 ); 27 28 foreach($tests as $from => $to){ 29 $info = "Testing '$from' resulted in '".fullpath($from)."'"; 30 31 $this->assertEquals(fullpath($from), $to, $info); 32 } 33 34 35 $_SERVER['SCRIPT_FILENAME'] = $base; 36 unset($GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']); 37 } 38 39 function test_windows_paths(){ 40 $base = $_SERVER['SCRIPT_FILENAME']; 41 $_SERVER['SCRIPT_FILENAME'] = '/absolute/path/self.php'; 42 $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS'] = true; 43 44 // paths to check 45 $tests = array( 46 'c:foo/bar/baz' => 'c:/foo/bar/baz', 47 'c:foo//bar/baz' => 'c:/foo/bar/baz', 48 'c:foo/../bar/baz' => 'c:/bar/baz', 49 'c:foo/./bar/baz' => 'c:/foo/bar/baz', 50 'c:foo/bar/..' => 'c:/foo', 51 'c:foo/bar/../../../baz' => 'c:/baz', 52 'c:foo/bar//baz' => 'c:/foo/bar/baz', 53 54 'c:/foo/bar/baz' => 'c:/foo/bar/baz', 55 'c:/foo//bar/baz' => 'c:/foo/bar/baz', 56 'c:/foo/../bar/baz' => 'c:/bar/baz', 57 'c:/foo/./bar/baz' => 'c:/foo/bar/baz', 58 'c:/foo/bar/..' => 'c:/foo', 59 'c:/foo/bar/../../../baz' => 'c:/baz', 60 61 'c:\\foo\\bar\\baz' => 'c:/foo/bar/baz', 62 'c:\\foo\\\\bar\\baz' => 'c:/foo/bar/baz', 63 'c:\\foo\\..\\bar\\baz' => 'c:/bar/baz', 64 'c:\\foo\\.\\bar\\baz' => 'c:/foo/bar/baz', 65 'c:\\foo\\bar\\..' => 'c:/foo', 66 'c:\\foo\\bar\\..\\..\\..\\baz' => 'c:/baz', 67 'c:\\foo\\bar\\\\baz' => 'c:/foo/bar/baz', 68 69 '\\\\server\\share/foo/bar/baz' => '\\\\server\\share/foo/bar/baz', 70 '\\\\server\\share/foo//bar/baz' => '\\\\server\\share/foo/bar/baz', 71 '\\\\server\\share/foo/../bar/baz' => '\\\\server\\share/bar/baz', 72 '\\\\server\\share/foo/./bar/baz' => '\\\\server\\share/foo/bar/baz', 73 '\\\\server\\share/foo/bar/..' => '\\\\server\\share/foo', 74 '\\\\server\\share/foo/bar/../../../baz' => '\\\\server\\share/baz', 75 ); 76 77 foreach($tests as $from => $to){ 78 $info = "Testing '$from' resulted in '".fullpath($from)."'"; 79 80 $this->assertEquals(fullpath($from), $to, $info); 81 } 82 83 84 $_SERVER['SCRIPT_FILENAME'] = $base; 85 unset($GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']); 86 } 87 88 } 89 //Setup VIM: ex: et ts=4 :
title
Description
Body
title
Description
Body
title
Description
Body
title
Body