Annotation of embedaddon/php/tests/output/ob_start_basic_006.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: ob_start(): multiple buffer initialization with a single call, using arrays.
                      3: --FILE--
                      4: <?php
                      5: /* 
                      6:  * proto bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]])
                      7:  * Function is implemented in main/output.c
                      8: */ 
                      9: 
                     10: function f($string) {
                     11:        static $i=0;
                     12:        $i++;
                     13:        $len = strlen($string);
                     14:        return "f[call:$i; len:$len] - $string\n";
                     15: }
                     16: 
                     17: Class C {
                     18:        public $id = 'none';
                     19: 
                     20:        function __construct($id) {
                     21:                $this->id = $id;
                     22:        }
                     23: 
                     24:        static function g($string) {
                     25:                static $i=0;
                     26:                $i++;
                     27:                $len = strlen($string);
                     28:                return "C::g[call:$i; len:$len] - $string\n";
                     29:        }
                     30:        
                     31:        function h($string) {
                     32:                static $i=0;
                     33:                $i++;
                     34:                $len = strlen($string);
                     35:                return "C::h[call:$i; len:$len; id:$this->id] - $string\n";
                     36:        }
                     37: }
                     38: 
                     39: function checkAndClean() {
                     40:   print_r(ob_list_handlers());
                     41:   while (ob_get_level()>0) {
                     42:     ob_end_flush();
                     43:   }
                     44: }
                     45: 
                     46: echo "\n ---> Test arrays: \n";
                     47: var_dump(ob_start(array("f")));
                     48: checkAndClean();
                     49: 
                     50: var_dump(ob_start(array("f", "f")));
                     51: checkAndClean();
                     52: 
                     53: var_dump(ob_start(array("f", "C::g", "f", "C::g")));
                     54: checkAndClean();
                     55: 
                     56: var_dump(ob_start(array("f", "non_existent", "f")));
                     57: checkAndClean();
                     58: 
                     59: var_dump(ob_start(array("f", "non_existent", "f", "f")));
                     60: checkAndClean();
                     61: 
                     62: $c = new c('originalID');
                     63: var_dump(ob_start(array($c, "h")));
                     64: checkAndClean();
                     65: 
                     66: var_dump(ob_start(array($c, "h")));
                     67: $c->id = 'changedID';
                     68: checkAndClean();
                     69: 
                     70: $c->id = 'changedIDagain';
                     71: var_dump(ob_start(array('f', 'C::g', array(array($c, "g"), array($c, "h")))));
                     72: checkAndClean();
                     73: ?>
                     74: --EXPECTF--
                     75: 
                     76:  ---> Test arrays: 
                     77: f[call:1; len:34] - bool(true)
                     78: Array
                     79: (
                     80:     [0] => f
                     81: )
                     82: 
                     83: f[call:3; len:68] - f[call:2; len:47] - bool(true)
                     84: Array
                     85: (
                     86:     [0] => f
                     87:     [1] => f
                     88: )
                     89: 
                     90: 
                     91: f[call:5; len:150] - C::g[call:2; len:125] - f[call:4; len:103] - C::g[call:1; len:79] - bool(true)
                     92: Array
                     93: (
                     94:     [0] => f
                     95:     [1] => C::g
                     96:     [2] => f
                     97:     [3] => C::g
                     98: )
                     99: 
                    100: 
                    101: 
                    102: 
                    103: f[call:6; len:35] - bool(false)
                    104: Array
                    105: (
                    106:     [0] => f
                    107: )
                    108: 
                    109: f[call:7; len:35] - bool(false)
                    110: Array
                    111: (
                    112:     [0] => f
                    113: )
                    114: 
                    115: C::h[call:1; len:37; id:originalID] - bool(true)
                    116: Array
                    117: (
                    118:     [0] => C::h
                    119: )
                    120: 
                    121: C::h[call:2; len:37; id:changedID] - bool(true)
                    122: Array
                    123: (
                    124:     [0] => C::h
                    125: )
                    126: 
                    127: f[call:8; len:175] - C::g[call:4; len:150] - C::g[call:3; len:125] - C::h[call:3; len:82; id:changedIDagain] - bool(true)
                    128: Array
                    129: (
                    130:     [0] => f
                    131:     [1] => C::g
                    132:     [2] => C::g
                    133:     [3] => C::h
                    134: )

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