1--TEST--
2Test session_set_cookie_params() function : error functionality
3--SKIPIF--
4<?php include('skipif.inc'); ?>
5--FILE--
6<?php
7
8ob_start();
9
10/*
11 * Prototype : void session_set_cookie_params(int $lifetime [, string $path [, string $domain [, bool $secure [, bool $httponly]]]])
12 * Description : Set the session cookie parameters
13 * Source code : ext/session/session.c
14 */
15
16echo "*** Testing session_set_cookie_params() : error functionality ***\n";
17
18// Get an unset variable
19$unset_var = 10;
20unset($unset_var);
21
22class classA
23{
24    public function __toString() {
25        return "Hello World!";
26    }
27}
28
29$heredoc = <<<EOT
30Hello World!
31EOT;
32
33$fp = fopen(__FILE__, "r");
34
35// Unexpected values to be passed as arguments
36$inputs = array(
37
38       // Integer data
39/*1*/  0,
40       1,
41       12345,
42       -2345,
43
44       // Float data
45/*5*/  10.5,
46       -10.5,
47       12.3456789000e10,
48       12.3456789000E-10,
49       .5,
50
51       // Null data
52/*10*/ NULL,
53       null,
54
55       // Boolean data
56/*12*/ true,
57       false,
58       TRUE,
59       FALSE,
60
61       // Empty strings
62/*16*/ "",
63       '',
64
65       // Invalid string data
66/*18*/ "Nothing",
67       'Nothing',
68       $heredoc,
69
70       // Object data
71/*21*/ new classA(),
72
73       // Undefined data
74/*22*/ @$undefined_var,
75
76       // Unset data
77/*23*/ @$unset_var,
78
79       // Resource variable
80/*24*/ $fp
81);
82
83$iterator = 1;
84foreach($inputs as $input) {
85    echo "\n-- Iteration $iterator --\n";
86    var_dump(session_set_cookie_params($input));
87    var_dump(session_set_cookie_params(1234567890, $input));
88    var_dump(session_set_cookie_params(1234567890, "blah", $input));
89    var_dump(session_set_cookie_params(1234567890, "blah", "foo", $input));
90    var_dump(session_set_cookie_params(1234567890, "blah", "foo", TRUE, $input));
91    var_dump(session_set_cookie_params(1234567890, "blah", "foo", TRUE, FALSE));
92    $iterator++;
93};
94
95fclose($fp);
96echo "Done";
97ob_end_flush();
98?>
99--EXPECTF--
100*** Testing session_set_cookie_params() : error functionality ***
101
102-- Iteration 1 --
103bool(true)
104bool(true)
105bool(true)
106bool(true)
107bool(true)
108bool(true)
109
110-- Iteration 2 --
111bool(true)
112bool(true)
113bool(true)
114bool(true)
115bool(true)
116bool(true)
117
118-- Iteration 3 --
119bool(true)
120bool(true)
121bool(true)
122bool(true)
123bool(true)
124bool(true)
125
126-- Iteration 4 --
127
128Warning: session_set_cookie_params(): CookieLifetime cannot be negative in %s on line 81
129bool(false)
130bool(true)
131bool(true)
132bool(true)
133bool(true)
134bool(true)
135
136-- Iteration 5 --
137bool(true)
138bool(true)
139bool(true)
140bool(true)
141bool(true)
142bool(true)
143
144-- Iteration 6 --
145
146Warning: session_set_cookie_params(): CookieLifetime cannot be negative in %s on line 81
147bool(false)
148bool(true)
149bool(true)
150bool(true)
151bool(true)
152bool(true)
153
154-- Iteration 7 --
155bool(true)
156bool(true)
157bool(true)
158bool(true)
159bool(true)
160bool(true)
161
162-- Iteration 8 --
163bool(true)
164bool(true)
165bool(true)
166bool(true)
167bool(true)
168bool(true)
169
170-- Iteration 9 --
171bool(true)
172bool(true)
173bool(true)
174bool(true)
175bool(true)
176bool(true)
177
178-- Iteration 10 --
179bool(true)
180bool(true)
181bool(true)
182bool(true)
183bool(true)
184bool(true)
185
186-- Iteration 11 --
187bool(true)
188bool(true)
189bool(true)
190bool(true)
191bool(true)
192bool(true)
193
194-- Iteration 12 --
195bool(true)
196bool(true)
197bool(true)
198bool(true)
199bool(true)
200bool(true)
201
202-- Iteration 13 --
203bool(true)
204bool(true)
205bool(true)
206bool(true)
207bool(true)
208bool(true)
209
210-- Iteration 14 --
211bool(true)
212bool(true)
213bool(true)
214bool(true)
215bool(true)
216bool(true)
217
218-- Iteration 15 --
219bool(true)
220bool(true)
221bool(true)
222bool(true)
223bool(true)
224bool(true)
225
226-- Iteration 16 --
227bool(true)
228bool(true)
229bool(true)
230bool(true)
231bool(true)
232bool(true)
233
234-- Iteration 17 --
235bool(true)
236bool(true)
237bool(true)
238bool(true)
239bool(true)
240bool(true)
241
242-- Iteration 18 --
243bool(true)
244bool(true)
245bool(true)
246bool(true)
247bool(true)
248bool(true)
249
250-- Iteration 19 --
251bool(true)
252bool(true)
253bool(true)
254bool(true)
255bool(true)
256bool(true)
257
258-- Iteration 20 --
259bool(true)
260bool(true)
261bool(true)
262bool(true)
263bool(true)
264bool(true)
265
266-- Iteration 21 --
267bool(true)
268bool(true)
269bool(true)
270
271Warning: session_set_cookie_params() expects parameter 4 to be boolean, object given in %s on line 84
272NULL
273
274Warning: session_set_cookie_params() expects parameter 5 to be boolean, object given in %s on line 85
275NULL
276bool(true)
277
278-- Iteration 22 --
279bool(true)
280bool(true)
281bool(true)
282bool(true)
283bool(true)
284bool(true)
285
286-- Iteration 23 --
287bool(true)
288bool(true)
289bool(true)
290bool(true)
291bool(true)
292bool(true)
293
294-- Iteration 24 --
295bool(true)
296
297Warning: session_set_cookie_params() expects parameter 2 to be string, resource given in %s on line 82
298NULL
299
300Warning: session_set_cookie_params() expects parameter 3 to be string, resource given in %s on line 83
301NULL
302
303Warning: session_set_cookie_params() expects parameter 4 to be boolean, resource given in %s on line 84
304NULL
305
306Warning: session_set_cookie_params() expects parameter 5 to be boolean, resource given in %s on line 85
307NULL
308bool(true)
309Done
310