Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b97784c

Browse files
committed
[BrowserKit] Fix cookie path handling when $domain is null
1 parent 3a3f7b6 commit b97784c

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

src/Symfony/Component/BrowserKit/CookieJar.php

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -43,32 +43,21 @@ public function get($name, $path = '/', $domain = null)
4343
{
4444
$this->flushExpiredCookies();
4545

46-
if (!empty($domain)) {
47-
foreach ($this->cookieJar as $cookieDomain => $pathCookies) {
48-
if ($cookieDomain) {
49-
$cookieDomain = '.'.ltrim($cookieDomain, '.');
50-
if ($cookieDomain != substr('.'.$domain, -strlen($cookieDomain))) {
51-
continue;
52-
}
53-
}
54-
55-
foreach ($pathCookies as $cookiePath => $namedCookies) {
56-
if ($cookiePath != substr($path, 0, strlen($cookiePath))) {
57-
continue;
58-
}
59-
if (isset($namedCookies[$name])) {
60-
return $namedCookies[$name];
61-
}
46+
foreach ($this->cookieJar as $cookieDomain => $pathCookies) {
47+
if ($cookieDomain && $domain) {
48+
$cookieDomain = '.'.ltrim($cookieDomain, '.');
49+
if ($cookieDomain != substr('.'.$domain, -strlen($cookieDomain))) {
50+
continue;
6251
}
6352
}
6453

65-
return;
66-
}
67-
68-
// avoid relying on this behavior that is mainly here for BC reasons
69-
foreach ($this->cookieJar as $cookies) {
70-
if (isset($cookies[$path][$name])) {
71-
return $cookies[$path][$name];
54+
foreach ($pathCookies as $cookiePath => $namedCookies) {
55+
if ($cookiePath != substr($path, 0, strlen($cookiePath))) {
56+
continue;
57+
}
58+
if (isset($namedCookies[$name])) {
59+
return $namedCookies[$name];
60+
}
7261
}
7362
}
7463
}

src/Symfony/Component/BrowserKit/Tests/CookieJarTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,8 @@ public function testCookieGetWithSubdirectory()
237237
$this->assertEquals($cookie1, $cookieJar->get('foo', '/test', 'example.com'));
238238
$this->assertEquals($cookie2, $cookieJar->get('foo1', '/', 'example.com'));
239239
$this->assertEquals($cookie2, $cookieJar->get('foo1', '/bar', 'example.com'));
240+
241+
$this->assertEquals($cookie2, $cookieJar->get('foo1', '/bar'));
240242
}
241243

242244
public function testCookieWithWildcardDomain()

0 commit comments

Comments
 (0)