1--TEST--
2Test scandir() function : usage variations - different sorting constants
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
16printf("SCANDIR_SORT_ASCENDING: %d\n", SCANDIR_SORT_ASCENDING);
17printf("SCANDIR_SORT_DESCENDING: %d\n", SCANDIR_SORT_DESCENDING);
18printf("SCANDIR_SORT_NONE: %d\n", SCANDIR_SORT_NONE);
19
20/*
21 * Pass different integers as $sorting_order argument to test how scandir()
22 * re-orders the array
23 */
24
25echo "*** Testing scandir() : usage variations ***\n";
26
27// include for create_files/delete_files functions
28include(__DIR__ . '/../file/file.inc');
29
30// create directory and files
31$dir = __DIR__ . '/私はガラスを食べられますscandir_variation10';
32mkdir($dir);
33@create_files($dir, 2, "numeric", 0755, 1, "w", "私はガラスを食べられますfile");
34
35// Deterministic tests.
36var_dump(scandir($dir, SCANDIR_SORT_ASCENDING));
37var_dump(scandir($dir, SCANDIR_SORT_DESCENDING));
38
39// Non-deterministic tests.
40$files = scandir($dir, SCANDIR_SORT_NONE);
41var_dump(count($files));
42var_dump(in_array('.', $files));
43var_dump(in_array('..', $files));
44var_dump(in_array('私はガラスを食べられますfile1.tmp', $files));
45var_dump(in_array('私はガラスを食べられますfile2.tmp', $files));
46
47delete_files($dir, 2, "私はガラスを食べられますfile");
48?>
49===DONE===
50--CLEAN--
51<?php
52$dir = __DIR__ . '/私はガラスを食べられますscandir_variation10';
53rmdir($dir);
54?>
55--EXPECT--
56SCANDIR_SORT_ASCENDING: 0
57SCANDIR_SORT_DESCENDING: 1
58SCANDIR_SORT_NONE: 2
59*** Testing scandir() : usage variations ***
60array(4) {
61  [0]=>
62  string(1) "."
63  [1]=>
64  string(2) ".."
65  [2]=>
66  string(45) "私はガラスを食べられますfile1.tmp"
67  [3]=>
68  string(45) "私はガラスを食べられますfile2.tmp"
69}
70array(4) {
71  [0]=>
72  string(45) "私はガラスを食べられますfile2.tmp"
73  [1]=>
74  string(45) "私はガラスを食べられますfile1.tmp"
75  [2]=>
76  string(2) ".."
77  [3]=>
78  string(1) "."
79}
80int(4)
81bool(true)
82bool(true)
83bool(true)
84bool(true)
85===DONE===
86