Skip to content

Commit abe3304

Browse files
committed
Logical fixes & new tests
1 parent 4700d38 commit abe3304

2 files changed

Lines changed: 19 additions & 12 deletions

File tree

src/Http/Adapter/Swoole/Request.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,8 @@ public function getCookie(string $key, string $default = ''): string
260260
$cookie = \trim($cookie);
261261
[$cookieKey, $cookieValue] = \explode('=', $cookie, 2);
262262
$cookieKey = \trim($cookieKey);
263-
$cookieKey = \strtolower($cookieKey);
264263
$cookieValue = \trim($cookieValue);
265-
if ($cookieValue === $key) {
264+
if ($cookieKey === $key) {
266265
return $cookieValue;
267266
}
268267
}

tests/e2e/BaseTest.php

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,33 @@ public function testFile()
3838

3939
public function testCookie()
4040
{
41+
// One cookie
4142
$cookie = 'cookie1=value1';
42-
$response = $this->client->call(Client::METHOD_GET, '/cookies', [
43-
'Cookie: ' . $cookie
44-
]);
43+
$response = $this->client->call(Client::METHOD_GET, '/cookies', [ 'Cookie: ' . $cookie ]);
4544
$this->assertEquals(200, $response['headers']['status-code']);
4645
$this->assertEquals($cookie, $response['body']);
4746

47+
// Two cookiees
4848
$cookie = 'cookie1=value1; cookie2=value2';
49-
$response = $this->client->call(Client::METHOD_GET, '/cookies', [
50-
'Cookie: ' . $cookie
51-
]);
49+
$response = $this->client->call(Client::METHOD_GET, '/cookies', [ 'Cookie: ' . $cookie ]);
5250
$this->assertEquals(200, $response['headers']['status-code']);
5351
$this->assertEquals($cookie, $response['body']);
5452

55-
53+
// Two cookies without optional space
5654
$cookie = 'cookie1=value1;cookie2=value2';
57-
$response = $this->client->call(Client::METHOD_GET, '/cookies', [
58-
'Cookie: ' . $cookie
59-
]);
55+
$response = $this->client->call(Client::METHOD_GET, '/cookies', [ 'Cookie: ' . $cookie ]);
56+
$this->assertEquals(200, $response['headers']['status-code']);
57+
$this->assertEquals($cookie, $response['body']);
58+
59+
// Cookie with "=" in value
60+
$cookie = 'cookie1=value1=value2';
61+
$response = $this->client->call(Client::METHOD_GET, '/cookies', [ 'Cookie: ' . $cookie ]);
62+
$this->assertEquals(200, $response['headers']['status-code']);
63+
$this->assertEquals($cookie, $response['body']);
64+
65+
// Case sensitivity for cookie names
66+
$cookie = 'cookie1=v1; Cookie1=v2';
67+
$response = $this->client->call(Client::METHOD_GET, '/cookies', [ 'Cookie: ' . $cookie ]);
6068
$this->assertEquals(200, $response['headers']['status-code']);
6169
$this->assertEquals($cookie, $response['body']);
6270
}

0 commit comments

Comments
 (0)