1--TEST-- 2setcookie() tests 3--DESCRIPTION-- 4--INI-- 5date.timezone=UTC 6--FILE-- 7<?php 8setcookie('name'); 9setcookie('name', 'value'); 10setcookie('name', 'space value'); 11setcookie('name', 'value', 0); 12setcookie('name', 'value', $tsp = time() + 5); 13setcookie('name', 'value', $tsn = time() - 6); 14setcookie('name', 'value', $tsc = time()); 15setcookie('name', 'value', 0, '/path/'); 16setcookie('name', 'value', 0, '', 'domain.tld'); 17setcookie('name', 'value', 0, '', '', TRUE); 18setcookie('name', 'value', 0, '', '', FALSE, TRUE); 19 20 21$expected = array( 22 'Set-Cookie: name=', 23 'Set-Cookie: name=value', 24 'Set-Cookie: name=space+value', 25 'Set-Cookie: name=value', 26 'Set-Cookie: name=value; expires='.date('D, d-M-Y H:i:s', $tsp).' GMT; Max-Age=5', 27 'Set-Cookie: name=value; expires='.date('D, d-M-Y H:i:s', $tsn).' GMT; Max-Age=-6', 28 'Set-Cookie: name=value; expires='.date('D, d-M-Y H:i:s', $tsc).' GMT; Max-Age=0', 29 'Set-Cookie: name=value; path=/path/', 30 'Set-Cookie: name=value; domain=domain.tld', 31 'Set-Cookie: name=value; secure', 32 'Set-Cookie: name=value; httponly' 33); 34 35$headers = headers_list(); 36if (($i = count($expected)) > count($headers)) 37{ 38 echo "Less headers are being sent than expected - aborting"; 39 return; 40} 41 42do 43{ 44 if (strncmp(current($headers), 'Set-Cookie:', 11) !== 0) 45 { 46 continue; 47 } 48 49 if (current($headers) === current($expected)) 50 { 51 $i--; 52 } 53 else 54 { 55 echo "Header mismatch:\n\tExpected: " 56 .current($expected) 57 ."\n\tReceived: ".current($headers)."\n"; 58 } 59 60 next($expected); 61} 62while (next($headers) !== FALSE); 63 64echo ($i === 0) 65 ? 'OK' 66 : 'A total of '.$i.' errors found.'; 67--EXPECTHEADERS-- 68 69--EXPECT-- 70OK