Annotation of embedaddon/php/ext/standard/tests/file/file_variation3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test file() function : second parameter variation
3: --FILE--
4: <?php
5: /* Prototype : array file(string filename [, int flags[, resource context]])
6: * Description: Read entire file into an array
7: * Source code: ext/standard/file.c
8: * Alias to functions:
9: */
10:
11: echo "*** Testing file() : usage variation ***\n";
12:
13: // Define error handler
14: function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) {
15: if (error_reporting() != 0) {
16: // report non-silenced errors
17: echo "Error: $err_no - $err_msg, $filename($linenum)\n";
18: }
19: }
20: set_error_handler('test_error_handler');
21:
22: // Initialise function arguments not being substituted
23: $filename = __FILE__ . ".tmp";
24: $fd = fopen($filename, "w+");
25: fwrite($fd, "Line 1\nLine 2\nLine 3");
26: fclose($fd);
27:
28: $context = stream_context_create();
29:
30:
31: //get an unset variable
32: $unset_var = 10;
33: unset ($unset_var);
34:
35: // define some classes
36: class classWithToString
37: {
38: public function __toString() {
39: return "Class A object";
40: }
41: }
42:
43: class classWithoutToString
44: {
45: }
46:
47: // heredoc string
48: $heredoc = <<<EOT
49: hello world
50: EOT;
51:
52: // add arrays
53: $index_array = array (1, 2, 3);
54: $assoc_array = array ('one' => 1, 'two' => 2);
55:
56: //array of values to iterate over
57: $inputs = array(
58:
59: // float data
60: 'float 10.5' => 10.5,
61: 'float -10.5' => -10.5,
62: 'float 12.3456789000e10' => 12.3456789000e10,
63: 'float -12.3456789000e10' => -12.3456789000e10,
64: 'float .5' => .5,
65:
66: // array data
67: 'empty array' => array(),
68: 'int indexed array' => $index_array,
69: 'associative array' => $assoc_array,
70: 'nested arrays' => array('foo', $index_array, $assoc_array),
71:
72: // null data
73: 'uppercase NULL' => NULL,
74: 'lowercase null' => null,
75:
76: // boolean data
77: 'lowercase true' => true,
78: 'lowercase false' =>false,
79: 'uppercase TRUE' =>TRUE,
80: 'uppercase FALSE' =>FALSE,
81:
82: // empty data
83: 'empty string DQ' => "",
84: 'empty string SQ' => '',
85:
86: // string data
87: 'string DQ' => "string",
88: 'string SQ' => 'string',
89: 'mixed case string' => "sTrInG",
90: 'heredoc' => $heredoc,
91:
92: // object data
93: 'instance of classWithToString' => new classWithToString(),
94: 'instance of classWithoutToString' => new classWithoutToString(),
95:
96: // undefined data
97: 'undefined var' => @$undefined_var,
98:
99: // unset data
100: 'unset var' => @$unset_var,
101: );
102:
103: // loop through each element of the array for flags
104:
105: foreach($inputs as $key =>$value) {
106: echo "\n--$key--\n";
107: var_dump( file($filename, $value, $context) );
108: };
109:
110: unlink(__FILE__ . ".tmp");
111:
112: ?>
113: ===DONE===
114: --EXPECTF--
115: *** Testing file() : usage variation ***
116:
117: --float 10.5--
118: array(3) {
119: [0]=>
120: string(6) "Line 1"
121: [1]=>
122: string(6) "Line 2"
123: [2]=>
124: string(6) "Line 3"
125: }
126:
127: --float -10.5--
128: Error: 2 - file(): '-10' flag is not supported, %s(%d)
129: bool(false)
130:
131: --float 12.3456789000e10--
132: Error: 2 - file(): '%i' flag is not supported, %s(%d)
133: bool(false)
134:
135: --float -12.3456789000e10--
136: Error: 2 - file(): '%i' flag is not supported, %s(%d)
137: bool(false)
138:
139: --float .5--
140: array(3) {
141: [0]=>
142: string(7) "Line 1
143: "
144: [1]=>
145: string(7) "Line 2
146: "
147: [2]=>
148: string(6) "Line 3"
149: }
150:
151: --empty array--
152: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
153: NULL
154:
155: --int indexed array--
156: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
157: NULL
158:
159: --associative array--
160: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
161: NULL
162:
163: --nested arrays--
164: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
165: NULL
166:
167: --uppercase NULL--
168: array(3) {
169: [0]=>
170: string(7) "Line 1
171: "
172: [1]=>
173: string(7) "Line 2
174: "
175: [2]=>
176: string(6) "Line 3"
177: }
178:
179: --lowercase null--
180: array(3) {
181: [0]=>
182: string(7) "Line 1
183: "
184: [1]=>
185: string(7) "Line 2
186: "
187: [2]=>
188: string(6) "Line 3"
189: }
190:
191: --lowercase true--
192: array(3) {
193: [0]=>
194: string(7) "Line 1
195: "
196: [1]=>
197: string(7) "Line 2
198: "
199: [2]=>
200: string(6) "Line 3"
201: }
202:
203: --lowercase false--
204: array(3) {
205: [0]=>
206: string(7) "Line 1
207: "
208: [1]=>
209: string(7) "Line 2
210: "
211: [2]=>
212: string(6) "Line 3"
213: }
214:
215: --uppercase TRUE--
216: array(3) {
217: [0]=>
218: string(7) "Line 1
219: "
220: [1]=>
221: string(7) "Line 2
222: "
223: [2]=>
224: string(6) "Line 3"
225: }
226:
227: --uppercase FALSE--
228: array(3) {
229: [0]=>
230: string(7) "Line 1
231: "
232: [1]=>
233: string(7) "Line 2
234: "
235: [2]=>
236: string(6) "Line 3"
237: }
238:
239: --empty string DQ--
240: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
241: NULL
242:
243: --empty string SQ--
244: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
245: NULL
246:
247: --string DQ--
248: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
249: NULL
250:
251: --string SQ--
252: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
253: NULL
254:
255: --mixed case string--
256: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
257: NULL
258:
259: --heredoc--
260: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
261: NULL
262:
263: --instance of classWithToString--
264: Error: 2 - file() expects parameter 2 to be long, object given, %s(%d)
265: NULL
266:
267: --instance of classWithoutToString--
268: Error: 2 - file() expects parameter 2 to be long, object given, %s(%d)
269: NULL
270:
271: --undefined var--
272: array(3) {
273: [0]=>
274: string(7) "Line 1
275: "
276: [1]=>
277: string(7) "Line 2
278: "
279: [2]=>
280: string(6) "Line 3"
281: }
282:
283: --unset var--
284: array(3) {
285: [0]=>
286: string(7) "Line 1
287: "
288: [1]=>
289: string(7) "Line 2
290: "
291: [2]=>
292: string(6) "Line 3"
293: }
294: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>