8000 [Routing] fix router base url when default uri has trailing slash · symfony/symfony@07136a9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 07136a9

Browse files
committed
[Routing] fix router base url when default uri has trailing slash
1 parent cb6e26f commit 07136a9

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

src/Symfony/Component/Routing/RequestContext.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public function getBaseUrl()
9898
*/
9999
public function setBaseUrl(string $baseUrl)
100100
{
101-
$this->baseUrl = $baseUrl;
101+
$this->baseUrl = rtrim($baseUrl, '/');
102102

103103
return $this;
104104
}

src/Symfony/Component/Routing/Tests/RequestContextTest.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,51 @@ public function testConstruct()
4040
$this->assertEquals('bar=foobar', $requestContext->getQueryString());
4141
}
4242

43+
public function testFromUriWithBaseUrl()
44+
{
45+
$requestContext = RequestContext::fromUri('https://test.com:444/index.php');
46+
47+
$this->assertSame('GET', $requestContext->getMethod());
48+
$this->assertSame('https', $requestContext->getScheme());
49+
$this->assertSame('test.com', $requestContext->getHost());
50+
$this->assertSame('/index.php', $requestContext->getBaseUrl());
51+
$this->assertSame('/', $requestContext->getPathInfo());
52+
$this->assertSame(80, $requestContext->getHttpPort());
53+
$this->assertSame(444, $requestContext->getHttpsPort());
54+
}
55+
56+
public function testFromUriWithTrailingSlash()
57+
{
58+
$requestContext = RequestContext::fromUri('http://test.com:8080/');
59+
60+
$this->assertSame('http', $requestContext->getScheme());
61+
$this->assertSame('test.com', $requestContext->getHost());
62+
$this->assertSame(8080, $requestContext->getHttpPort());
63+
$this->assertSame(443, $requestContext->getHttpsPort());
64+
$this->assertSame('', $requestContext->getBaseUrl());
65+
$this->assertSame('/', $requestContext->getPathInfo());
66+
}
67+
68+
public function testFromUriWithoutTrailingSlash()
69+
{
70+
$requestContext = RequestContext::fromUri('https://test.com');
71+
72+
$this->assertSame('https', $requestContext->getScheme());
73+
$this->assertSame('test.com', $requestContext->getHost());
74+
$this->assertSame('', $requestContext->getBaseUrl());
75+
$this->assertSame('/', $requestContext->getPathInfo());
76+
}
77+
78+
public function testFromUriBeingEmpty()
79+
{
80+
$requestContext = RequestContext::fromUri('');
81+
82+
$this->assertSame('http', $requestContext->getScheme());
83+
$this->assertSame('localhost', $requestContext->getHost());
84+
$this->assertSame('', $requestContext->getBaseUrl());
85+
$this->assertSame('/', $requestContext->getPathInfo());
86+
}
87+
4388
public function testFromRequest()
4489
{
4590
$request = Request::create('https://test.com:444/foo?bar=baz');

0 commit comments

Comments
 (0)
0