Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / views / tests / src / Kernel / Plugin / Display / ViewsMenuLinkTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Kernel\Plugin\Display;
4
5 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
6
7 /**
8  * Menu link test.
9  *
10  * @group views
11  */
12 class ViewsMenuLinkTest extends ViewsKernelTestBase {
13
14   /**
15    * {@inheritdoc}
16    */
17   public static $modules = [
18     'menu_ui',
19     'user',
20     'views',
21   ];
22
23   /**
24    * {@inheritdoc}
25    */
26   public static $testViews = ['test_page_display_menu'];
27
28   /**
29    * The entity manager.
30    *
31    * @var \Drupal\Core\Entity\EntityManagerInterface
32    */
33   protected $entityManager;
34
35   /**
36    * The menu link manager.
37    *
38    * @var \Drupal\Core\Menu\MenuLinkManagerInterface
39    */
40   protected $menuLinkManager;
41
42   /**
43    * The menu link overrides.
44    *
45    * @var \Drupal\Core\Menu\StaticMenuLinkOverridesInterface
46    */
47   protected $menuLinkOverrides;
48
49   /**
50    * {@inheritdoc}
51    */
52   protected function setUp($import_test_views = TRUE) {
53     parent::setUp($import_test_views);
54
55     $this->entityManager = $this->container->get('entity.manager');
56     $this->menuLinkManager = $this->container->get('plugin.manager.menu.link');
57     $this->menuLinkOverrides = $this->container->get('menu_link.static.overrides');
58   }
59
60   /**
61    * Test views internal menu link options.
62    */
63   public function testMenuLinkOverrides() {
64     // Link from views module.
65     $views_link = $this->menuLinkManager->getDefinition('views_view:views.test_page_display_menu.page_3');
66     $this->assertTrue($views_link['enabled'], 'Menu link is enabled.');
67     $this->assertFalse($views_link['expanded'], 'Menu link is not expanded.');
68     $views_link['enabled'] = 0;
69     $views_link['expanded'] = 1;
70     $this->menuLinkManager->updateDefinition($views_link['id'], $views_link);
71     $views_link = $this->menuLinkManager->getDefinition($views_link['id']);
72     $this->assertFalse($views_link['enabled'], 'Menu link is disabled.');
73     $this->assertTrue($views_link['expanded'], 'Menu link is expanded.');
74     $this->menuLinkManager->rebuild();
75     $this->assertFalse($views_link['enabled'], 'Menu link is disabled.');
76     $this->assertTrue($views_link['expanded'], 'Menu link is expanded.');
77
78     // Link from user module.
79     $user_link = $this->menuLinkManager->getDefinition('user.page');
80     $this->assertTrue($user_link['enabled'], 'Menu link is enabled.');
81     $user_link['enabled'] = 0;
82     $views_link['expanded'] = 1;
83     $this->menuLinkManager->updateDefinition($user_link['id'], $user_link);
84     $this->assertFalse($user_link['enabled'], 'Menu link is disabled.');
85     $this->menuLinkManager->rebuild();
86     $this->assertFalse($user_link['enabled'], 'Menu link is disabled.');
87
88     $this->menuLinkOverrides->reload();
89
90     $views_link = $this->menuLinkManager->getDefinition('views_view:views.test_page_display_menu.page_3');
91     $this->assertFalse($views_link['enabled'], 'Menu link is disabled.');
92     $this->assertTrue($views_link['expanded'], 'Menu link is expanded.');
93
94     $user_link = $this->menuLinkManager->getDefinition('user.page');
95     $this->assertFalse($user_link['enabled'], 'Menu link is disabled.');
96   }
97
98 }