Return to dir_variation7.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / dir |
1.1 misho 1: --TEST-- 2: Test dir() function : usage variations - directories with restricted 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: * remove the execute permission from the parent dir and test dir() on child dir 28: * 1) remove write & execute permission from the 1st parent and test dir() 29: * 2) remove execute permission from 2nd parent and test dir() 30: */ 31: 32: echo "*** Testing dir() : remove execute permission from the parent dir ***\n"; 33: 34: /* create the temporary directory : 35: dir_variation7 ( parent ) 36: |-> sub_dir ( sub parent ) 37: |-> child_dir ( child dir) 38: */ 39: $file_path = dirname(__FILE__); 40: $parent_dir_path = $file_path."/dir_variation7"; 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: echo "-- After restricting 1st level parent directory --\n"; 56: $d = dir($child_dir_path); // try to open, expected failure 57: var_dump( $d ); // dump it 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: echo "-- After restricting parent directory --\n"; 63: $d = dir($child_dir_path); // try to open, expected failure 64: var_dump( $d ); // dump it 65: 66: echo "Done"; 67: ?> 68: --CLEAN-- 69: <?php 70: $file_path = dirname(__FILE__); 71: $parent_dir_path = $file_path."/dir_variation7"; 72: $sub_dir_path = $parent_dir_path."/sub_dir"; 73: $child_dir_path = $sub_dir_path."/child_dir"; 74: 75: // changing permissions for each temporary directory to delete them 76: chmod($parent_dir_path, 0777); 77: chmod($sub_dir_path, 0777); 78: chmod($child_dir_path, 0777); 79: 80: rmdir($child_dir_path); 81: rmdir($sub_dir_path); 82: rmdir($parent_dir_path); 83: ?> 84: --EXPECTF-- 85: *** Testing dir() : remove execute permission from the parent dir *** 86: -- After restricting 1st level parent directory -- 87: 88: Warning: dir(%s/dir_variation7/sub_dir/child_dir): failed to open dir: %s in %s on line %d 89: bool(false) 90: -- After restricting parent directory -- 91: 92: Warning: dir(%s/dir_variation7/sub_dir/child_dir): failed to open dir: %s in %s on line %d 93: bool(false) 94: Done