|
3 | 3 | namespace CodeIgniter\HTTP; |
4 | 4 |
|
5 | 5 | use Config\App; |
| 6 | +use CodeIgniter\Config\Config; |
6 | 7 | use CodeIgniter\Config\Services; |
7 | 8 | use CodeIgniter\Validation\Validation; |
8 | 9 | use CodeIgniter\Router\RouteCollection; |
@@ -57,14 +58,14 @@ public function testRedirectRoute() |
57 | 58 | $response->route('exampleRoute'); |
58 | 59 |
|
59 | 60 | $this->assertTrue($response->hasHeader('Location')); |
60 | | - $this->assertEquals('http://example.com/exampleRoute', $response->getHeaderLine('Location')); |
| 61 | + $this->assertEquals('http://example.com/index.php/exampleRoute', $response->getHeaderLine('Location')); |
61 | 62 |
|
62 | 63 | $this->routes->add('exampleRoute', 'Home::index', ['as' => 'home']); |
63 | 64 |
|
64 | 65 | $response->route('home'); |
65 | 66 |
|
66 | 67 | $this->assertTrue($response->hasHeader('Location')); |
67 | | - $this->assertEquals('http://example.com/exampleRoute', $response->getHeaderLine('Location')); |
| 68 | + $this->assertEquals('http://example.com/index.php/exampleRoute', $response->getHeaderLine('Location')); |
68 | 69 | } |
69 | 70 |
|
70 | 71 | public function testRedirectRouteBad() |
@@ -186,4 +187,27 @@ public function testRedirectBackMissing() |
186 | 187 | $this->assertSame($response, $returned); |
187 | 188 | } |
188 | 189 |
|
| 190 | + /** |
| 191 | + * @see https://github.com/codeigniter4/CodeIgniter4/issues/2119 |
| 192 | + */ |
| 193 | + public function testRedirectRouteBaseUrl() |
| 194 | + { |
| 195 | + $config = new App(); |
| 196 | + $config->baseURL = 'http://example.com/test/'; |
| 197 | + Config::injectMock('App', $config); |
| 198 | + |
| 199 | + $request = new MockIncomingRequest($config, new URI('http://example.com/test/'), null, new UserAgent()); |
| 200 | + Services::injectMock('request', $request); |
| 201 | + |
| 202 | + $response = new RedirectResponse(new App()); |
| 203 | + |
| 204 | + $this->routes->add('exampleRoute', 'Home::index'); |
| 205 | + |
| 206 | + $response->route('exampleRoute'); |
| 207 | + |
| 208 | + $this->assertTrue($response->hasHeader('Location')); |
| 209 | + $this->assertEquals('http://example.com/test/index.php/exampleRoute', $response->getHeaderLine('Location')); |
| 210 | + |
| 211 | + Config::reset(); |
| 212 | + } |
189 | 213 | } |
0 commit comments