Annotation of embedaddon/php/ext/phar/tests/fgc_edgecases.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Phar: test edge cases of file_get_contents() function interception
3: --SKIPIF--
4: <?php
5: if (!extension_loaded("phar")) die("skip");
6: if (version_compare(PHP_VERSION, "6.0", ">")) die("skip pre-unicode version of PHP required");
7: ?>
8: --INI--
9: phar.readonly=0
10: --FILE--
11: <?php
12:
13: Phar::interceptFileFuncs();
14:
15: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
16: $pname = 'phar://' . $fname;
17:
18: file_get_contents(array());
19: chdir(dirname(__FILE__));
20: file_put_contents($fname, "blah\n");
21: file_put_contents("foob", "test\n");
22: echo file_get_contents($fname);
23: unlink($fname);
24: mkdir($pname . '/oops');
25:
26: file_put_contents($pname . '/foo/hi', '<?php
27: echo file_get_contents("foo/" . basename(__FILE__));
28: $context = stream_context_create();
29: file_get_contents("./hi", 0, $context, 0, -1);
30: echo file_get_contents("foob");
31: set_include_path("' . addslashes(dirname(__FILE__)) . '");
32: echo file_get_contents("foob", true);
33: echo file_get_contents("./hi", 0, $context);
34: echo file_get_contents("../oops");
35: echo file_get_contents("./hi", 0, $context, 50000);
36: ini_set("magic_quotes_runtime", 1);
37: echo file_get_contents("./hi");
38: echo file_get_contents("./hi", 0, $context, 0, 0);
39: ?>
40: ');
41:
42: include $pname . '/foo/hi';
43:
44: ?>
45: ===DONE===
46: --CLEAN--
47: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
48: <?php rmdir(dirname(__FILE__) . '/poo'); ?>
49: <?php unlink(dirname(__FILE__) . '/foob'); ?>
50: --EXPECTF--
51: Warning: file_get_contents() expects parameter 1 to be string, array given in %sfgc_edgecases.php on line %d
52: blah
53: <?php
54: echo file_get_contents("foo/" . basename(__FILE__));
55: $context = stream_context_create();
56: file_get_contents("./hi", 0, $context, 0, -1);
57: echo file_get_contents("foob");
58: set_include_path("%stests");
59: echo file_get_contents("foob", true);
60: echo file_get_contents("./hi", 0, $context);
61: echo file_get_contents("../oops");
62: echo file_get_contents("./hi", 0, $context, 50000);
63: ini_set("magic_quotes_runtime", 1);
64: echo file_get_contents("./hi");
65: echo file_get_contents("./hi", 0, $context, 0, 0);
66: ?>
67:
68: Warning: file_get_contents(): length must be greater than or equal to zero in phar://%sfgc_edgecases.phar.php/foo/hi on line %d
69: test
70: test
71: <?php
72: echo file_get_contents("foo/" . basename(__FILE__));
73: $context = stream_context_create();
74: file_get_contents("./hi", 0, $context, 0, -1);
75: echo file_get_contents("foob");
76: set_include_path("%stests");
77: echo file_get_contents("foob", true);
78: echo file_get_contents("./hi", 0, $context);
79: echo file_get_contents("../oops");
80: echo file_get_contents("./hi", 0, $context, 50000);
81: ini_set("magic_quotes_runtime", 1);
82: echo file_get_contents("./hi");
83: echo file_get_contents("./hi", 0, $context, 0, 0);
84: ?>
85:
86: Warning: file_get_contents(phar://%sfgc_edgecases.phar.php/oops): failed to open stream: phar error: path "oops" is a directory in phar://%sfgc_edgecases.phar.php/foo/hi on line %d
87:
88: Warning: file_get_contents(): Failed to seek to position 50000 in the stream in phar://%sfgc_edgecases.phar.php/foo/hi on line %d
89: <?php
90: echo file_get_contents(\"foo/\" . basename(__FILE__));
91: $context = stream_context_create();
92: file_get_contents(\"./hi\", 0, $context, 0, -1);
93: echo file_get_contents(\"foob\");
94: set_include_path(\"%stests\");
95: echo file_get_contents(\"foob\", true);
96: echo file_get_contents(\"./hi\", 0, $context);
97: echo file_get_contents(\"../oops\");
98: echo file_get_contents(\"./hi\", 0, $context, 50000);
99: ini_set(\"magic_quotes_runtime\", 1);
100: echo file_get_contents(\"./hi\");
101: echo file_get_contents(\"./hi\", 0, $context, 0, 0);
102: ?>
103: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>