--TEST--
Test dirname() function : usage variations
--FILE--
<?php
/* Prototype: string dirname ( string $path );
   Description: Returns directory name component of path.
*/
class temp

   function 
__toString() {
     return 
"Object";
   }
}

$file_path_variations = array (
  
/* home dir shortcut char */
  
"~/home/user/bar",
  
"~/home/user/bar/",
  
"~/home/user/bar.tar",
  
"~/home/user/bar.tar/",

  
/* with hotname:dir notation */
  
"hostname:/home/user/bar.tar",
  
"hostname:/home/user/tbar.gz/",
  
"hostname:/home/user/My Pics.gz",
  
"hostname:/home/user/My Pics.gz/",
  
"hostname:/home/user/My Pics/",
  
"hostname:/home/user/My Pics",
  
  
/* path containing numeric string */
  
"10.5",
  
"/10.5",
  
"/10.5/",
  
"10.5/",
  
"10/10.gz",
  
'0',
  
"0",
  
  
/* object */
  
new temp,

  
/* path as spaces */
  
" ",
  
' ',

  
/* empty path */
  
"",
  
'',
  
NULL,
  
null
);

function 
check_dirname$paths ) {
   
$loop_counter 0;
   
$noOfPaths count($paths);
   for( ; 
$loop_counter $noOfPaths$loop_counter++ ) {
     echo 
"\n--Iteration ";
     echo 
$loop_counter +1;
     echo 
" --\n"
     
var_dumpdirname($paths[$loop_counter]) );
   }
}

echo 
"*** Testing possible variations in path ***\n";
check_dirname$file_path_variations );

echo 
"Done\n";
?>
--EXPECTREGEX--
\*\*\* Testing possible variations in path \*\*\*

--Iteration 1 --
string\(11\) "~(\\|\/)home(\\|\/)user"

--Iteration 2 --
string\(11\) "~(\\|\/)home(\\|\/)user"

--Iteration 3 --
string\(11\) "~(\\|\/)home(\\|\/)user"

--Iteration 4 --
string\(11\) "~(\\|\/)home(\\|\/)user"

--Iteration 5 --
string\(19\) "hostname:(\\|\/)home(\\|\/)user"

--Iteration 6 --
string\(19\) "hostname:(\\|\/)home(\\|\/)user"

--Iteration 7 --
string\(19\) "hostname:(\\|\/)home(\\|\/)user"

--Iteration 8 --
string\(19\) "hostname:(\\|\/)home(\\|\/)user"

--Iteration 9 --
string\(19\) "hostname:(\\|\/)home(\\|\/)user"

--Iteration 10 --
string\(19\) "hostname:(\\|\/)home(\\|\/)user"

--Iteration 11 --
string\(1\) "."

--Iteration 12 --
string\(1\) "(\\|\/)"

--Iteration 13 --
string\(1\) "(\\|\/)"

--Iteration 14 --
string\(1\) "."

--Iteration 15 --
string\(2\) "10"

--Iteration 16 --
string\(1\) "."

--Iteration 17 --
string\(1\) "."

--Iteration 18 --
string\(1\) "."

--Iteration 19 --
string\(1\) "."

--Iteration 20 --
string\(1\) "."

--Iteration 21 --
string\(0\) ""

--Iteration 22 --
string\(0\) ""

--Iteration 23 --
string\(0\) ""

--Iteration 24 --
string\(0\) ""
Done