3 namespace Drupal\Tests\system\Unit\Routing;
5 use Drupal\Core\Routing\RouteBuildEvent;
6 use Drupal\system\EventSubscriber\AdminRouteSubscriber;
7 use Drupal\Tests\UnitTestCase;
8 use Symfony\Component\Routing\Route;
9 use Symfony\Component\Routing\RouteCollection;
12 * @coversDefaultClass \Drupal\system\EventSubscriber\AdminRouteSubscriber
15 class AdminRouteSubscriberTest extends UnitTestCase {
18 * @covers ::alterRoutes
19 * @covers ::isHtmlRoute
21 * @dataProvider providerTestAlterRoutes
23 public function testAlterRoutes(Route $route, $is_admin) {
24 $collection = new RouteCollection();
25 $collection->add('the_route', $route);
26 (new AdminRouteSubscriber())->onAlterRoutes(new RouteBuildEvent($collection));
28 $this->assertSame($is_admin, $route->getOption('_admin_route'));
31 public function providerTestAlterRoutes() {
33 $data['non-admin'] = [
37 $data['admin prefix'] = [
38 new Route('/admin/foo'),
41 $data['admin option'] = [
43 ->setOption('_admin_route', TRUE),
46 $data['admin prefix, non-HTML format'] = [
47 (new Route('/admin/foo'))
48 ->setRequirement('_format', 'json'),
51 $data['admin option, non-HTML format'] = [
53 ->setRequirement('_format', 'json')
54 ->setOption('_admin_route', TRUE),
57 $data['admin prefix, HTML format'] = [
58 (new Route('/admin/foo'))
59 ->setRequirement('_format', 'html'),
62 $data['admin prefix, multi-format including HTML'] = [
63 (new Route('/admin/foo'))
64 ->setRequirement('_format', 'json|html'),