You are here

public function ModuleRouteSubscriberTest::testRemoveRoute in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/EventSubscriber/ModuleRouteSubscriberTest.php \Drupal\Tests\Core\EventSubscriber\ModuleRouteSubscriberTest::testRemoveRoute()
  2. 10 core/tests/Drupal/Tests/Core/EventSubscriber/ModuleRouteSubscriberTest.php \Drupal\Tests\Core\EventSubscriber\ModuleRouteSubscriberTest::testRemoveRoute()

Tests that removeRoute() removes routes when the module is not enabled.

@dataProvider providerTestRemoveRoute @covers ::onAlterRoutes

Parameters

string $route_name: The machine name for the route.

array $requirements: An array of requirements to use for the route.

bool $removed: Whether or not the route is expected to be removed from the collection.

File

core/tests/Drupal/Tests/Core/EventSubscriber/ModuleRouteSubscriberTest.php, line 50

Class

ModuleRouteSubscriberTest
@coversDefaultClass \Drupal\Core\EventSubscriber\ModuleRouteSubscriber @group EventSubscriber

Namespace

Drupal\Tests\Core\EventSubscriber

Code

public function testRemoveRoute($route_name, array $requirements, $removed) {
  $collection = new RouteCollection();
  $route = new Route('', [], $requirements);
  $collection
    ->add($route_name, $route);
  $event = new RouteBuildEvent($collection, 'test');
  $route_subscriber = new ModuleRouteSubscriber($this->moduleHandler);
  $route_subscriber
    ->onAlterRoutes($event);
  if ($removed) {
    $this
      ->assertNull($collection
      ->get($route_name));
  }
  else {
    $this
      ->assertInstanceOf('Symfony\\Component\\Routing\\Route', $collection
      ->get($route_name));
  }
}