From 41cd55dd44e296b56cccf91c9f2c074b414a32b0 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Sun, 7 Jan 2001 10:40:41 +0000 Subject: [PATCH] Add a new test and refine the fourth test --- ext/session/tests/004.phpt | 22 +++++- ext/session/tests/005.phpt | 138 +++++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 ext/session/tests/005.phpt diff --git a/ext/session/tests/004.phpt b/ext/session/tests/004.phpt index 0840dcb137..8e6ec4e8d3 100644 --- a/ext/session/tests/004.phpt +++ b/ext/session/tests/004.phpt @@ -17,13 +17,13 @@ class handler { function read($key) { print "READ: $key\n"; - return $this->data; + return $GLOBALS["hnd"]->data; } function write($key, $val) { print "WRITE: $key, $val\n"; - $this->data = $val; + $GLOBALS["hnd"]->data = $val; return true; } @@ -60,6 +60,9 @@ session_write_close(); session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc")); session_start(); +var_dump($baz); +var_dump($arr); + session_destroy(); --EXPECT-- OPEN: /tmp, PHPSESSID @@ -82,4 +85,19 @@ array(1) { WRITE: test, baz|O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:2;}arr|a:1:{i:3;O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:2;}} OPEN: /tmp, PHPSESSID READ: test +object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(2) +} +array(1) { + [3]=> + object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(2) + } +} DESTROY: test diff --git a/ext/session/tests/005.phpt b/ext/session/tests/005.phpt new file mode 100644 index 0000000000..38e660b100 --- /dev/null +++ b/ext/session/tests/005.phpt @@ -0,0 +1,138 @@ +--TEST-- +Custom save handler, multiple session_start()s, complex data structure test. +--FILE-- +data; + } + + function write($key, $val) + { + print "WRITE: $key, $val\n"; + $GLOBALS["hnd"]->data = $val; + return true; + } + + function destroy($key) + { + print "DESTROY: $key\n"; + return true; + } + + function gc() { return true; } +} + +$hnd = new handler; + +class foo { + var $bar = "ok"; + function method() { $this->yes++; } +} + +ob_start(); + +session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc")); + +session_id("test"); +session_start(); +$baz->method(); +$arr[3]->method(); + +var_dump($baz); +var_dump($arr); + +session_write_close(); + +session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc")); +session_start(); +$baz->method(); +$arr[3]->method(); + + +$c = 123; +session_register("c"); +var_dump($baz); var_dump($arr); var_dump($c); + +session_write_close(); + +session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc")); +session_start(); +var_dump($baz); var_dump($arr); var_dump($c); + +session_destroy(); +?> +--EXPECT-- +OPEN: /tmp, PHPSESSID +READ: test +object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(2) +} +array(1) { + [3]=> + &object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(2) + } +} +WRITE: test, baz|O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:2;}arr|a:1:{i:3;O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:2;}} +CLOSE +OPEN: /tmp, PHPSESSID +READ: test +object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(3) +} +array(1) { + [3]=> + &object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(3) + } +} +int(123) +WRITE: test, baz|O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:3;}arr|a:1:{i:3;O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:3;}}c|i:123; +CLOSE +OPEN: /tmp, PHPSESSID +READ: test +object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(3) +} +array(1) { + [3]=> + object(foo)(2) { + ["bar"]=> + string(2) "ok" + ["yes"]=> + int(3) + } +} +int(123) +DESTROY: test +CLOSE -- 2.50.1