function RouterTest::testRouteAlias

Tests route aliasing.

File

core/modules/system/tests/src/Functional/Routing/RouterTest.php, line 350

Class

RouterTest
Functional class for the full integrated routing system.

Namespace

Drupal\Tests\system\Functional\Routing

Code

public function testRouteAlias() : void {
    $request = \Drupal::request();
    $route_provider = \Drupal::service('router.route_provider');
    // Check a simple aliased route.
    $aliased_route_url = Url::fromRoute('router_test.alias');
    $this->drupalGet($aliased_route_url);
    $this->assertSession()
        ->addressEquals($request->getUriForPath('/router_test/test1'));
    $routes = $route_provider->getRoutesByNames([
        'router_test.alias',
    ]);
    $aliased_route = reset($routes);
    $this->assertTrue($aliased_route instanceof Alias);
    $this->assertFalse($aliased_route->isDeprecated());
    // Check that loading an aliased route by name returns the actual route.
    $actual_route = $route_provider->getRouteByName('router_test.alias');
    $this->assertFalse($actual_route instanceof Alias);
    $this->assertEquals('/router_test/test1', $actual_route->getPath());
}

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