function PathValidatorTest::testGetUrlIfValidWithAccess

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Path/PathValidatorTest.php \Drupal\Tests\Core\Path\PathValidatorTest::testGetUrlIfValidWithAccess()
  2. 10 core/tests/Drupal/Tests/Core/Path/PathValidatorTest.php \Drupal\Tests\Core\Path\PathValidatorTest::testGetUrlIfValidWithAccess()
  3. 11.x core/tests/Drupal/Tests/Core/Path/PathValidatorTest.php \Drupal\Tests\Core\Path\PathValidatorTest::testGetUrlIfValidWithAccess()

Tests the getUrlIfValid() method when there is access.

@covers ::getUrlIfValid @covers ::getPathAttributes

File

core/tests/Drupal/Tests/Core/Path/PathValidatorTest.php, line 328

Class

PathValidatorTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Path%21PathValidator.php/class/PathValidator/8.9.x" title="Provides a default path validator and access checker." class="local">\Drupal\Core\Path\PathValidator</a> @group Routing

Namespace

Drupal\Tests\Core\Path

Code

public function testGetUrlIfValidWithAccess() {
    $this->account
        ->expects($this->exactly(2))
        ->method('hasPermission')
        ->with('link to any page')
        ->willReturn(FALSE);
    $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->exactly(2))
        ->method('processInbound')
        ->willReturnArgument(0);
    $url = $this->pathValidator
        ->getUrlIfValid('test-path');
    $this->assertInstanceOf('Drupal\\Core\\Url', $url);
    $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());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.