Merge pull request #1147 from puschie286/RedirectRouteBaseURL

fix RedirectResponse::route and added test
This commit is contained in:
Lonnie Ezell 2018-08-08 21:42:06 -05:00 committed by GitHub
commit 2136bbb725
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 2 deletions

View File

@ -35,7 +35,9 @@
* @since Version 3.0.0
* @filesource
*/
use CodeIgniter\HTTP\Exceptions\HTTPException;
use Config\App;
use Config\Services;
class RedirectResponse extends Response
@ -74,7 +76,7 @@ class RedirectResponse extends Response
*
* @return $this
*/
public function route(string $route, array $params=[], int $code=null, string $method='auto')
public function route(string $route, array $params=[], int $code=302, string $method='auto')
{
$routes = Services::routes(true);
@ -85,7 +87,7 @@ class RedirectResponse extends Response
throw HTTPException::forInvalidRedirectRoute($route);
}
return $this->redirect($route, $method, $code);
return $this->redirect( config( App::class )->baseURL.rtrim( $route, '\\' ), $method, $code);
}
/**

View File

@ -10,6 +10,7 @@ use Tests\Support\HTTP\MockIncomingRequest;
class RedirectResponseTest extends \CIUnitTestCase
{
/** @var RouteCollection */
protected $routes;
protected $request;
@ -42,6 +43,18 @@ class RedirectResponseTest extends \CIUnitTestCase
$this->assertEquals('http://example.com/foo', $response->getHeaderLine('Location'));
}
public function testRedirectRoute()
{
$response = new RedirectResponse(new App());
$this->routes->add( 'exampleRoute', 'Home::index' );
$response->route( 'exampleRoute' );
$this->assertTrue($response->hasHeader('Location'));
$this->assertEquals('http://example.com/exampleRoute', $response->getHeaderLine('Location'));
}
public function testRedirectRelativeConvertsToFullURI()
{
$response = new RedirectResponse($this->config);