kraghuba Mon Dec 24 05:19:42 2007 UTC Added files: (Branch: PHP_5_3) /php-src/ext/standard/tests/dir dir_variation1.phpt dir_variation2.phpt dir_variation3.phpt dir_variation4.phpt dir_variation5.phpt dir_basic.phpt dir_variation6.phpt dir_variation7.phpt dir_variation8.phpt dir_variation9.phpt dir_error.phpt Log: new testcases for dir() function
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation1.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation1.phpt +++ php-src/ext/standard/tests/dir/dir_variation1.phpt --TEST-- Test dir() function : usage variations - unexpected value for 'dir' argument --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */
/* * Passing non string values to 'directory' argument of dir() and see * that the function outputs proper warning messages wherever expected. */ echo "*** Testing dir() : unexpected values for \$directory argument ***\n"; // get an unset variable $unset_var = 10; unset($unset_var); class A { public $var; public function init() { $this->var = 10; } public function __toString() { return "ClassAObject"; } } // get a resource variable $fp = fopen(__FILE__, "r"); // get a file handle $dfp = opendir( dirname(__FILE__) ); // get a dir handle // unexpected values to be passed to $directory argument $unexpected_values = array ( // array data /*1*/ array(), array(0), array(1), array(1, 2), array('color' => 'red', 'item' => 'pen'), // null data /*6*/ NULL, null, // boolean data /*8*/ true, false, TRUE, FALSE, // empty data /*12*/ "", '', // undefined data /*14*/ @$undefined_var, // unset data /*15*/ @$unset_var, // resource variable(dir and file handle) /*16*/ $fp, $dfp, // object data /*18*/ new A() ); // loop through various elements of $unexpected_values to check the behavior of dir() $iterator = 1; foreach( $unexpected_values as $unexpected_value ) { echo "\n-- Iteration $iterator --\n"; var_dump( dir($unexpected_value) ); $iterator++; } fclose($fp); closedir($dfp); echo "Done"; ?> --EXPECTF-- *** Testing dir() : unexpected values for $directory argument *** -- Iteration 1 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 2 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 3 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 4 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 5 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 6 -- bool(false) -- Iteration 7 -- bool(false) -- Iteration 8 -- Warning: dir(1): failed to open dir: %s in %s on line %d bool(false) -- Iteration 9 -- bool(false) -- Iteration 10 -- Warning: dir(1): failed to open dir: %s in %s on line %d bool(false) -- Iteration 11 -- bool(false) -- Iteration 12 -- bool(false) -- Iteration 13 -- bool(false) -- Iteration 14 -- bool(false) -- Iteration 15 -- bool(false) -- Iteration 16 -- Warning: dir(Resource id #%d): failed to open dir: %s in %s on line %d bool(false) -- Iteration 17 -- Warning: dir(Resource id #%d): failed to open dir: %s in %s on line %d bool(false) -- Iteration 18 -- Warning: dir(ClassAObject): failed to open dir: %s in %s on line %d bool(false) Done --UEXPECTF-- *** Testing dir() : unexpected values for $directory argument *** -- Iteration 1 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 2 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 3 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 4 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 5 -- Notice: Array to string conversion in %s on line %d Warning: dir(Array): failed to open dir: %s in %s on line %d bool(false) -- Iteration 6 -- bool(false) -- Iteration 7 -- bool(false) -- Iteration 8 -- Warning: dir(1): failed to open dir: %s in %s on line %d bool(false) -- Iteration 9 -- bool(false) -- Iteration 10 -- Warning: dir(1): failed to open dir: %s in %s on line %d bool(false) -- Iteration 11 -- bool(false) -- Iteration 12 -- bool(false) -- Iteration 13 -- bool(false) -- Iteration 14 -- bool(false) -- Iteration 15 -- bool(false) -- Iteration 16 -- Warning: dir(Resource id #%d): failed to open dir: %s in %s on line %d bool(false) -- Iteration 17 -- Warning: dir(Resource id #%d): failed to open dir: %s in %s on line %d bool(false) -- Iteration 18 -- Warning: dir(ClassAObject): failed to open dir: %s in %s on line %d bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation2.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation2.phpt +++ php-src/ext/standard/tests/dir/dir_variation2.phpt --TEST-- Test dir() function : usage variations - unexpected value for 'context' argument --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * Passing non resource values to 'context' argument of dir() and see * that the function outputs proper warning messages wherever expected. */ echo "*** Testing dir() : unexpected values for \$context argument ***\n"; // create the temporary directory $file_path = dirname(__FILE__); $directory = $file_path."/dir_variation2"; @mkdir($directory); // get an unset variable $unset_var = stream_context_create(); unset($unset_var); class classA { public $var; public function init() { $this->var = 10; } } // heredoc string $heredoc = <<<EOT hello world EOT; // unexpected values to be passed to $directory argument $unexpected_values = array ( // int data /*1*/ 0, 1, 12345, -2345, // float data /*5*/ 10.5, -10.5, 12.3456789000e10, 12.3456789000E-10, .5, // array data /*10*/ array(), array(0), array(1), array(1, 2), array('color' => 'red', 'item' => 'pen'), // null data /*15*/ NULL, null, // boolean data /*17*/ true, false, TRUE, FALSE, // empty data /*21*/ "", '', // string data /*23*/ "string", 'string', $heredoc, // object data /*26*/ new classA(), // undefined data /*27*/ @$undefined_var, // unset data /*28*/ @$unset_var ); // loop through various elements of $unexpected_values to check the behavior of dir() $iterator = 1; foreach( $unexpected_values as $unexpected_value ) { echo "\n-- Iteration $iterator --"; var_dump( dir($directory, $unexpected_value) ); $iterator++; } echo "Done"; ?> --CLEAN-- <?php $file_path = dirname(__FILE__); $directory = $file_path."/dir_variation2"; rmdir($directory); ?> --EXPECTF-- *** Testing dir() : unexpected values for $context argument *** -- Iteration 1 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 2 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 3 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 4 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 5 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 6 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 7 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 8 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 9 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 10 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 11 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 12 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 13 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 14 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 15 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL -- Iteration 16 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL -- Iteration 17 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 18 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 19 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 20 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 21 -- Warning: dir() expects parameter 2 to be resource, string given in %s on line %d NULL -- Iteration 22 -- Warning: dir() expects parameter 2 to be resource, string given in %s on line %d NULL -- Iteration 23 -- Warning: dir() expects parameter 2 to be resource, string given in %s on line %d NULL -- Iteration 24 -- Warning: dir() expects parameter 2 to be resource, string given in %s on line %d NULL -- Iteration 25 -- Warning: dir() expects parameter 2 to be resource, string given in %s on line %d NULL -- Iteration 26 -- Warning: dir() expects parameter 2 to be resource, object given in %s on line %d NULL -- Iteration 27 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL -- Iteration 28 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL Done --UEXPECTF-- *** Testing dir() : unexpected values for $context argument *** -- Iteration 1 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 2 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 3 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 4 -- Warning: dir() expects parameter 2 to be resource, integer given in %s on line %d NULL -- Iteration 5 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 6 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 7 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 8 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 9 -- Warning: dir() expects parameter 2 to be resource, double given in %s on line %d NULL -- Iteration 10 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 11 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 12 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 13 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 14 -- Warning: dir() expects parameter 2 to be resource, array given in %s on line %d NULL -- Iteration 15 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL -- Iteration 16 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL -- Iteration 17 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 18 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 19 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 20 -- Warning: dir() expects parameter 2 to be resource, boolean given in %s on line %d NULL -- Iteration 21 -- Warning: dir() expects parameter 2 to be resource, Unicode string given in %s on line %d NULL -- Iteration 22 -- Warning: dir() expects parameter 2 to be resource, Unicode string given in %s on line %d NULL -- Iteration 23 -- Warning: dir() expects parameter 2 to be resource, Unicode string given in %s on line %d NULL -- Iteration 24 -- Warning: dir() expects parameter 2 to be resource, Unicode string given in %s on line %d NULL -- Iteration 25 -- Warning: dir() expects parameter 2 to be resource, Unicode string given in %s on line %d NULL -- Iteration 26 -- Warning: dir() expects parameter 2 to be resource, object given in %s on line %d NULL -- Iteration 27 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL -- Iteration 28 -- Warning: dir() expects parameter 2 to be resource, null given in %s on line %d NULL Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation3.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation3.phpt +++ php-src/ext/standard/tests/dir/dir_variation3.phpt --TEST-- Test dir() function : usage variations - different directory permissions --SKIPIF-- <?php if( substr(PHP_OS, 0, 3) == 'WIN') { die('skip Not for Windows'); } ?> --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * Providing various permissions to the directory to be opened and checking * to see if dir() function opens the directory successfully. */ echo "*** Testing dir() : different directory permissions ***"; // create the temporary directory $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation3"; @mkdir($dir_path); /* different values for directory permissions */ $permission_values = array( /*1*/ 0477, // owner has read only, other and group has rwx 0677, // owner has rw only, other and group has rwx /*3*/ 0444, // all have read only 0666, // all have rw only /*5*/ 0400, // owner has read only, group and others have no permission 0600, // owner has rw only, group and others have no permission /*7*/ 0470, // owner has read only, group has rwx & others have no permission 0407, // owner has read only, other has rwx & group has no permission /*9*/ 0670, // owner has rw only, group has rwx & others have no permission /*10*/ 0607 // owner has rw only, group has no permission and others have rwx ); // Open directory with different permission values, read and close, expected: none of them to succeed. for($count = 0; $count < count($permission_values); $count++) { echo "\n-- Iteration ".($count + 1)." --\n"; // try to remove the dir if exists & create $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation3"; @chmod ($dir_path, 0777); // change dir permission to allow all operation @rmdir ($dir_path); // try n delete the dir // create the dir now @mkdir($dir_path); // change the dir permisson to test dir on it var_dump( chmod($dir_path, $permission_values[$count]) ); // try to get dir handle $d = dir($dir_path); var_dump($d); // dump the handle // try read directory, expected : false echo "-- reading contents --\n"; var_dump($d->read()); // close directory $d->close(); } echo "Done"; ?> --CLEAN-- <?php // deleting temporary directory $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation3"; rmdir($dir_path); ?> --EXPECTF-- *** Testing dir() : different directory permissions *** -- Iteration 1 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 2 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 3 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 4 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 5 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 6 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 7 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 8 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 9 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" -- Iteration 10 -- bool(true) object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation3" ["handle"]=> resource(%d) of type (stream) } -- reading contents -- string(%d) "%s" Done --UEXPECTF-- *** Testing dir() : different directory permissions *** -- Iteration 1 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 2 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 3 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 4 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 5 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 6 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 7 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 8 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 9 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" -- Iteration 10 -- bool(true) object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation3" [u"handle"]=> resource(%d) of type (stream) } -- reading contents -- unicode(%d) "%s" Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation4.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation4.phpt +++ php-src/ext/standard/tests/dir/dir_variation4.phpt --TEST-- Test dir() function : usage variations - operate on previously opened directory --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * Testing the behavior of dir() function by trying to open a * directory which is already open. */ echo "*** Testing dir() : operate on previously opened directory ***\n"; // include the file.inc for Function: function create_files() include( dirname(__FILE__)."/../file/file.inc"); // create the temporary directory $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation4"; @mkdir($dir_path); // create files within the temporary directory create_files($dir_path, 3, "alphanumeric", 0755, 1, "w", "dir_variation4"); // open the directory $d = dir($dir_path); var_dump( $d ); // open the same directory again without closing it $e = dir($dir_path); var_dump( $e ); echo "-- reading directory contents with previous handle --\n"; var_dump( $d->read() ); // with previous handle echo "-- reading directory contents with current handle --\n"; var_dump( $e->read() ); // with current handle // delete temporary files delete_files($dir_path, 3, "dir_variation4"); echo "Done"; ?> --CLEAN-- <?php $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation4"; rmdir($dir_path); ?> --EXPECTF-- *** Testing dir() : operate on previously opened directory *** object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation4" ["handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation4" ["handle"]=> resource(%d) of type (stream) } -- reading directory contents with previous handle -- string(%d) "%s" -- reading directory contents with current handle -- string(%d) "%s" Done --UEXPECTF-- *** Testing dir() : operate on previously opened directory *** object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation4" [u"handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation4" [u"handle"]=> resource(%d) of type (stream) } -- reading directory contents with previous handle -- unicode(%d) "%s" -- reading directory contents with current handle -- unicode(%d) "%s" Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation5.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation5.phpt +++ php-src/ext/standard/tests/dir/dir_variation5.phpt --TEST-- Test dir() function : usage variations - open a file instead of directory --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * Passing a file as argument to dir() function instead of a directory * and checking if proper warning message is generated. */ echo "*** Testing dir() : open a file instead of a directory ***\n"; // open the file instead of directory $d = dir(__FILE__); var_dump( $d ); echo "Done"; ?> --EXPECTF-- *** Testing dir() : open a file instead of a directory *** Warning: dir(%s): failed to open dir: %s in %s on line %d bool(false) Done --UEXPECTF-- *** Testing dir() : open a file instead of a directory *** Warning: dir(%s): failed to open dir: %s in %s on line %d bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_basic.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_basic.phpt +++ php-src/ext/standard/tests/dir/dir_basic.phpt --TEST-- Test dir() function : basic functionality --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ echo "*** Testing dir() : basic functionality ***\n"; // include the file.inc for Function: function create_files() include(dirname(__FILE__)."/../file/file.inc"); // create the temporary directory $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_basic"; @mkdir($dir_path); // create files within the temporary directory create_files($dir_path, 3, "alphanumeric", 0755, 1, "w", "dir_basic"); echo "Get Directory instance:\n"; $d = dir($dir_path); var_dump( $d ); echo "\nRead and rewind:\n"; var_dump( $d->read() ); var_dump( $d->read() ); var_dump( $d->rewind() ); echo "\nTest using handle directly:\n"; var_dump( readdir($d->handle) ); var_dump( readdir($d->handle) ); echo "\nClose directory:\n"; var_dump( $d->close() ); var_dump( $d ); echo "\nTest read after closing the dir:"; var_dump( $d->read() ); // delete temp files delete_files($dir_path, 3, "dir_basic", 1, ".tmp"); echo "Done"; ?> --CLEAN-- <?php $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_basic"; rmdir($dir_path); ?> --EXPECTF-- *** Testing dir() : basic functionality *** Get Directory instance: object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_basic" ["handle"]=> resource(%d) of type (stream) } Read and rewind: string(%d) "%s" string(%d) "%s" NULL Test using handle directly: string(%d) "%s" string(%d) "%s" Close directory: NULL object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_basic" ["handle"]=> resource(%d) of type (Unknown) } Test read after closing the dir: Warning: Directory::read(): %d is not a valid Directory resource in %s on line %d bool(false) Done --UEXPECTF-- *** Testing dir() : basic functionality *** Get Directory instance: object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_basic" [u"handle"]=> resource(%d) of type (stream) } Read and rewind: unicode(%d) "%s" unicode(%d) "%s" NULL Test using handle directly: unicode(%d) "%s" unicode(%d) "%s" Close directory: NULL object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_basic" [u"handle"]=> resource(%d) of type (Unknown) } Test read after closing the dir: Warning: Directory::read(): %d is not a valid Directory resource in %s on line %d bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation6.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation6.phpt +++ php-src/ext/standard/tests/dir/dir_variation6.phpt --TEST-- Test dir() function : usage variations - non-existent directory --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * Passing a non-existent directory as argument to dir() function * and checking to see if proper warning message is output. */ echo "*** Testing dir() : open a non-existent directory ***\n"; // create the temporary directory $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation6"; @mkdir($dir_path); // open existent directory $d = dir($dir_path); $d->close(); //close the dir // remove directory and try to open the same(non-existent) directory again rmdir($dir_path); clearstatcache(); echo "-- opening previously removed directory --\n"; var_dump( dir($dir_path) ); // point to a non-existent directory $non_existent_dir = $file_path."/non_existent_dir"; echo "-- opening non-existent directory --\n"; $d = dir($non_existent_dir); var_dump( $d ); echo "Done"; ?> --EXPECTF-- *** Testing dir() : open a non-existent directory *** -- opening previously removed directory -- Warning: dir(%s): failed to open dir: %s in %s on line %d bool(false) -- opening non-existent directory -- Warning: dir(%s): failed to open dir: %s in %s on line %d bool(false) Done --UEXPECTF-- *** Testing dir() : open a non-existent directory *** -- opening previously removed directory -- Warning: dir(%s): failed to open dir: %s in %s on line %d bool(false) -- opening non-existent directory -- Warning: dir(%s): failed to open dir: %s in %s on line %d bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation7.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation7.phpt +++ php-src/ext/standard/tests/dir/dir_variation7.phpt --TEST-- Test dir() function : usage variations - directories with restricted permissions --SKIPIF-- <?php if( substr(PHP_OS, 0, 3) == 'WIN') { die('skip Not for Windows'); } ?> --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * remove the execute permission from the parent dir and test dir() on child dir * 1) remove write & execute permission from the 1st parent and test dir() * 2) remove execute permission from 2nd parent and test dir() */ echo "*** Testing dir() : remove execute permission from the parent dir ***\n"; /* create the temporary directory : dir_variation7 ( parent ) |-> sub_dir ( sub parent ) |-> child_dir ( child dir) */ $file_path = dirname(__FILE__); $parent_dir_path = $file_path."/dir_variation7"; @mkdir($parent_dir_path); chmod($parent_dir_path, 0777); // create sub_dir $sub_dir_path = $parent_dir_path."/sub_dir"; @mkdir($sub_dir_path); chmod($sub_dir_path, 0777); //create sub_sub_dir $child_dir_path = $sub_dir_path."/child_dir"; @mkdir($child_dir_path); // remove the write and execute permisson from sub parent chmod($sub_dir_path, 0444); echo "-- After restricting 1st level parent directory --\n"; $d = dir($child_dir_path); // try to open, expected failure var_dump( $d ); // dump it // remove the execute permisson from parent dir, allowing all permission for sub dir chmod($sub_dir_path, 0777); // all permisson to sub dir chmod($parent_dir_path, 0666); // restricting parent directory echo "-- After restricting parent directory --\n"; $d = dir($child_dir_path); // try to open, expected failure var_dump( $d ); // dump it echo "Done"; ?> --CLEAN-- <?php $file_path = dirname(__FILE__); $parent_dir_path = $file_path."/dir_variation7"; $sub_dir_path = $parent_dir_path."/sub_dir"; $child_dir_path = $sub_dir_path."/child_dir"; // changing permissions for each temporary directory to delete them chmod($parent_dir_path, 0777); chmod($sub_dir_path, 0777); chmod($child_dir_path, 0777); rmdir($child_dir_path); rmdir($sub_dir_path); rmdir($parent_dir_path); ?> --EXPECTF-- *** Testing dir() : remove execute permission from the parent dir *** -- After restricting 1st level parent directory -- Warning: dir(%s/dir_variation7/sub_dir/child_dir): failed to open dir: Permission denied in %s on line %d bool(false) -- After restricting parent directory -- Warning: dir(%s/dir_variation7/sub_dir/child_dir): failed to open dir: Permission denied in %s on line %d bool(false) Done --UEXPECTF-- *** Testing dir() : remove execute permission from the parent dir *** -- After restricting 1st level parent directory -- Warning: dir(%s/dir_variation7/sub_dir/child_dir): failed to open dir: Permission denied in %s on line %d bool(false) -- After restricting parent directory -- Warning: dir(%s/dir_variation7/sub_dir/child_dir): failed to open dir: Permission denied in %s on line %d bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation8.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation8.phpt +++ php-src/ext/standard/tests/dir/dir_variation8.phpt --TEST-- Test dir() function : usage variations - checking with wildcard characters --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * Create more than one temporary directory & subdirectory and check if dir() function can open * those directories when wildcard characters are used to refer to them. */ echo "*** Testing dir() : checking with wildcard characters ***\n"; // create the temporary directories $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation81"; $sub_dir_path = $dir_path."/sub_dir1"; @mkdir($dir_path1); @mkdir($sub_dir_path); /* with different wildcard characters */ echo "-- wildcard = '*' --\n"; var_dump( dir($file_path."/dir_var*") ); var_dump( dir($file_path."/*") ); echo "-- wildcard = '?' --\n"; var_dump( dir($dir_path."/sub_dir?") ); var_dump( dir($dir_path."/sub?dir1") ); echo "Done"; ?> --CLEAN-- <?php $file_path = dirname(__FILE__); $dir_path = $file_path."/dir_variation81"; $sub_dir_path = $dir_path."/sub_dir1"; rmdir($dir_path1); rmdir($dir_path2); ?> --EXPECTF-- *** Testing dir() : checking with wildcard characters *** -- wildcard = '*' -- Warning: dir(%s/dir_var*): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/*): failed to open dir: %s in %s on line %d bool(false) -- wildcard = '?' -- Warning: dir(%s/dir_variation81/sub_dir?): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation81/sub?dir1): failed to open dir: %s in %s on line %d bool(false) Done --UEXPECTF-- *** Testing dir() : checking with wildcard characters *** -- wildcard = '*' -- Warning: dir(%s/dir_var*): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/*): failed to open dir: %s in %s on line %d bool(false) -- wildcard = '?' -- Warning: dir(%s/dir_variation81/sub_dir?): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation81/sub?dir1): failed to open dir: %s in %s on line %d bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_variation9.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_variation9.phpt +++ php-src/ext/standard/tests/dir/dir_variation9.phpt --TEST-- Test dir() function : usage variations - relative valid and invalid paths --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ /* * Checking the behavior of dir() function by passing directories which * have valid and invalid relative path. */ echo "*** Testing dir() : checking with valid and invalid paths ***\n"; /* create the temporary directories */ $file_path = dirname(__FILE__); // directory dir_variation91 with one sub-directory sub_dir11 and sub-sub-directory sub_dir111 $dir_path1 = $file_path."/dir_variation91"; $sub_dir11 = $dir_path1."/sub_dir11"; $sub_dir111 = $sub_dir11."/sub_dir111"; // directory dir_variation92 with one sub-directory sub_dir21 $dir_path2 = $file_path."/dir_variation92"; $sub_dir21 = $dir_path2."/sub_dir21"; @mkdir($dir_path1); @mkdir($dir_path2); @mkdir($sub_dir11); @mkdir($sub_dir111); @mkdir($sub_dir21); // open the directory with valid paths echo "\n-- With valid paths --\n"; var_dump( dir("$dir_path1/sub_dir11/sub_dir111/..") ); var_dump( dir("$dir_path2/sub_dir21/../../dir_variation91") ); var_dump( dir("$dir_path2/sub_dir21/../../dir_variation91/sub_dir11/..") ); var_dump( dir("$dir_path1/sub_dir11/sub_dir111/../../../dir_variation92/sub_dir21/..") ); // open the directory with invalid path echo "\n-- With invalid paths --\n"; var_dump( dir("$dir_path1/sub_dir12/sub_dir111/..") ); var_dump( dir("$dir_path2/sub_dir21/../dir_variation91") ); var_dump( dir("$dir_path2/sub_dir21/../../dir_variation91/sub_dir12/..") ); var_dump( dir("$dir_path1/sub_dir11/sub_dir111/../../dir_variation92/sub_dir21/..") ); echo "Done"; ?> --CLEAN-- <?php $file_path = dirname(__FILE__); $dir_path1 = $file_path."/dir_variation91"; $sub_dir11 = $dir_path1."/sub_dir11"; $sub_dir111 = $sub_dir11."/sub_dir111"; $dir_path2 = $file_path."/dir_variation92"; $sub_dir21 = $dir_path2."/sub_dir21"; rmdir($sub_dir21); rmdir($sub_dir111); rmdir($sub_dir11); rmdir($dir_path1); rmdir($dir_path2); ?> --EXPECTF-- *** Testing dir() : checking with valid and invalid paths *** -- With valid paths -- object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation91/sub_dir11/sub_dir111/.." ["handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation92/sub_dir21/../../dir_variation91" ["handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation92/sub_dir21/../../dir_variation91/sub_dir11/.." ["handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { ["path"]=> string(%d) "%s/dir_variation91/sub_dir11/sub_dir111/../../../dir_variation92/sub_dir21/.." ["handle"]=> resource(%d) of type (stream) } -- With invalid paths -- Warning: dir(%s/dir_variation91/sub_dir12/sub_dir111/..): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation92/sub_dir21/../dir_variation91): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation92/sub_dir21/../../dir_variation91/sub_dir12/..): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation91/sub_dir11/sub_dir111/../../dir_variation92/sub_dir21/..): failed to open dir: %s in %s on line %d bool(false) Done --UEXPECTF-- *** Testing dir() : checking with valid and invalid paths *** -- With valid paths -- object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation91/sub_dir11/sub_dir111/.." [u"handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation92/sub_dir21/../../dir_variation91" [u"handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation92/sub_dir21/../../dir_variation91/sub_dir11/.." [u"handle"]=> resource(%d) of type (stream) } object(Directory)#%d (2) { [u"path"]=> unicode(%d) "%s/dir_variation91/sub_dir11/sub_dir111/../../../dir_variation92/sub_dir21/.." [u"handle"]=> resource(%d) of type (stream) } -- With invalid paths -- Warning: dir(%s/dir_variation91/sub_dir12/sub_dir111/..): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation92/sub_dir21/../dir_variation91): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation92/sub_dir21/../../dir_variation91/sub_dir12/..): failed to open dir: %s in %s on line %d bool(false) Warning: dir(%s/dir_variation91/sub_dir11/sub_dir111/../../dir_variation92/sub_dir21/..): failed to open dir: %s in %s on line %d bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/dir/dir_error.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/dir/dir_error.phpt +++ php-src/ext/standard/tests/dir/dir_error.phpt --TEST-- Test dir() function : error conditions --FILE-- <?php /* * Prototype : object dir(string $directory[, resource $context]) * Description: Directory class with properties, handle and class and methods read, rewind and close * Source code: ext/standard/dir.c */ echo "*** Testing dir() : error conditions ***\n"; // Zero arguments echo "\n-- Testing dir() function with zero arguments --"; var_dump( dir() ); // With one more than expected number of arguments echo "\n-- Testing dir() function with one more than expected number of arguments --"; $extra_arg = 10; var_dump( dir(getcwd(), "stream", $extra_arg) ); echo "Done"; ?> --EXPECTF-- *** Testing dir() : error conditions *** -- Testing dir() function with zero arguments -- Warning: dir() expects at least 1 parameter, 0 given in %s on line %d NULL -- Testing dir() function with one more than expected number of arguments -- Warning: dir() expects at most 2 parameters, 3 given in %s on line %d NULL Done --UEXPECTF-- *** Testing dir() : error conditions *** -- Testing dir() function with zero arguments -- Warning: dir() expects at least 1 parameter, 0 given in %s on line %d NULL -- Testing dir() function with one more than expected number of arguments -- Warning: dir() expects at most 2 parameters, 3 given in %s on line %d NULL Done
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php