Annotation of embedaddon/php/ext/standard/tests/dir/dir_variation3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test dir() 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__)."/dir_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: /*
21: * Prototype : object dir(string $directory[, resource $context])
22: * Description: Directory class with properties, handle and class and methods read, rewind and close
23: * Source code: ext/standard/dir.c
24: */
25:
26: /*
27: * Providing various permissions to the directory to be opened and checking
28: * to see if dir() function opens the directory successfully.
29: */
30:
31: echo "*** Testing dir() : different directory permissions ***";
32:
33: // create the temporary directory
34: $file_path = dirname(__FILE__);
35: $dir_path = $file_path."/dir_variation3";
36: @mkdir($dir_path);
37:
38: /* different values for directory permissions */
39: $permission_values = array(
40: /*1*/ 0477, // owner has read only, other and group has rwx
41: 0677, // owner has rw only, other and group has rwx
42:
43: /*3*/ 0444, // all have read only
44: 0666, // all have rw only
45:
46: /*5*/ 0400, // owner has read only, group and others have no permission
47: 0600, // owner has rw only, group and others have no permission
48:
49: /*7*/ 0470, // owner has read only, group has rwx & others have no permission
50: 0407, // owner has read only, other has rwx & group has no permission
51:
52: /*9*/ 0670, // owner has rw only, group has rwx & others have no permission
53: /*10*/ 0607 // owner has rw only, group has no permission and others have rwx
54: );
55:
56: // Open directory with different permission values, read and close, expected: none of them to succeed.
57: for($count = 0; $count < count($permission_values); $count++) {
58: echo "\n-- Iteration ".($count + 1)." --\n";
59:
60: // try to remove the dir if exists & create
61: $file_path = dirname(__FILE__);
62: $dir_path = $file_path."/dir_variation3";
63: @chmod ($dir_path, 0777); // change dir permission to allow all operation
64: @rmdir ($dir_path); // try n delete the dir
65:
66: // create the dir now
67: @mkdir($dir_path);
68:
69: // change the dir permisson to test dir on it
70: var_dump( chmod($dir_path, $permission_values[$count]) );
71:
72: // try to get dir handle
73: $d = dir($dir_path);
74: var_dump($d); // dump the handle
75:
76: // try read directory, expected : false
77: echo "-- reading contents --\n";
78: var_dump($d->read());
79:
80: // close directory
81: $d->close();
82: }
83:
84: echo "Done";
85: ?>
86: --CLEAN--
87: <?php
88: // deleting temporary directory
89: $file_path = dirname(__FILE__);
90: $dir_path = $file_path."/dir_variation3";
91: rmdir($dir_path);
92: ?>
93: --EXPECTF--
94: *** Testing dir() : different directory permissions ***
95: -- Iteration 1 --
96: bool(true)
97: object(Directory)#%d (2) {
98: ["path"]=>
99: string(%d) "%s/dir_variation3"
100: ["handle"]=>
101: resource(%d) of type (stream)
102: }
103: -- reading contents --
104: string(%d) "%s"
105:
106: -- Iteration 2 --
107: bool(true)
108: object(Directory)#%d (2) {
109: ["path"]=>
110: string(%d) "%s/dir_variation3"
111: ["handle"]=>
112: resource(%d) of type (stream)
113: }
114: -- reading contents --
115: string(%d) "%s"
116:
117: -- Iteration 3 --
118: bool(true)
119: object(Directory)#%d (2) {
120: ["path"]=>
121: string(%d) "%s/dir_variation3"
122: ["handle"]=>
123: resource(%d) of type (stream)
124: }
125: -- reading contents --
126: string(%d) "%s"
127:
128: -- Iteration 4 --
129: bool(true)
130: object(Directory)#%d (2) {
131: ["path"]=>
132: string(%d) "%s/dir_variation3"
133: ["handle"]=>
134: resource(%d) of type (stream)
135: }
136: -- reading contents --
137: string(%d) "%s"
138:
139: -- Iteration 5 --
140: bool(true)
141: object(Directory)#%d (2) {
142: ["path"]=>
143: string(%d) "%s/dir_variation3"
144: ["handle"]=>
145: resource(%d) of type (stream)
146: }
147: -- reading contents --
148: string(%d) "%s"
149:
150: -- Iteration 6 --
151: bool(true)
152: object(Directory)#%d (2) {
153: ["path"]=>
154: string(%d) "%s/dir_variation3"
155: ["handle"]=>
156: resource(%d) of type (stream)
157: }
158: -- reading contents --
159: string(%d) "%s"
160:
161: -- Iteration 7 --
162: bool(true)
163: object(Directory)#%d (2) {
164: ["path"]=>
165: string(%d) "%s/dir_variation3"
166: ["handle"]=>
167: resource(%d) of type (stream)
168: }
169: -- reading contents --
170: string(%d) "%s"
171:
172: -- Iteration 8 --
173: bool(true)
174: object(Directory)#%d (2) {
175: ["path"]=>
176: string(%d) "%s/dir_variation3"
177: ["handle"]=>
178: resource(%d) of type (stream)
179: }
180: -- reading contents --
181: string(%d) "%s"
182:
183: -- Iteration 9 --
184: bool(true)
185: object(Directory)#%d (2) {
186: ["path"]=>
187: string(%d) "%s/dir_variation3"
188: ["handle"]=>
189: resource(%d) of type (stream)
190: }
191: -- reading contents --
192: string(%d) "%s"
193:
194: -- Iteration 10 --
195: bool(true)
196: object(Directory)#%d (2) {
197: ["path"]=>
198: string(%d) "%s/dir_variation3"
199: ["handle"]=>
200: resource(%d) of type (stream)
201: }
202: -- reading contents --
203: string(%d) "%s"
204: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>