state = $this->getMock('Drupal\Core\State\StateInterface'); $this->pathRootsSubscriber = new PathRootsSubscriber($this->state); } /** * Tests altering and finished event. * * @covers ::onRouteAlter * @covers ::onRouteFinished */ public function testSubscribing() { // Ensure that onRouteFinished can be called without throwing notices // when no path roots got set. $this->pathRootsSubscriber->onRouteFinished(); $route_collection = new RouteCollection(); $route_collection->add('test_route1', new Route('/test/bar')); $route_collection->add('test_route2', new Route('/test/baz')); $route_collection->add('test_route3', new Route('/test2/bar/baz')); $event = new RouteBuildEvent($route_collection, 'provider'); $this->pathRootsSubscriber->onRouteAlter($event); $route_collection = new RouteCollection(); $route_collection->add('test_route4', new Route('/test1/bar')); $route_collection->add('test_route5', new Route('/test2/baz')); $route_collection->add('test_route6', new Route('/test2/bar/baz')); $event = new RouteBuildEvent($route_collection, 'provider'); $this->pathRootsSubscriber->onRouteAlter($event); $this->state->expects($this->once()) ->method('set') ->with('router.path_roots', ['test', 'test2', 'test1']); $this->pathRootsSubscriber->onRouteFinished(); } }