~ubuntu-branches/ubuntu/quantal/php5/quantal

« back to all changes in this revision

Viewing changes to ext/standard/tests/dir/opendir_variation7.phpt

  • Committer: Bazaar Package Importer
  • Author(s): Sean Finney
  • Date: 2009-07-01 09:12:10 UTC
  • mto: (0.9.1) (1.1.17 upstream)
  • mto: This revision was merged to the branch mainline in revision 58.
  • Revision ID: james.westby@ubuntu.com-20090701091210-go0h6506p62on17r
Tags: upstream-5.3.0
ImportĀ upstreamĀ versionĀ 5.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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===