1--TEST--
2Test session_set_save_handler() function : basic functionality
3--INI--
4session.save_path=
5session.name=PHPSESSID
6session.gc_probability=0
7session.save_handler=files
8--EXTENSIONS--
9session
10--FILE--
11<?php
12
13ob_start();
14
15echo "*** Testing session_set_save_handler() : basic functionality ***\n";
16
17require_once "save_handler.inc";
18var_dump(session_module_name());
19var_dump(session_module_name(FALSE));
20var_dump(session_module_name("blah"));
21var_dump(session_module_name("foo"));
22
23$path = __DIR__ . '/session_set_save_handler_basic';
24@mkdir($path);
25session_save_path($path);
26session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
27
28session_start();
29$session_id = session_id();
30$_SESSION["Blah"] = "Hello World!";
31$_SESSION["Foo"] = FALSE;
32$_SESSION["Guff"] = 1234567890;
33var_dump($_SESSION);
34
35session_write_close();
36session_unset();
37var_dump($_SESSION);
38
39echo "Starting session again..!\n";
40session_id($session_id);
41session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
42session_start();
43var_dump($_SESSION);
44$_SESSION['Bar'] = 'Foo';
45session_write_close();
46
47echo "Garbage collection..\n";
48session_id($session_id);
49session_start();
50var_dump(session_gc());
51session_write_close();
52
53echo "Cleanup..\n";
54session_id($session_id);
55session_start();
56session_destroy();
57
58ob_end_flush();
59?>
60--CLEAN--
61<?php
62$path = __DIR__ . '/session_set_save_handler_basic';
63rmdir($path);
64?>
65--EXPECTF--
66*** Testing session_set_save_handler() : basic functionality ***
67string(%d) "%s"
68
69Warning: session_module_name(): Session handler module "" cannot be found in %s on line %d
70bool(false)
71
72Warning: session_module_name(): Session handler module "blah" cannot be found in %s on line %d
73bool(false)
74
75Warning: session_module_name(): Session handler module "foo" cannot be found in %s on line %d
76bool(false)
77
78Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
79Open [%s,PHPSESSID]
80Read [%s,%s]
81array(3) {
82  ["Blah"]=>
83  string(12) "Hello World!"
84  ["Foo"]=>
85  bool(false)
86  ["Guff"]=>
87  int(1234567890)
88}
89Write [%s,%s,Blah|s:12:"Hello World!";Foo|b:0;Guff|i:1234567890;]
90Close [%s,PHPSESSID]
91array(3) {
92  ["Blah"]=>
93  string(12) "Hello World!"
94  ["Foo"]=>
95  bool(false)
96  ["Guff"]=>
97  int(1234567890)
98}
99Starting session again..!
100
101Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
102Open [%s,PHPSESSID]
103Read [%s,%s]
104array(3) {
105  ["Blah"]=>
106  string(12) "Hello World!"
107  ["Foo"]=>
108  bool(false)
109  ["Guff"]=>
110  int(1234567890)
111}
112Write [%s,%s,Blah|s:12:"Hello World!";Foo|b:0;Guff|i:1234567890;Bar|s:3:"Foo";]
113Close [%s,PHPSESSID]
114Garbage collection..
115Open [%s,PHPSESSID]
116Read [%s,%s]
117int(0)
118Write [%s,%s,Blah|s:12:"Hello World!";Foo|b:0;Guff|i:1234567890;Bar|s:3:"Foo";]
119Close [%s,PHPSESSID]
120Cleanup..
121Open [%s,PHPSESSID]
122Read [%s,%s]
123Destroy [%s,%s]
124Close [%s,PHPSESSID]
125