1--TEST-- 2Test session_decode() function : error functionality 3--SKIPIF-- 4<?php include('skipif.inc'); ?> 5--FILE-- 6<?php 7 8ob_start(); 9 10/* 11 * Prototype : string session_decode(void) 12 * Description : Decodes session data from a string 13 * Source code : ext/session/session.c 14 */ 15 16echo "*** Testing session_decode() : error functionality ***\n"; 17 18// Get an unset variable 19$unset_var = 10; 20unset($unset_var); 21 22class classA 23{ 24 public function __toString() { 25 return "Hello World!"; 26 } 27} 28 29$heredoc = <<<EOT 30Hello World! 31EOT; 32 33$fp = fopen(__FILE__, "r"); 34 35// Unexpected values to be passed as arguments 36$inputs = array( 37 38 // Integer data 39/*1*/ 0, 40 1, 41 12345, 42 -2345, 43 44 // Float data 45/*5*/ 10.5, 46 -10.5, 47 12.3456789000e10, 48 12.3456789000E-10, 49 .5, 50 51 // Null data 52/*10*/ NULL, 53 null, 54 55 // Boolean data 56/*12*/ true, 57 false, 58 TRUE, 59 FALSE, 60 61 // Empty strings 62/*16*/ "", 63 '', 64 65 // Invalid string data 66/*18*/ "Nothing", 67 'Nothing', 68 $heredoc, 69 70 // Object data 71/*21*/ new classA(), 72 73 // Undefined data 74/*22*/ @$undefined_var, 75 76 // Unset data 77/*23*/ @$unset_var, 78 79 // Resource variable 80/*24*/ $fp 81); 82 83var_dump(session_start()); 84$iterator = 1; 85foreach($inputs as $input) { 86 echo "\n-- Iteration $iterator --\n"; 87 var_dump(session_decode($input)); 88 var_dump($_SESSION); 89 $iterator++; 90}; 91 92var_dump(session_destroy()); 93fclose($fp); 94echo "Done"; 95ob_end_flush(); 96?> 97--EXPECTF-- 98*** Testing session_decode() : error functionality *** 99bool(true) 100 101-- Iteration 1 -- 102bool(true) 103array(0) { 104} 105 106-- Iteration 2 -- 107bool(true) 108array(0) { 109} 110 111-- Iteration 3 -- 112bool(true) 113array(0) { 114} 115 116-- Iteration 4 -- 117bool(true) 118array(0) { 119} 120 121-- Iteration 5 -- 122bool(true) 123array(0) { 124} 125 126-- Iteration 6 -- 127bool(true) 128array(0) { 129} 130 131-- Iteration 7 -- 132bool(true) 133array(0) { 134} 135 136-- Iteration 8 -- 137bool(true) 138array(0) { 139} 140 141-- Iteration 9 -- 142bool(true) 143array(0) { 144} 145 146-- Iteration 10 -- 147bool(true) 148array(0) { 149} 150 151-- Iteration 11 -- 152bool(true) 153array(0) { 154} 155 156-- Iteration 12 -- 157bool(true) 158array(0) { 159} 160 161-- Iteration 13 -- 162bool(true) 163array(0) { 164} 165 166-- Iteration 14 -- 167bool(true) 168array(0) { 169} 170 171-- Iteration 15 -- 172bool(true) 173array(0) { 174} 175 176-- Iteration 16 -- 177bool(true) 178array(0) { 179} 180 181-- Iteration 17 -- 182bool(true) 183array(0) { 184} 185 186-- Iteration 18 -- 187bool(true) 188array(0) { 189} 190 191-- Iteration 19 -- 192bool(true) 193array(0) { 194} 195 196-- Iteration 20 -- 197bool(true) 198array(0) { 199} 200 201-- Iteration 21 -- 202bool(true) 203array(0) { 204} 205 206-- Iteration 22 -- 207bool(true) 208array(0) { 209} 210 211-- Iteration 23 -- 212bool(true) 213array(0) { 214} 215 216-- Iteration 24 -- 217 218Warning: session_decode() expects parameter 1 to be string, resource given in %s on line %d 219NULL 220array(0) { 221} 222bool(true) 223Done 224