1--TEST--
2Test session_save_path() function : error functionality
3--INI--
4session.gc_probability=0
5session.save_path=
6session.name=PHPSESSID
7session.save_handler=files
8--SKIPIF--
9<?php include('skipif.inc'); ?>
10--FILE--
11<?php
12
13ob_start();
14
15/*
16 * Prototype : string session_save_path([string $path])
17 * Description : Get and/or set the current session save path
18 * Source code : ext/session/session.c
19 */
20
21echo "*** Testing session_save_path() : error functionality ***\n";
22
23// Get an unset variable
24$unset_var = 10;
25unset($unset_var);
26
27class classA
28{
29    public function __toString() {
30        return "Hello World!";
31    }
32}
33
34$heredoc = <<<EOT
35Hello World!
36EOT;
37
38$fp = fopen(__FILE__, "r");
39
40// Unexpected values to be passed as arguments
41$inputs = array(
42
43       // Integer data
44/*1*/  0,
45       1,
46       12345,
47       -2345,
48
49       // Float data
50/*5*/  10.5,
51       -10.5,
52       12.3456789000e10,
53       12.3456789000E-10,
54       .5,
55
56       // Null data
57/*10*/ NULL,
58       null,
59
60       // Boolean data
61/*12*/ true,
62       false,
63       TRUE,
64       FALSE,
65
66       // Empty strings
67/*16*/ "",
68       '',
69
70       // Invalid string data
71/*18*/ "Nothing",
72       'Nothing',
73       $heredoc,
74
75       // Object data
76/*21*/ new classA(),
77
78       // Undefined data
79/*22*/ @$undefined_var,
80
81       // Unset data
82/*23*/ @$unset_var,
83
84       // Resource variable
85/*24*/ $fp
86);
87
88
89$iterator = 1;
90foreach($inputs as $input) {
91    echo "\n-- Iteration $iterator --\n";
92    var_dump(session_save_path($input));
93    $iterator++;
94};
95
96fclose($fp);
97echo "Done";
98ob_end_flush();
99?>
100--EXPECTF--
101*** Testing session_save_path() : error functionality ***
102
103-- Iteration 1 --
104string(0) ""
105
106-- Iteration 2 --
107string(1) "0"
108
109-- Iteration 3 --
110string(1) "1"
111
112-- Iteration 4 --
113string(5) "12345"
114
115-- Iteration 5 --
116string(5) "-2345"
117
118-- Iteration 6 --
119string(4) "10.5"
120
121-- Iteration 7 --
122string(5) "-10.5"
123
124-- Iteration 8 --
125string(12) "123456789000"
126
127-- Iteration 9 --
128string(13) "1.23456789E-9"
129
130-- Iteration 10 --
131string(3) "0.5"
132
133-- Iteration 11 --
134string(0) ""
135
136-- Iteration 12 --
137string(0) ""
138
139-- Iteration 13 --
140string(1) "1"
141
142-- Iteration 14 --
143string(0) ""
144
145-- Iteration 15 --
146string(1) "1"
147
148-- Iteration 16 --
149string(0) ""
150
151-- Iteration 17 --
152string(0) ""
153
154-- Iteration 18 --
155string(0) ""
156
157-- Iteration 19 --
158string(7) "Nothing"
159
160-- Iteration 20 --
161string(7) "Nothing"
162
163-- Iteration 21 --
164string(12) "Hello World!"
165
166-- Iteration 22 --
167string(12) "Hello World!"
168
169-- Iteration 23 --
170string(0) ""
171
172-- Iteration 24 --
173
174Warning: session_save_path() expects parameter 1 to be string, resource given in %s on line %d
175NULL
176Done
177