From e1355001abaa69dcc7dbc0949b6113cb25b50baf Mon Sep 17 00:00:00 2001 From: Thomas Flori <thflori@gmail.com> Date: Wed, 8 Aug 2018 07:05:56 +0200 Subject: [PATCH] test path functions --- src/ServerRequest.php | 2 +- tests/ServerRequestTest.php | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/ServerRequest.php b/src/ServerRequest.php index 404655c..7115682 100644 --- a/src/ServerRequest.php +++ b/src/ServerRequest.php @@ -413,6 +413,6 @@ class ServerRequest extends Request implements ServerRequestInterface */ public function getBase(): string { - return dirname($this->getServerParams()['SCRIPT_NAME']); + return dirname($this->getServerParams()['SCRIPT_NAME'] ?? '/index.php'); } } diff --git a/tests/ServerRequestTest.php b/tests/ServerRequestTest.php index 9e30186..3a8b322 100644 --- a/tests/ServerRequestTest.php +++ b/tests/ServerRequestTest.php @@ -453,6 +453,14 @@ class ServerRequestTest extends TestCase $this->assertSame($params, $request2->getCookieParams()); } + public function testGetCookie() + { + $request = (new ServerRequest('GET', '/'))->withCookieParams(['name' => 'value']); + + $this->assertTrue($request->hasCookie('name')); + $this->assertSame('value', $request->getCookie('name')); + } + public function testQueryParams() { $request1 = new ServerRequest('GET', '/'); @@ -519,4 +527,25 @@ class ServerRequestTest extends TestCase $this->assertSame([], $requestWithoutAttribute->getAttributes()); $this->assertSame('different-default', $requestWithoutAttribute->getAttribute('name', 'different-default')); } + + public function testGetBaseWithoutScriptName() + { + $request = new ServerRequest('GET', '/'); + + $this->assertSame('/', $request->getBase()); + } + + public function testGetBaseWithScriptName() + { + $request = new ServerRequest('GET', '/shop/product/42', [], null, '1.1', ['SCRIPT_NAME' => '/shop/index.php']); + + self::assertSame('/shop', $request->getBase()); + } + + public function testGetRelativePath() + { + $request = new ServerRequest('GET', '/shop/product/42', [], null, '1.1', ['SCRIPT_NAME' => '/shop/index.php']); + + self::assertSame('/product/42', $request->getRelativePath()); + } } -- GitLab