Annotation of embedaddon/php/ext/phar/tests/fopen_edgecases2.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Phar: test edge cases of fopen() function interception #2
3: --SKIPIF--
4: <?php if (!extension_loaded("phar")) die("skip"); ?>
5: <?php if (version_compare(phpversion(), '6.0', '>=')) die('skip parameter parsing changed in 6.0'); ?>
6: --INI--
7: phar.readonly=0
8: --FILE--
9: <?php
10: Phar::interceptFileFuncs();
11: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
12: $pname = 'phar://' . $fname;
13:
14: fopen(array(), 'r');
15: chdir(dirname(__FILE__));
16: file_put_contents($fname, b"blah\n");
17: file_put_contents("foob", b"test\n");
18: $a = fopen($fname, 'rb');
19: echo fread($a, 1000);
20: fclose($a);
21: unlink($fname);
22: mkdir($pname . '/oops');
23: file_put_contents($pname . '/foo/hi', b'<?php
24: $context = stream_context_create();
25: $a = fopen("foob", "rb", false, $context);
26: echo fread($a, 1000);
27: fclose($a);
28: fopen("../oops", "r");
29: ?>
30: ');
31: include $pname . '/foo/hi';
32: ?>
33: ===DONE===
34: --CLEAN--
35: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
36: <?php rmdir(dirname(__FILE__) . '/poo'); ?>
37: <?php unlink(dirname(__FILE__) . '/foob'); ?>
38: --EXPECTF--
39: Warning: fopen() expects parameter 1 to be string, array given in %sfopen_edgecases2.php on line %d
40: blah
41: test
42:
43: Warning: fopen(phar://%sfopen_edgecases2.phar.php/oops): failed to open stream: phar error: path "oops" is a directory in phar://%sfopen_edgecases2.phar.php/foo/hi on line %d
44: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>