summaryrefslogtreecommitdiff
path: root/_test/tests/inc/init_fullpath.test.php
diff options
context:
space:
mode:
authorGuy Brand <gb@unistra.fr>2012-09-10 17:04:45 +0200
committerGuy Brand <gb@unistra.fr>2012-09-10 17:04:45 +0200
commit0f8ac4e8c5872a6b68b350f96a9ecde0291edefa (patch)
treead7938bb4143d5e5a38fd7a8d131e4171aec657d /_test/tests/inc/init_fullpath.test.php
parent58ec8fa9128e4581749955de87530f432e387588 (diff)
parentb31fcef02fd24b3e746c9618e77152c7b84c2f2a (diff)
downloadrpg-0f8ac4e8c5872a6b68b350f96a9ecde0291edefa.tar.gz
rpg-0f8ac4e8c5872a6b68b350f96a9ecde0291edefa.tar.bz2
Merge branch 'master' into stable
Diffstat (limited to '_test/tests/inc/init_fullpath.test.php')
-rw-r--r--_test/tests/inc/init_fullpath.test.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/_test/tests/inc/init_fullpath.test.php b/_test/tests/inc/init_fullpath.test.php
new file mode 100644
index 000000000..fabf03fa0
--- /dev/null
+++ b/_test/tests/inc/init_fullpath.test.php
@@ -0,0 +1,86 @@
+<?php
+
+class init_fullpath_test extends DokuWikiTest {
+
+ function test_unix_paths(){
+ $base = $_SERVER['SCRIPT_FILENAME'];
+ $_SERVER['SCRIPT_FILENAME'] = '/absolute/path/self.php';
+ $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS'] = false;
+
+ // paths to check
+ $tests = array(
+ '/foo/bar/baz' => '/foo/bar/baz',
+ '/foo//bar/baz' => '/foo/bar/baz',
+ '/foo/../bar/baz' => '/bar/baz',
+ '/foo/./bar/baz' => '/foo/bar/baz',
+ '/foo/bar/..' => '/foo',
+ '/foo/bar/../../../baz' => '/baz',
+
+ 'foo/bar/baz' => '/absolute/path/foo/bar/baz',
+ 'foo//bar/baz' => '/absolute/path/foo/bar/baz',
+ 'foo/../bar/baz' => '/absolute/path/bar/baz',
+ 'foo/./bar/baz' => '/absolute/path/foo/bar/baz',
+ 'foo/bar/..' => '/absolute/path/foo',
+ 'foo/bar/../../../baz' => '/absolute/baz',
+ );
+
+ foreach($tests as $from => $to){
+ $info = "Testing '$from' resulted in '".fullpath($from)."'";
+
+ $this->assertEquals(fullpath($from), $to, $info);
+ }
+
+
+ $_SERVER['SCRIPT_FILENAME'] = $base;
+ unset($GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']);
+ }
+
+ function test_windows_paths(){
+ $base = $_SERVER['SCRIPT_FILENAME'];
+ $_SERVER['SCRIPT_FILENAME'] = '/absolute/path/self.php';
+ $GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS'] = true;
+
+ // paths to check
+ $tests = array(
+ 'c:foo/bar/baz' => 'c:/foo/bar/baz',
+ 'c:foo//bar/baz' => 'c:/foo/bar/baz',
+ 'c:foo/../bar/baz' => 'c:/bar/baz',
+ 'c:foo/./bar/baz' => 'c:/foo/bar/baz',
+ 'c:foo/bar/..' => 'c:/foo',
+ 'c:foo/bar/../../../baz' => 'c:/baz',
+
+ 'c:/foo/bar/baz' => 'c:/foo/bar/baz',
+ 'c:/foo//bar/baz' => 'c:/foo/bar/baz',
+ 'c:/foo/../bar/baz' => 'c:/bar/baz',
+ 'c:/foo/./bar/baz' => 'c:/foo/bar/baz',
+ 'c:/foo/bar/..' => 'c:/foo',
+ 'c:/foo/bar/../../../baz' => 'c:/baz',
+
+ 'c:\\foo\\bar\\baz' => 'c:/foo/bar/baz',
+ 'c:\\foo\\\\bar\\baz' => 'c:/foo/bar/baz',
+ 'c:\\foo\\..\\bar\\baz' => 'c:/bar/baz',
+ 'c:\\foo\\.\\bar\\baz' => 'c:/foo/bar/baz',
+ 'c:\\foo\\bar\\..' => 'c:/foo',
+ 'c:\\foo\\bar\\..\\..\\..\\baz' => 'c:/baz',
+
+ '\\\\server\\share/foo/bar/baz' => '\\\\server\\share/foo/bar/baz',
+ '\\\\server\\share/foo//bar/baz' => '\\\\server\\share/foo/bar/baz',
+ '\\\\server\\share/foo/../bar/baz' => '\\\\server\\share/bar/baz',
+ '\\\\server\\share/foo/./bar/baz' => '\\\\server\\share/foo/bar/baz',
+ '\\\\server\\share/foo/bar/..' => '\\\\server\\share/foo',
+ '\\\\server\\share/foo/bar/../../../baz' => '\\\\server\\share/baz',
+ );
+
+ foreach($tests as $from => $to){
+ $info = "Testing '$from' resulted in '".fullpath($from)."'";
+
+ $this->assertEquals(fullpath($from), $to, $info);
+ }
+
+
+ $_SERVER['SCRIPT_FILENAME'] = $base;
+ unset($GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']);
+ }
+
+}
+//Setup VIM: ex: et ts=4 :