Annotation of embedaddon/php/ext/standard/tests/dir/opendir_variation7.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test opendir() function : usage variations - different directory permissions
! 3: --SKIPIF--
! 4: <?php
! 5: if( substr(PHP_OS, 0, 3) == 'WIN') {
! 6: die('skip Not for Windows');
! 7: }
! 8: // Skip if being run by root (files are always readable, writeable and executable)
! 9: $filename = dirname(__FILE__) . "/opendir_root_check.tmp";
! 10: $fp = fopen($filename, 'w');
! 11: fclose($fp);
! 12: if(fileowner($filename) == 0) {
! 13: unlink ($filename);
! 14: die('skip...cannot be run as root\n');
! 15: }
! 16: unlink($filename);
! 17: ?>
! 18: --FILE--
! 19: <?php
! 20: /* Prototype : mixed opendir(string $path[, resource $context])
! 21: * Description: Open a directory and return a dir_handle
! 22: * Source code: ext/standard/dir.c
! 23: */
! 24:
! 25: /*
! 26: * Open a directory using opendir() with different directory permissions
! 27: */
! 28:
! 29: echo "*** Testing opendir() : usage variations ***\n";
! 30:
! 31: // create the temporary directory
! 32: $file_path = dirname(__FILE__);
! 33: $dir_path = $file_path . "/opendir_variation7";
! 34: mkdir($dir_path);
! 35:
! 36: /* different values for directory permissions */
! 37: $permission_values = array(
! 38: /*1*/ 0477, // owner has read only, other and group has rwx
! 39: 0677, // owner has rw only, other and group has rwx
! 40:
! 41: /*3*/ 0444, // all have read only
! 42: 0666, // all have rw only
! 43:
! 44: /*5*/ 0400, // owner has read only, group and others have no permission
! 45: 0600, // owner has rw only, group and others have no permission
! 46:
! 47: /*7*/ 0470, // owner has read only, group has rwx & others have no permission
! 48: 0407, // owner has read only, other has rwx & group has no permission
! 49:
! 50: /*9*/ 0670, // owner has rw only, group has rwx & others have no permission
! 51: /*10*/ 0607 // owner has rw only, group has no permission and others have rwx
! 52: );
! 53:
! 54: // Open directory with different permission values, read and close, expected: none of them to succeed.
! 55:
! 56: $iterator = 1;
! 57: foreach ($permission_values as $perm) {
! 58:
! 59: echo "\n-- Iteration $iterator --\n";
! 60: // try to remove the dir if exists & create
! 61: if (is_dir($dir_path)){
! 62: chmod ($dir_path, 0777); // change dir permission to allow all operation
! 63: rmdir ($dir_path);
! 64: }
! 65: mkdir($dir_path);
! 66:
! 67: // change the dir permisson to test dir on it
! 68: var_dump( chmod($dir_path, $perm) );
! 69:
! 70: var_dump($dh = opendir($dir_path));
! 71:
! 72: if (is_resource($dh)) {
! 73: closedir($dh);
! 74: }
! 75: $iterator++;
! 76: }
! 77: ?>
! 78: ===DONE===
! 79: --CLEAN--
! 80: <?php
! 81: // deleting temporary directory
! 82: $dir_path = dirname(__FILE__) . "/opendir_variation7";
! 83: rmdir($dir_path);
! 84: ?>
! 85: --EXPECTF--
! 86: *** Testing opendir() : usage variations ***
! 87:
! 88: -- Iteration 1 --
! 89: bool(true)
! 90: resource(%d) of type (stream)
! 91:
! 92: -- Iteration 2 --
! 93: bool(true)
! 94: resource(%d) of type (stream)
! 95:
! 96: -- Iteration 3 --
! 97: bool(true)
! 98: resource(%d) of type (stream)
! 99:
! 100: -- Iteration 4 --
! 101: bool(true)
! 102: resource(%d) of type (stream)
! 103:
! 104: -- Iteration 5 --
! 105: bool(true)
! 106: resource(%d) of type (stream)
! 107:
! 108: -- Iteration 6 --
! 109: bool(true)
! 110: resource(%d) of type (stream)
! 111:
! 112: -- Iteration 7 --
! 113: bool(true)
! 114: resource(%d) of type (stream)
! 115:
! 116: -- Iteration 8 --
! 117: bool(true)
! 118: resource(%d) of type (stream)
! 119:
! 120: -- Iteration 9 --
! 121: bool(true)
! 122: resource(%d) of type (stream)
! 123:
! 124: -- Iteration 10 --
! 125: bool(true)
! 126: resource(%d) of type (stream)
! 127: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>