mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Test additional wrapper methods [unlink, rename, mkdir, rmdir, url_stat]
This commit is contained in:
parent
3d618a2f00
commit
4af0ba44d9
83
ext/standard/tests/file/userwrapper.phpt
Normal file
83
ext/standard/tests/file/userwrapper.phpt
Normal file
@ -0,0 +1,83 @@
|
||||
--TEST--
|
||||
Userstream unlink, rename, mkdir, rmdir, and url_stat.
|
||||
--FILE--
|
||||
<?php # vim:ft=php:
|
||||
class test {
|
||||
function unlink($file) {
|
||||
print "Unlinking file: $file\n";
|
||||
}
|
||||
|
||||
function rename($from, $to) {
|
||||
print "Renaming $from to $to\n";
|
||||
}
|
||||
|
||||
function mkdir($directory, $mode, $options) {
|
||||
printf("Making directory: %s as %o%s\n", $directory, $mode, $options & STREAM_MKDIR_RECURSIVE ? " recursively" : "");
|
||||
}
|
||||
|
||||
function rmdir($directory, $options) {
|
||||
print "Removing directory: $directory\n";
|
||||
}
|
||||
|
||||
function url_stat($path, $options) {
|
||||
/* By printing out a notice that we are actively stating the file
|
||||
then subsequently performing multiple stat operations on it
|
||||
we effectively test the stat cache mechanism */
|
||||
print "Stating file: $path\n";
|
||||
return array('dev'=>1, 'ino'=>2, 'mode'=>0644, 'nlink'=>3,
|
||||
'uid'=>100, 'gid'=>1000, 'rdev'=>-1, 'size'=>31337,
|
||||
'atime'=>1234567890, 'mtime'=>1231231231, 'ctime'=>1234564564,
|
||||
'blksize'=>4096, 'blocks'=>8);
|
||||
}
|
||||
}
|
||||
|
||||
stream_wrapper_register('test', 'test');
|
||||
|
||||
unlink('test://example.com/path/to/file');
|
||||
rename('test://example.com/path/to/from', 'test://example.com/path/to/to');
|
||||
/* We *want* this to fail and thus not output the watch statement */
|
||||
@rename('test://example.com/path/to/from', 'http://example.com/path/to/to');
|
||||
mkdir('test://example.com/path/to/directory', 0755);
|
||||
rmdir('test://example.com/path/to/directory');
|
||||
print_r(stat('test://example.com/path/to/file'));
|
||||
echo "Filesize = " . filesize('test://example.com/path/to/file') . "\n";
|
||||
echo "filemtime = " . filemtime('test://example.com/path/to/file') . "\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
Unlinking file: test://example.com/path/to/file
|
||||
Renaming test://example.com/path/to/from to test://example.com/path/to/to
|
||||
Making directory: test://example.com/path/to/directory as 755
|
||||
Removing directory: test://example.com/path/to/directory
|
||||
Stating file: test://example.com/path/to/file
|
||||
Array
|
||||
(
|
||||
[0] => 1
|
||||
[1] => 2
|
||||
[2] => 420
|
||||
[3] => 3
|
||||
[4] => 100
|
||||
[5] => 1000
|
||||
[6] => -1
|
||||
[7] => 31337
|
||||
[8] => 1234567890
|
||||
[9] => 1231231231
|
||||
[10] => 1234564564
|
||||
[11] => -1
|
||||
[12] => -1
|
||||
[dev] => 1
|
||||
[ino] => 2
|
||||
[mode] => 420
|
||||
[nlink] => 3
|
||||
[uid] => 100
|
||||
[gid] => 1000
|
||||
[rdev] => -1
|
||||
[size] => 31337
|
||||
[atime] => 1234567890
|
||||
[mtime] => 1231231231
|
||||
[ctime] => 1234564564
|
||||
[blksize] => -1
|
||||
[blocks] => -1
|
||||
)
|
||||
Filesize = 31337
|
||||
filemtime = 1231231231
|
||||
|
Loading…
Reference in New Issue
Block a user