File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / output / ob_start_basic_006.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by misho
Branches: php, MAIN
CVS tags: v5_3_10, HEAD
php

    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>