Annotation of embedaddon/php/ext/phar/tests/readfile_edgecasesU.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 6.0 or newer"); ?>
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: chdir(dirname(__FILE__));
15: file_put_contents($fname, "blah\n");
16: file_put_contents("foob", "test\n");
17: readfile($fname);
18: unlink($fname);
19: mkdir($pname . '/oops');
20: file_put_contents($pname . '/foo/hi', '<?php
21: readfile("foo/" . basename(__FILE__));
22: $context = stream_context_create();
23: readfile("foob");
24: set_include_path("' . addslashes(dirname(__FILE__)) . '");
25: readfile("foob", true);
26: readfile("./hi", 0, $context);
27: readfile("../oops");
28: ?>
29: ');
30: include $pname . '/foo/hi';
31: ?>
32: ===DONE===
33: --CLEAN--
34: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
35: <?php rmdir(dirname(__FILE__) . '/poo'); ?>
36: <?php unlink(dirname(__FILE__) . '/foob'); ?>
37: --EXPECTF--
38: blah
39: <?php
40: readfile("foo/" . basename(__FILE__));
41: $context = stream_context_create();
42: readfile("foob");
43: set_include_path("%stests");
44: readfile("foob", true);
45: readfile("./hi", 0, $context);
46: readfile("../oops");
47: ?>
48: test
49: test
50: <?php
51: readfile("foo/" . basename(__FILE__));
52: $context = stream_context_create();
53: readfile("foob");
54: set_include_path("%stests");
55: readfile("foob", true);
56: readfile("./hi", 0, $context);
57: readfile("../oops");
58: ?>
59:
60: Warning: readfile(phar://%sreadfile_edgecasesU.phar.php/oops): failed to open stream: phar error: path "oops" is a directory in phar://%sreadfile_edgecasesU.phar.php/foo/hi on line %d
61: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>