@@ -14,4 +14,41 @@ public function setUp(): void
1414 {
1515 $ this ->client = new Client ('http://fpm ' );
1616 }
17+
18+ /**
19+ * Override cookie test for FPM specific behavior
20+ * FPM preserves original cookie format while Swoole normalizes it
21+ */
22+ public function testCookie ()
23+ {
24+ // One cookie
25+ $ cookie = 'cookie1=value1 ' ;
26+ $ response = $ this ->client ->call (Client::METHOD_GET , '/cookies ' , [ 'Cookie ' => $ cookie ]);
27+ $ this ->assertEquals (200 , $ response ['headers ' ]['status-code ' ]);
28+ $ this ->assertEquals ($ cookie , $ response ['body ' ]);
29+
30+ // Two cookies with space (FPM preserves original format)
31+ $ cookie = 'cookie1=value1; cookie2=value2 ' ;
32+ $ response = $ this ->client ->call (Client::METHOD_GET , '/cookies ' , [ 'Cookie ' => $ cookie ]);
33+ $ this ->assertEquals (200 , $ response ['headers ' ]['status-code ' ]);
34+ $ this ->assertEquals ($ cookie , $ response ['body ' ]);
35+
36+ // Two cookies without space (FPM preserves original format)
37+ $ cookie = 'cookie1=value1;cookie2=value2 ' ;
38+ $ response = $ this ->client ->call (Client::METHOD_GET , '/cookies ' , [ 'Cookie ' => $ cookie ]);
39+ $ this ->assertEquals (200 , $ response ['headers ' ]['status-code ' ]);
40+ $ this ->assertEquals ($ cookie , $ response ['body ' ]);
41+
42+ // Cookie with "=" in value
43+ $ cookie = 'cookie1=value1=value2 ' ;
44+ $ response = $ this ->client ->call (Client::METHOD_GET , '/cookies ' , [ 'Cookie ' => $ cookie ]);
45+ $ this ->assertEquals (200 , $ response ['headers ' ]['status-code ' ]);
46+ $ this ->assertEquals ($ cookie , $ response ['body ' ]);
47+
48+ // Case sensitivity for cookie names
49+ $ cookie = 'cookie1=v1; Cookie1=v2 ' ;
50+ $ response = $ this ->client ->call (Client::METHOD_GET , '/cookies ' , [ 'Cookie ' => $ cookie ]);
51+ $ this ->assertEquals (200 , $ response ['headers ' ]['status-code ' ]);
52+ $ this ->assertEquals ($ cookie , $ response ['body ' ]);
53+ }
1754}
0 commit comments