Issue #2340379 by larowlan: Allow PathValidator::getUrlIfValid to support paths with leading /.
parent
f6d2f233f4
commit
966aed8f90
|
@ -102,6 +102,7 @@ class PathValidator implements PathValidatorInterface {
|
|||
return Url::createFromPath($path);
|
||||
}
|
||||
|
||||
$path = ltrim($path, '/');
|
||||
$request = Request::create('/' . $path);
|
||||
$attributes = $this->getPathAttributes($path, $request);
|
||||
|
||||
|
|
|
@ -246,16 +246,16 @@ class PathValidatorTest extends UnitTestCase {
|
|||
* Tests the getUrlIfValid() method when there is access.
|
||||
*/
|
||||
public function testGetUrlIfValidWithAccess() {
|
||||
$this->account->expects($this->once())
|
||||
$this->account->expects($this->exactly(2))
|
||||
->method('hasPermission')
|
||||
->with('link to any page')
|
||||
->willReturn(FALSE);
|
||||
|
||||
$this->accessAwareRouter->expects($this->once())
|
||||
$this->accessAwareRouter->expects($this->exactly(2))
|
||||
->method('match')
|
||||
->with('/test-path')
|
||||
->willReturn([RouteObjectInterface::ROUTE_NAME => 'test_route', '_raw_variables' => new ParameterBag(['key' => 'value'])]);
|
||||
$this->pathProcessor->expects($this->once())
|
||||
$this->pathProcessor->expects($this->exactly(2))
|
||||
->method('processInbound')
|
||||
->willReturnArgument(0);
|
||||
|
||||
|
@ -264,6 +264,13 @@ class PathValidatorTest extends UnitTestCase {
|
|||
|
||||
$this->assertEquals('test_route', $url->getRouteName());
|
||||
$this->assertEquals(['key' => 'value'], $url->getRouteParameters());
|
||||
|
||||
// Test with leading /.
|
||||
$url = $this->pathValidator->getUrlIfValid('/test-path');
|
||||
$this->assertInstanceOf('Drupal\Core\Url', $url);
|
||||
|
||||
$this->assertEquals('test_route', $url->getRouteName());
|
||||
$this->assertEquals(['key' => 'value'], $url->getRouteParameters());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue