8000 Update getAbsoluteUri() for query string uris · symfony/symfony@965408f · GitHub
[go: up one dir, main page]

Skip to content

Commit 965408f

Browse files
committed
Update getAbsoluteUri() for query string uris
Apply same rules to query string only URIs as what's being used for URIs containing only hash/anchor values
1 parent b7ed32a commit 965408f

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/Symfony/Component/BrowserKit/Client.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -522,9 +522,9 @@ protected function getAbsoluteUri($uri)
522522
return parse_url($currentUri, PHP_URL_SCHEME).':'.$uri;
523523
}
524524

525-
// anchor?
526-
if (!$uri || '#' == $uri[0]) {
527-
return preg_replace('/#.*?$/', '', $currentUri).$uri;
525+
// anchor or query string parameters?
526+
if (!$uri || '#' == $uri[0] || '?' == $uri[0]) {
527+
return preg_replace('/[#?].*?$/', '', $currentUri).$uri;
528528
}
529529

530530
if ('/' !== $uri[0]) {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,15 @@ public function testRequestURIConversion()
212212
$client->request('GET', 'http://www.example.com/');
213213
$client->request('GET', 'http');
214214
$this->assertEquals('http://www.example.com/http', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
215+
216+
$client = new TestClient();
217+
$client->request('GET', 'http://www.example.com/foo');
218+
$client->request('GET', '?');
219+
$this->assertEquals('http://www.example.com/foo?', $client->getRequest()->getUri(), '->request() uses the previous request for ?');
220+
$client->request('GET', '?');
221+
$this->assertEquals('http://www.example.com/foo?', $client->getRequest()->getUri(), '->request() uses the previous request for ?');
222+
$client->request('GET', '?foo=bar');
223+
$this->assertEquals('http://www.example.com/foo?foo=bar', $client->getRequest()->getUri(), '->request() uses the previous request for ?');
215224
}
216225

217226
public function testRequestReferer()

0 commit comments

Comments
 (0)
0