summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPreston L. Bannister <pbannister@php.net>2002-05-16 15:59:39 +0000
committerPreston L. Bannister <pbannister@php.net>2002-05-16 15:59:39 +0000
commitaa0702f0512202e03e6260f98cb4afbf5e7d50ba (patch)
tree50f1af795061342fe3517942afa58d011f2de4ae
parentadf701a3ef6931ed3dfa01d3b65cb758ada76780 (diff)
downloadphp-git-aa0702f0512202e03e6260f98cb4afbf5e7d50ba.tar.gz
dirname() checks that work for both Unix and Win32.
-rw-r--r--tests/dirname.phpt74
1 files changed, 51 insertions, 23 deletions
diff --git a/tests/dirname.phpt b/tests/dirname.phpt
index c2e1edbe14..83f5d7a788 100644
--- a/tests/dirname.phpt
+++ b/tests/dirname.phpt
@@ -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