Annotation of embedaddon/php/ext/session/tests/004.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: session_set_save_handler test
                      3: --SKIPIF--
                      4: <?php include('skipif.inc'); ?>
                      5: --INI--
                      6: session.use_cookies=0
                      7: session.cache_limiter=
                      8: session.name=PHPSESSID
                      9: session.serialize_handler=php
                     10: --FILE--
                     11: <?php
                     12: error_reporting(E_ALL);
                     13: 
                     14: class handler {
                     15:     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;}}';
                     16:     function open($save_path, $session_name)
                     17:     {
                     18:         print "OPEN: $session_name\n";
                     19:         return true;
                     20:     }
                     21:     function close()
                     22:     {
                     23:         return true;
                     24:     }
                     25:     function read($key)
                     26:     {
                     27:         print "READ: $key\n";
                     28:         return $GLOBALS["hnd"]->data;
                     29:     }
                     30: 
                     31:     function write($key, $val)
                     32:     {
                     33:         print "WRITE: $key, $val\n";
                     34:                $GLOBALS["hnd"]->data = $val;
                     35:         return true;
                     36:     }
                     37: 
                     38:     function destroy($key)
                     39:     {
                     40:         print "DESTROY: $key\n";
                     41:         return true;
                     42:     }
                     43: 
                     44:     function gc() { return true; }
                     45: }
                     46: 
                     47: $hnd = new handler;
                     48: 
                     49: class foo {
                     50:     public $bar = "ok";
                     51:     function method() { $this->yes++; }
                     52: }
                     53: 
                     54: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
                     55: 
                     56: session_id("abtest");
                     57: session_start();
1.1.1.2 ! misho      58: $_SESSION["baz"]->method();
        !            59: $_SESSION["arr"][3]->method();
1.1       misho      60: 
1.1.1.2 ! misho      61: var_dump($_SESSION["baz"]);
        !            62: var_dump($_SESSION["arr"]);
1.1       misho      63: 
                     64: session_write_close();
                     65: 
                     66: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
                     67: session_start();
                     68: 
1.1.1.2 ! misho      69: var_dump($_SESSION["baz"]);
        !            70: var_dump($_SESSION["arr"]);
1.1       misho      71: 
                     72: session_destroy();
                     73: ?>
                     74: --EXPECT--
                     75: OPEN: PHPSESSID
                     76: READ: abtest
                     77: object(foo)#2 (2) {
                     78:   ["bar"]=>
                     79:   string(2) "ok"
                     80:   ["yes"]=>
                     81:   int(2)
                     82: }
                     83: array(1) {
                     84:   [3]=>
                     85:   object(foo)#3 (2) {
                     86:     ["bar"]=>
                     87:     string(2) "ok"
                     88:     ["yes"]=>
                     89:     int(2)
                     90:   }
                     91: }
                     92: 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;}}
                     93: OPEN: PHPSESSID
                     94: READ: abtest
1.1.1.2 ! misho      95: object(foo)#3 (2) {
1.1       misho      96:   ["bar"]=>
                     97:   string(2) "ok"
                     98:   ["yes"]=>
                     99:   int(2)
                    100: }
                    101: array(1) {
                    102:   [3]=>
                    103:   object(foo)#2 (2) {
                    104:     ["bar"]=>
                    105:     string(2) "ok"
                    106:     ["yes"]=>
                    107:     int(2)
                    108:   }
                    109: }
                    110: DESTROY: abtest

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>