Annotation of embedaddon/php/ext/session/tests/005.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: custom save handler, multiple session_start()s, complex data structure test.
! 3: --SKIPIF--
! 4: <?php include('skipif.inc'); ?>
! 5: --INI--
! 6: session.use_cookies=0
! 7: session.cache_limiter=
! 8: register_globals=1
! 9: session.name=PHPSESSID
! 10: session.serialize_handler=php
! 11: --FILE--
! 12: <?php
! 13:
! 14: error_reporting(E_ALL);
! 15:
! 16: class handler {
! 17: public $data = 'baz|O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:1;}arr|a:1:{i:3;O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:1;}}';
! 18: function open($save_path, $session_name)
! 19: {
! 20: print "OPEN: $session_name\n";
! 21: return true;
! 22: }
! 23: function close()
! 24: {
! 25: print "CLOSE\n";
! 26: return true;
! 27: }
! 28: function read($key)
! 29: {
! 30: print "READ: $key\n";
! 31: return $GLOBALS["hnd"]->data;
! 32: }
! 33:
! 34: function write($key, $val)
! 35: {
! 36: print "WRITE: $key, $val\n";
! 37: $GLOBALS["hnd"]->data = $val;
! 38: return true;
! 39: }
! 40:
! 41: function destroy($key)
! 42: {
! 43: print "DESTROY: $key\n";
! 44: return true;
! 45: }
! 46:
! 47: function gc() { return true; }
! 48: }
! 49:
! 50: $hnd = new handler;
! 51:
! 52: class foo {
! 53: public $bar = "ok";
! 54: function method() { $this->yes++; }
! 55: }
! 56:
! 57: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
! 58:
! 59: session_id("abtest");
! 60: session_start();
! 61: $baz->method();
! 62: $arr[3]->method();
! 63:
! 64: var_dump($baz);
! 65: var_dump($arr);
! 66:
! 67: session_write_close();
! 68:
! 69: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
! 70: session_start();
! 71: $baz->method();
! 72: $arr[3]->method();
! 73:
! 74:
! 75: $c = 123;
! 76: session_register("c");
! 77: var_dump($baz); var_dump($arr); var_dump($c);
! 78:
! 79: session_write_close();
! 80:
! 81: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
! 82: session_start();
! 83: var_dump($baz); var_dump($arr); var_dump($c);
! 84:
! 85: session_destroy();
! 86: ?>
! 87: --EXPECTF--
! 88: Deprecated: Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0
! 89: OPEN: PHPSESSID
! 90: READ: abtest
! 91: object(foo)#2 (2) {
! 92: ["bar"]=>
! 93: string(2) "ok"
! 94: ["yes"]=>
! 95: int(2)
! 96: }
! 97: array(1) {
! 98: [3]=>
! 99: object(foo)#3 (2) {
! 100: ["bar"]=>
! 101: string(2) "ok"
! 102: ["yes"]=>
! 103: int(2)
! 104: }
! 105: }
! 106: WRITE: abtest, 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;}}
! 107: CLOSE
! 108: OPEN: PHPSESSID
! 109: READ: abtest
! 110:
! 111: Deprecated: Function session_register() is deprecated in %s on line %d
! 112: object(foo)#4 (2) {
! 113: ["bar"]=>
! 114: string(2) "ok"
! 115: ["yes"]=>
! 116: int(3)
! 117: }
! 118: array(1) {
! 119: [3]=>
! 120: object(foo)#2 (2) {
! 121: ["bar"]=>
! 122: string(2) "ok"
! 123: ["yes"]=>
! 124: int(3)
! 125: }
! 126: }
! 127: int(123)
! 128: WRITE: abtest, 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;
! 129: CLOSE
! 130: OPEN: PHPSESSID
! 131: READ: abtest
! 132: object(foo)#3 (2) {
! 133: ["bar"]=>
! 134: string(2) "ok"
! 135: ["yes"]=>
! 136: int(3)
! 137: }
! 138: array(1) {
! 139: [3]=>
! 140: object(foo)#4 (2) {
! 141: ["bar"]=>
! 142: string(2) "ok"
! 143: ["yes"]=>
! 144: int(3)
! 145: }
! 146: }
! 147: int(123)
! 148: DESTROY: abtest
! 149: CLOSE
! 150:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>