Annotation of embedaddon/php/ext/standard/tests/dir/scandir_variation5.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test scandir() 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: /* Prototype : array scandir(string $dir [, int $sorting_order [, resource $context]])
21: * Description: List files & directories inside the specified path
22: * Source code: ext/standard/dir.c
23: */
24:
25: /*
26: * remove the execute permission from the parent dir and test scandir() on child dir
27: * 1. remove write & execute permission from the 1st parent and test scandir()
28: * 2. remove execute permission from 2nd parent and test scandir()
29: */
30:
31: echo "*** Testing scandir() : usage variations ***\n";
32:
33: /*
34: * create the temporary directory :
35: * scandir_variation5 ( parent )
36: * |-> sub_dir ( sub parent )
37: * |-> child_dir ( child dir)
38: */
39:
40: $parent_dir_path = dirname(__FILE__) . "/scandir_variation5";
41: mkdir($parent_dir_path);
42: chmod($parent_dir_path, 0777);
43:
44: // create sub_dir
45: $sub_dir_path = $parent_dir_path . "/sub_dir";
46: mkdir($sub_dir_path);
47: chmod($sub_dir_path, 0777);
48:
49: //create sub_sub_dir
50: $child_dir_path = $sub_dir_path."/child_dir";
51: mkdir($child_dir_path);
52:
53: // remove the write and execute permisson from sub parent
54: chmod($sub_dir_path, 0444);
55:
56: echo "\n-- After restricting 1st level parent directory --\n";
57: var_dump(scandir($child_dir_path));
58:
59: // remove the execute permisson from parent dir, allowing all permission for sub dir
60: chmod($sub_dir_path, 0777); // all permisson to sub dir
61: chmod($parent_dir_path, 0666); // restricting parent directory
62:
63: echo "\n-- After restricting parent directory --\n";
64: var_dump(scandir($child_dir_path));
65: ?>
66: ===DONE===
67: --CLEAN--
68: <?php
69: $parent_dir_path = dirname(__FILE__) . "/scandir_variation5";
70: $sub_dir_path = $parent_dir_path."/sub_dir";
71: $child_dir_path = $sub_dir_path."/child_dir";
72:
73: // changing permissions for each temporary directory to delete them
74: chmod($parent_dir_path, 0777);
75: chmod($sub_dir_path, 0777);
76: chmod($child_dir_path, 0777);
77:
78: rmdir($child_dir_path);
79: rmdir($sub_dir_path);
80: rmdir($parent_dir_path);
81: ?>
82: --EXPECTF--
83: *** Testing scandir() : usage variations ***
84:
85: -- After restricting 1st level parent directory --
86:
87: Warning: scandir(%s/scandir_variation5/sub_dir/child_dir): failed to open dir: %s in %s on line %d
88:
89: Warning: scandir(): (errno %d): %s in %s on line %d
90: bool(false)
91:
92: -- After restricting parent directory --
93:
94: Warning: scandir(%s/scandir_variation5/sub_dir/child_dir): failed to open dir: %s in %s on line %d
95:
96: Warning: scandir(): (errno %d): %s in %s on line %d
97: bool(false)
98: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>