File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / output / ob_start_basic_006.phpt
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:34 2012 UTC (12 years, 2 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, HEAD
php 5.4.3+patches

    1: --TEST--
    2: ob_start(): ensure multiple buffer initialization with a single call using arrays is not supported on PHP6 (http://bugs.php.net/42641)
    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:  ---> Test arrays: 
   76: 
   77: Warning: ob_start(): array must have exactly two members in %s on line 44
   78: 
   79: Notice: ob_start(): failed to create buffer in %s on line 44
   80: bool(false)
   81: Array
   82: (
   83: )
   84: 
   85: Warning: ob_start(): class 'f' not found in %s on line 47
   86: 
   87: Notice: ob_start(): failed to create buffer in %s on line 47
   88: bool(false)
   89: Array
   90: (
   91: )
   92: 
   93: Warning: ob_start(): array must have exactly two members in %s on line 50
   94: 
   95: Notice: ob_start(): failed to create buffer in %s on line 50
   96: bool(false)
   97: Array
   98: (
   99: )
  100: 
  101: Warning: ob_start(): array must have exactly two members in %s on line 53
  102: 
  103: Notice: ob_start(): failed to create buffer in %s on line 53
  104: bool(false)
  105: Array
  106: (
  107: )
  108: 
  109: Warning: ob_start(): array must have exactly two members in %s on line 56
  110: 
  111: Notice: ob_start(): failed to create buffer in %s on line 56
  112: bool(false)
  113: Array
  114: (
  115: )
  116: C::h[call:1; len:37; id:originalID] - bool(true)
  117: Array
  118: (
  119:     [0] => C::h
  120: )
  121: 
  122: C::h[call:2; len:37; id:changedID] - bool(true)
  123: Array
  124: (
  125:     [0] => C::h
  126: )
  127: 
  128: 
  129: Warning: ob_start(): array must have exactly two members in %s on line 68
  130: 
  131: Notice: ob_start(): failed to create buffer in %s on line 68
  132: bool(false)
  133: Array
  134: (
  135: )

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