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
88session_start();
89
90$iterator = 1;
91foreach($inputs as $input) {
92    echo "\n-- Iteration $iterator --\n";
93    var_dump(session_save_path($input));
94    $iterator++;
95};
96
97session_destroy();
98fclose($fp);
99echo "Done";
100ob_end_flush();
101?>
102--EXPECTF--
103*** Testing session_save_path() : error functionality ***
104
105-- Iteration 1 --
106string(0) ""
107
108-- Iteration 2 --
109string(1) "0"
110
111-- Iteration 3 --
112string(1) "1"
113
114-- Iteration 4 --
115string(5) "12345"
116
117-- Iteration 5 --
118string(5) "-2345"
119
120-- Iteration 6 --
121string(4) "10.5"
122
123-- Iteration 7 --
124string(5) "-10.5"
125
126-- Iteration 8 --
127string(12) "123456789000"
128
129-- Iteration 9 --
130string(13) "1.23456789E-9"
131
132-- Iteration 10 --
133string(3) "0.5"
134
135-- Iteration 11 --
136string(0) ""
137
138-- Iteration 12 --
139string(0) ""
140
141-- Iteration 13 --
142string(1) "1"
143
144-- Iteration 14 --
145string(0) ""
146
147-- Iteration 15 --
148string(1) "1"
149
150-- Iteration 16 --
151string(0) ""
152
153-- Iteration 17 --
154string(0) ""
155
156-- Iteration 18 --
157string(0) ""
158
159-- Iteration 19 --
160string(7) "Nothing"
161
162-- Iteration 20 --
163string(7) "Nothing"
164
165-- Iteration 21 --
166string(12) "Hello World!"
167
168-- Iteration 22 --
169string(12) "Hello World!"
170
171-- Iteration 23 --
172string(0) ""
173
174-- Iteration 24 --
175
176Warning: session_save_path() expects parameter 1 to be string, resource given in %s on line %d
177NULL
178Done
179