From b07eb6837a325038130d15249358c583418b2d94 Mon Sep 17 00:00:00 2001 From: Mark Story Date: Wed, 4 Jan 2017 21:58:45 -0500 Subject: [PATCH] Fix Uri query string not getting set. When the `url` option is used, the query string if present should be set into the Uri instance. This makes it match up with the `query` property. --- src/Http/ServerRequest.php | 3 +++ tests/TestCase/Network/RequestTest.php | 1 + 2 files changed, 4 insertions(+) diff --git a/src/Http/ServerRequest.php b/src/Http/ServerRequest.php index a19a4b0f78f..1404efe9db1 100644 --- a/src/Http/ServerRequest.php +++ b/src/Http/ServerRequest.php @@ -314,6 +314,9 @@ protected function _setConfig($config) if ($config['url']) { $uri = $uri->withPath('/' . $config['url']); } + if (strlen($querystr)) { + $uri = $uri->withQuery($querystr); + } $this->uri = $uri; $this->base = $config['base']; diff --git a/tests/TestCase/Network/RequestTest.php b/tests/TestCase/Network/RequestTest.php index f4b547f14fc..d9f8bff4fe8 100644 --- a/tests/TestCase/Network/RequestTest.php +++ b/tests/TestCase/Network/RequestTest.php @@ -172,6 +172,7 @@ public function testQueryStringParsingFromInputUrl() $expected = ['one' => 'something', 'two' => 'else']; $this->assertEquals($expected, $request->query); $this->assertEquals('some/path', $request->url); + $this->assertEquals('one=something&two=else', $request->getUri()->getQuery()); } /**