Annotation of embedaddon/php/ext/standard/tests/dir/opendir_variation7.phpt, revision 1.1.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>