Annotation of embedaddon/php/ext/phar/tests/opendir_edgecases.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Phar: test edge cases of opendir() function interception
! 3: --SKIPIF--
! 4: <?php if (!extension_loaded("phar")) die("skip");?>
! 5: --INI--
! 6: phar.readonly=0
! 7: --FILE--
! 8: <?php
! 9:
! 10: Phar::interceptFileFuncs();
! 11:
! 12: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
! 13: $pname = 'phar://' . $fname;
! 14:
! 15: opendir(array());
! 16:
! 17: mkdir(dirname(__FILE__) . '/poo');
! 18: chdir(dirname(__FILE__));
! 19:
! 20: $a = opendir('poo');
! 21:
! 22: $arr = array();
! 23: while (false !== ($b = readdir($a))) {
! 24: $arr[] = $b;
! 25: }
! 26: sort($arr);
! 27: foreach ($arr as $b) {
! 28: echo "$b\n";
! 29: }
! 30:
! 31: closedir($a);
! 32:
! 33: file_put_contents($pname . '/foo', '<?php
! 34: $context = stream_context_create();
! 35: $a = opendir(".", $context);
! 36: $res = array();
! 37: while (false !== ($b = readdir($a))) {
! 38: $res[] = $b;
! 39: }
! 40: sort($res);
! 41: foreach ($res as $b) {
! 42: echo "$b\n";
! 43: }
! 44: opendir("oops");
! 45: ?>');
! 46:
! 47: include $pname . '/foo';
! 48:
! 49: ?>
! 50: ===DONE===
! 51: --CLEAN--
! 52: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
! 53: <?php rmdir(dirname(__FILE__) . '/poo');
! 54: --EXPECTF--
! 55: Warning: opendir() expects parameter 1 to be %string, array given in %sopendir_edgecases.php on line %d
! 56: .
! 57: ..
! 58: foo
! 59:
! 60: Warning: opendir(phar://%sopendir_edgecases.phar.php/oops): failed to open dir: %s in phar://%sopendir_edgecases.phar.php/foo on line %d
! 61: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>