1--TEST--
2Test scandir() function : usage variations - different relative paths
3--SKIPIF--
4<?php
5if (substr(PHP_OS, 0, 3) != 'WIN') {
6  die("skip Valid only on Windows");
7}
8?>
9--FILE--
10<?php
11/* Prototype  : array scandir(string $dir [, int $sorting_order [, resource $context]])
12 * Description: List files & directories inside the specified path
13 * Source code: ext/standard/dir.c
14 */
15
16/*
17 * Test scandir() with relative paths as $dir argument
18 */
19
20echo "*** Testing scandir() : usage variations ***\n";
21
22// include for create_files/delete_files functions
23include (dirname(__FILE__) . '/../file/file.inc');
24
25$base_dir_path = dirname(__FILE__);
26
27$level_one_dir_path = "$base_dir_path/私はガラスを食べられますlevel_one";
28$level_two_dir_path = "$level_one_dir_path/私はガラスを食べられますlevel_two";
29
30// create directories and files
31mkdir($level_one_dir_path);
32create_files($level_one_dir_path, 2, 'numeric', 0755, 1, 'w', '私はガラスを食べられますlevel_one', 1);
33mkdir($level_two_dir_path);
34create_files($level_two_dir_path, 2, 'numeric', 0755, 1, 'w', '私はガラスを食べられますlevel_two', 1);
35
36echo "\n-- \$path = './私はガラスを食べられますlevel_one': --\n";
37var_dump(chdir($base_dir_path));
38var_dump(scandir('./私はガラスを食べられますlevel_one'));
39
40echo "\n-- \$path = 'level_one/私はガラスを食べられますlevel_two': --\n";
41var_dump(chdir($base_dir_path));
42var_dump(scandir('私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two'));
43
44echo "\n-- \$path = '..': --\n";
45var_dump(chdir($level_two_dir_path));
46var_dump(scandir('..'));
47
48echo "\n-- \$path = '私はガラスを食べられますlevel_two', '.': --\n";
49var_dump(chdir($level_two_dir_path));
50var_dump(scandir('.'));
51
52echo "\n-- \$path = '../': --\n";
53var_dump(chdir($level_two_dir_path));
54var_dump(scandir('../'));
55
56echo "\n-- \$path = './': --\n";
57var_dump(chdir($level_two_dir_path));
58var_dump(scandir('./'));
59
60echo "\n-- \$path = '../../'私はガラスを食べられますlevel_one': --\n";
61var_dump(chdir($level_two_dir_path));
62var_dump(scandir('../../私はガラスを食べられますlevel_one'));
63
64@delete_files($level_one_dir_path, 2, '私はガラスを食べられますlevel_one');
65@delete_files($level_two_dir_path, 2, '私はガラスを食べられますlevel_two');
66?>
67===DONE===
68--CLEAN--
69<?php
70$dir_path = dirname(__FILE__);
71rmdir("$dir_path/私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two");
72rmdir("$dir_path/私はガラスを食べられますlevel_one");
73?>
74--EXPECTF--
75*** Testing scandir() : usage variations ***
76
77-- $path = './私はガラスを食べられますlevel_one': --
78bool(true)
79array(5) {
80  [0]=>
81  string(1) "."
82  [1]=>
83  string(2) ".."
84  [2]=>
85  string(50) "私はガラスを食べられますlevel_one1.tmp"
86  [3]=>
87  string(50) "私はガラスを食べられますlevel_one2.tmp"
88  [4]=>
89  string(45) "私はガラスを食べられますlevel_two"
90}
91
92-- $path = 'level_one/私はガラスを食べられますlevel_two': --
93bool(true)
94array(4) {
95  [0]=>
96  string(1) "."
97  [1]=>
98  string(2) ".."
99  [2]=>
100  string(50) "私はガラスを食べられますlevel_two1.tmp"
101  [3]=>
102  string(50) "私はガラスを食べられますlevel_two2.tmp"
103}
104
105-- $path = '..': --
106bool(true)
107array(5) {
108  [0]=>
109  string(1) "."
110  [1]=>
111  string(2) ".."
112  [2]=>
113  string(50) "私はガラスを食べられますlevel_one1.tmp"
114  [3]=>
115  string(50) "私はガラスを食べられますlevel_one2.tmp"
116  [4]=>
117  string(45) "私はガラスを食べられますlevel_two"
118}
119
120-- $path = '私はガラスを食べられますlevel_two', '.': --
121bool(true)
122array(4) {
123  [0]=>
124  string(1) "."
125  [1]=>
126  string(2) ".."
127  [2]=>
128  string(50) "私はガラスを食べられますlevel_two1.tmp"
129  [3]=>
130  string(50) "私はガラスを食べられますlevel_two2.tmp"
131}
132
133-- $path = '../': --
134bool(true)
135array(5) {
136  [0]=>
137  string(1) "."
138  [1]=>
139  string(2) ".."
140  [2]=>
141  string(50) "私はガラスを食べられますlevel_one1.tmp"
142  [3]=>
143  string(50) "私はガラスを食べられますlevel_one2.tmp"
144  [4]=>
145  string(45) "私はガラスを食べられますlevel_two"
146}
147
148-- $path = './': --
149bool(true)
150array(4) {
151  [0]=>
152  string(1) "."
153  [1]=>
154  string(2) ".."
155  [2]=>
156  string(50) "私はガラスを食べられますlevel_two1.tmp"
157  [3]=>
158  string(50) "私はガラスを食べられますlevel_two2.tmp"
159}
160
161-- $path = '../../'私はガラスを食べられますlevel_one': --
162bool(true)
163array(5) {
164  [0]=>
165  string(1) "."
166  [1]=>
167  string(2) ".."
168  [2]=>
169  string(50) "私はガラスを食べられますlevel_one1.tmp"
170  [3]=>
171  string(50) "私はガラスを食べられますlevel_one2.tmp"
172  [4]=>
173  string(45) "私はガラスを食べられますlevel_two"
174}
175===DONE===
176