Annotation of embedaddon/php/ext/phar/tests/readfile_edgecases.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Phar: test edge cases of readfile() function interception
3: --SKIPIF--
4: <?php if (!extension_loaded("phar")) die("skip");?>
5: <?php if (version_compare(PHP_VERSION, "6.0", ">=")) die("skip requires php older than 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: readfile(array());
15: chdir(dirname(__FILE__));
16: file_put_contents($fname, "blah\n");
17: file_put_contents("foob", "test\n");
18: readfile($fname);
19: unlink($fname);
20: mkdir($pname . '/oops');
21: file_put_contents($pname . '/foo/hi', '<?php
22: readfile("foo/" . basename(__FILE__));
23: $context = stream_context_create();
24: readfile("foob");
25: set_include_path("' . addslashes(dirname(__FILE__)) . '");
26: readfile("foob", true);
27: readfile("./hi", 0, $context);
28: readfile("../oops");
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: readfile() expects parameter 1 to be string, array given in %sreadfile_edgecases.php on line %d
40: blah
41: <?php
42: readfile("foo/" . basename(__FILE__));
43: $context = stream_context_create();
44: readfile("foob");
45: set_include_path("%stests");
46: readfile("foob", true);
47: readfile("./hi", 0, $context);
48: readfile("../oops");
49: ?>
50: test
51: test
52: <?php
53: readfile("foo/" . basename(__FILE__));
54: $context = stream_context_create();
55: readfile("foob");
56: set_include_path("%stests");
57: readfile("foob", true);
58: readfile("./hi", 0, $context);
59: readfile("../oops");
60: ?>
61:
62: Warning: readfile(phar://%sreadfile_edgecases.phar.php/oops): failed to open stream: phar error: path "oops" is a directory in phar://%sreadfile_edgecases.phar.php/foo/hi on line %d
63: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>