]> granicus.if.org Git - php/commitdiff
dirname() checks that work for both Unix and Win32.
authorPreston L. Bannister <pbannister@php.net>
Thu, 16 May 2002 15:59:39 +0000 (15:59 +0000)
committerPreston L. Bannister <pbannister@php.net>
Thu, 16 May 2002 15:59:39 +0000 (15:59 +0000)
tests/dirname.phpt

index c2e1edbe1464b7dc18f040ed993b318c048414e9..83f5d7a788d98f6a4ebbbaad61f55d29f730535c 100644 (file)
@@ -3,28 +3,56 @@ dirname test
 --FILE--
 <?php
 
-       function check_dirname($path)
-       {
-               print "dirname($path) == " . dirname($path) . "\n";
-       }
-       
-       check_dirname("/foo/");
-       check_dirname("/foo");
-       check_dirname("/foo/bar");
-       check_dirname("d:\\foo\\bar.inc");
-       check_dirname("/");
-       check_dirname(".../foo");
-       check_dirname("./foo");
-       check_dirname("foobar///");
-       check_dirname("c:\foo");
+// Allow for either Win32 or Unix.
+$s = dirname("/foo");
+// $s should be either / (Unix) or \ (Win32)
+
+function check_dirname($path) {
+    global $s;
+    $path1 = str_replace("%",$s,$path);
+    $path2 = dirname($path1);
+    $path3 = str_replace($s,"%",$path2);
+    print "dirname($path) == $path3\n";
+}
+
+check_dirname("%foo%");
+check_dirname("%foo");
+check_dirname("%foo%bar");
+check_dirname("%");
+check_dirname("...%foo");
+check_dirname(".%foo");
+check_dirname("foobar%%%");
+
+function same($a,$b) {
+    if ($a == $b) {
+        print "OK\n";
+    } else {
+        print "FAIL  $a == $b\n";
+    }
+}
+
+if ('/' == $s) {
+    same(".",dirname("d:\\foo\\bar.inc"));
+    same(".",dirname("c:\\foo"));
+    same(".",dirname("c:\\"));
+    same(".",dirname("c:"));
+} else {
+    same("d:\\foo",dirname("d:\\foo\\bar.inc"));
+    same("c:\\",dirname("c:\\foo"));
+    same("c:\\",dirname("c:\\"));
+    same("c:",dirname("c:"));
+}
+
 ?>
 --EXPECT--
-dirname(/foo/) == /
-dirname(/foo) == /
-dirname(/foo/bar) == /foo
-dirname(d:\foo\bar.inc) == .
-dirname(/) == /
-dirname(.../foo) == ...
-dirname(./foo) == .
-dirname(foobar///) == .
-dirname(c:\foo) == .
+dirname(%foo%) == %
+dirname(%foo) == %
+dirname(%foo%bar) == %foo
+dirname(%) == %
+dirname(...%foo) == ...
+dirname(.%foo) == .
+dirname(foobar%%%) == .
+OK
+OK
+OK
+OK