1--TEST--
2Test session_regenerate_id() function : basic functionality
3--SKIPIF--
4<?php
5
6include('skipif.inc');
7
8require __DIR__.'/../../../sapi/cgi/tests/include.inc';
9
10get_cgi_path() or die('skip no cgi');
11
12?>
13--FILE--
14<?php
15
16/*
17 * Prototype : bool session_regenerate_id([bool $delete_old_session])
18 * Description : Update the current session id with a newly generated one
19 * Source code : ext/session/session.c
20 */
21
22echo "*** Testing session_regenerate_id() : basic functionality for cookie ***\n";
23
24require __DIR__.'/../../../sapi/cgi/tests/include.inc';
25
26$php = get_cgi_path();
27reset_env_vars();
28
29$file = __DIR__."/session_regenerate_id_cookie.test.php";
30
31file_put_contents($file, '<?php
32ob_start();
33
34function find_cookie_header() {
35	$headers = headers_list();
36	$target  = "Set-Cookie: PHPSESSID=";
37	foreach ($headers as $h) {
38		if (strstr($h, $target) !== FALSE) {
39			echo $h."\n";
40			return TRUE;
41		}
42	}
43	var_dump($headers);
44	return FALSE;
45}
46
47var_dump(session_start());
48var_dump(find_cookie_header());
49$id = session_id();
50var_dump(session_regenerate_id());
51var_dump(find_cookie_header());
52var_dump($id !== session_id());
53var_dump(session_id());
54var_dump(session_destroy());
55
56ob_end_flush();
57?>');
58
59var_dump(`$php -n -d session.name=PHPSESSID $file`);
60
61unlink($file);
62
63echo "Done";
64?>
65--EXPECTF--
66*** Testing session_regenerate_id() : basic functionality for cookie ***
67string(%d) "X-Powered-By: PHP/7.%s
68Expires: %s
69Cache-Control: no-store, no-cache, must-revalidate
70Pragma: no-cache
71Set-Cookie: PHPSESSID=%s; path=/
72Content-type: text/html; charset=UTF-8
73
74bool(true)
75Set-Cookie: PHPSESSID=%s; path=/
76bool(true)
77bool(true)
78Set-Cookie: PHPSESSID=%s; path=/
79bool(true)
80bool(true)
81string(32) "%s"
82bool(true)
83"
84Done
85