You are here

public function RouterTest::testMatchesWithDifferentFitOrder in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/Routing/RouterTest.php \Drupal\Tests\Core\Routing\RouterTest::testMatchesWithDifferentFitOrder()
  2. 10 core/tests/Drupal/Tests/Core/Routing/RouterTest.php \Drupal\Tests\Core\Routing\RouterTest::testMatchesWithDifferentFitOrder()

@covers ::applyFitOrder

File

core/tests/Drupal/Tests/Core/Routing/RouterTest.php, line 25

Class

RouterTest
@coversDefaultClass \Drupal\Core\Routing\Router @group Routing

Namespace

Drupal\Tests\Core\Routing

Code

public function testMatchesWithDifferentFitOrder() {
  $route_provider = $this
    ->prophesize(RouteProviderInterface::class);
  $route_collection = new RouteCollection();
  $route = new Route('/user/{user}');
  $route
    ->setOption('compiler_class', RouteCompiler::class);
  $route_collection
    ->add('user_view', $route);
  $route = new Route('/user/login');
  $route
    ->setOption('compiler_class', RouteCompiler::class);
  $route_collection
    ->add('user_login', $route);
  $route_provider
    ->getRouteCollectionForRequest(Argument::any())
    ->willReturn($route_collection);
  $url_generator = $this
    ->prophesize(UrlGeneratorInterface::class);
  $current_path_stack = $this
    ->prophesize(CurrentPathStack::class);
  $router = new Router($route_provider
    ->reveal(), $current_path_stack
    ->reveal(), $url_generator
    ->reveal());
  $request_context = $this
    ->prophesize(RequestContext::class);
  $request_context
    ->getScheme()
    ->willReturn('http');
  $router
    ->setContext($request_context
    ->reveal());
  $current_path_stack
    ->getPath(Argument::any())
    ->willReturn('/user/1');
  $result = $router
    ->match('/user/1');
  $this
    ->assertEquals('user_view', $result['_route']);
  $current_path_stack
    ->getPath(Argument::any())
    ->willReturn('/user/login');
  $result = $router
    ->match('/user/login');
  $this
    ->assertEquals('user_login', $result['_route']);
}