@@ -18,12 +18,12 @@ $old = headers_list();
1818$ response = new Http \Response ;
1919
2020
21- $ response ->setCookie ('test ' , 'value ' , 0 );
21+ $ response ->setCookie ('test ' , 'value ' , null );
2222$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
2323Assert::same (['Set-Cookie: test=value; path=/; HttpOnly; SameSite=Lax ' ], $ headers );
2424
2525
26- $ response ->setCookie ('test ' , 'newvalue ' , 0 );
26+ $ response ->setCookie ('test ' , 'newvalue ' , null );
2727$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
2828Assert::same (['Set-Cookie: test=value; path=/; HttpOnly; SameSite=Lax ' , 'Set-Cookie: test=newvalue; path=/; HttpOnly; SameSite=Lax ' ], $ headers );
2929
@@ -32,19 +32,19 @@ Assert::same(['Set-Cookie: test=value; path=/; HttpOnly; SameSite=Lax', 'Set-Coo
3232$ response = new Http \Response ;
3333$ response ->cookiePath = '/foo ' ;
3434$ old = headers_list ();
35- $ response ->setCookie ('test ' , 'a ' , 0 );
35+ $ response ->setCookie ('test ' , 'a ' , null );
3636$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
3737Assert::same (['Set-Cookie: test=a; path=/foo; HttpOnly; SameSite=Lax ' ], $ headers );
3838
3939// cookiePath + path
4040$ old = headers_list ();
41- $ response ->setCookie ('test ' , 'b ' , 0 , '/bar ' );
41+ $ response ->setCookie ('test ' , 'b ' , null , '/bar ' );
4242$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
4343Assert::same (['Set-Cookie: test=b; path=/bar; HttpOnly; SameSite=Lax ' ], $ headers );
4444
4545// cookiePath + domain
4646$ old = headers_list ();
47- $ response ->setCookie ('test ' , 'c ' , 0 , null , 'nette.org ' );
47+ $ response ->setCookie ('test ' , 'c ' , null , null , 'nette.org ' );
4848$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
4949Assert::same (['Set-Cookie: test=c; path=/; domain=nette.org; HttpOnly; SameSite=Lax ' ], $ headers );
5050
@@ -53,18 +53,30 @@ Assert::same(['Set-Cookie: test=c; path=/; domain=nette.org; HttpOnly; SameSite=
5353$ response = new Http \Response ;
5454$ response ->cookieDomain = 'nette.org ' ;
5555$ old = headers_list ();
56- $ response ->setCookie ('test ' , 'd ' , 0 );
56+ $ response ->setCookie ('test ' , 'd ' , null );
5757$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
5858Assert::same (['Set-Cookie: test=d; path=/; domain=nette.org; HttpOnly; SameSite=Lax ' ], $ headers );
5959
6060// cookieDomain + path
6161$ old = headers_list ();
62- $ response ->setCookie ('test ' , 'e ' , 0 , '/bar ' );
62+ $ response ->setCookie ('test ' , 'e ' , null , '/bar ' );
6363$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
6464Assert::same (['Set-Cookie: test=e; path=/bar; HttpOnly; SameSite=Lax ' ], $ headers );
6565
6666// cookieDomain + domain
6767$ old = headers_list ();
68- $ response ->setCookie ('test ' , 'f ' , 0 , null , 'example.org ' );
68+ $ response ->setCookie ('test ' , 'f ' , null , null , 'example.org ' );
6969$ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
7070Assert::same (['Set-Cookie: test=f; path=/; domain=example.org; HttpOnly; SameSite=Lax ' ], $ headers );
71+
72+
73+ // integer 0 is deprecated, but kept as a session cookie for BC
74+ $ response = new Http \Response ;
75+ $ old = headers_list ();
76+ Assert::error (
77+ fn () => $ response ->setCookie ('test ' , 'g ' , 0 ),
78+ E_USER_DEPRECATED ,
79+ 'Passing 0 as $expire is deprecated; use null for a session cookie. ' ,
80+ );
81+ $ headers = array_values (array_diff (headers_list (), $ old , ['Set-Cookie: ' ]));
82+ Assert::same (['Set-Cookie: test=g; path=/; HttpOnly; SameSite=Lax ' ], $ headers );
0 commit comments