mirror of
https://github.com/php/php-src.git
synced 2026-04-16 20:41:18 +02:00
These were invented primarily to test the multibyte path handling patch on Windows. How it turns out by PR #2105, some test issues on some filesystems are possible. Particularly HFS is configurable to use different ways to save filenames, see https://developer.apple.com/library/mac/qa/qa1173/_index.html This makes it impossible to test the filenames byte wise, while the results are still correct. There are still several other tests using UTF-8 file names spread over other extensions. So far no false positives are to see, they don't need to be touched.
93 lines
2.2 KiB
PHP
93 lines
2.2 KiB
PHP
--TEST--
|
|
Test dir() function : basic functionality
|
|
--SKIPIF--
|
|
<?php
|
|
if (substr(PHP_OS, 0, 3) != 'WIN') {
|
|
die("skip Valid only on Windows");
|
|
}
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
/*
|
|
* Prototype : object dir(string $directory[, resource $context])
|
|
* Description: Directory class with properties, handle and class and methods read, rewind and close
|
|
* Source code: ext/standard/dir.c
|
|
*/
|
|
|
|
echo "*** Testing dir() : basic functionality ***\n";
|
|
|
|
// include the file.inc for Function: function create_files()
|
|
include(dirname(__FILE__)."/../file/file.inc");
|
|
|
|
// create the temporary directory
|
|
$file_path = dirname(__FILE__);
|
|
$dir_path = $file_path."/私はガラスを食べられますdir_basic";
|
|
@mkdir($dir_path);
|
|
|
|
// create files within the temporary directory
|
|
create_files($dir_path, 3, "alphanumeric", 0755, 1, "w", "私はガラスを食べられますdir_basic");
|
|
|
|
echo "Get Directory instance:\n";
|
|
$d = dir($dir_path);
|
|
var_dump( $d );
|
|
|
|
echo "\nRead and rewind:\n";
|
|
var_dump( $d->read() );
|
|
var_dump( $d->read() );
|
|
var_dump( $d->rewind() );
|
|
|
|
echo "\nTest using handle directly:\n";
|
|
var_dump( readdir($d->handle) );
|
|
var_dump( readdir($d->handle) );
|
|
|
|
echo "\nClose directory:\n";
|
|
var_dump( $d->close() );
|
|
var_dump( $d );
|
|
|
|
echo "\nTest read after closing the dir:";
|
|
var_dump( $d->read() );
|
|
|
|
// delete temp files
|
|
delete_files($dir_path, 3, "私はガラスを食べられますdir_basic", 1, ".tmp");
|
|
echo "Done";
|
|
?>
|
|
--CLEAN--
|
|
<?php
|
|
$file_path = dirname(__FILE__);
|
|
$dir_path = $file_path."/私はガラスを食べられますdir_basic";
|
|
|
|
rmdir($dir_path);
|
|
?>
|
|
--EXPECTF--
|
|
*** Testing dir() : basic functionality ***
|
|
Get Directory instance:
|
|
object(Directory)#%d (2) {
|
|
["path"]=>
|
|
string(%d) "%s/私はガラスを食べられますdir_basic"
|
|
["handle"]=>
|
|
resource(%d) of type (stream)
|
|
}
|
|
|
|
Read and rewind:
|
|
string(%d) "%s"
|
|
string(%d) "%s"
|
|
NULL
|
|
|
|
Test using handle directly:
|
|
string(%d) "%s"
|
|
string(%d) "%s"
|
|
|
|
Close directory:
|
|
NULL
|
|
object(Directory)#%d (2) {
|
|
["path"]=>
|
|
string(%d) "%s私はガラスを食べられますdir_basic"
|
|
["handle"]=>
|
|
resource(%d) of type (Unknown)
|
|
}
|
|
|
|
Test read after closing the dir:
|
|
Warning: Directory::read(): %s is not a valid Directory resource in %s on line %d
|
|
bool(false)
|
|
Done
|