Annotation of embedaddon/php/ext/standard/tests/dir/dir_variation7.phpt, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>