PageRenderTime 39ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/core/modules/views/tests/src/Kernel/Plugin/Display/ViewsMenuLinkTest.php

http://github.com/drupal/drupal
PHP | 90 lines | 46 code | 15 blank | 29 comment | 0 complexity | 7ed347b92d0e287a81612f8223c474b6 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  1. <?php
  2. namespace Drupal\Tests\views\Kernel\Plugin\Display;
  3. use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
  4. /**
  5. * Menu link test.
  6. *
  7. * @group views
  8. */
  9. class ViewsMenuLinkTest extends ViewsKernelTestBase {
  10. /**
  11. * {@inheritdoc}
  12. */
  13. public static $modules = [
  14. 'menu_ui',
  15. 'user',
  16. 'views',
  17. ];
  18. /**
  19. * {@inheritdoc}
  20. */
  21. public static $testViews = ['test_page_display_menu'];
  22. /**
  23. * The menu link manager.
  24. *
  25. * @var \Drupal\Core\Menu\MenuLinkManagerInterface
  26. */
  27. protected $menuLinkManager;
  28. /**
  29. * The menu link overrides.
  30. *
  31. * @var \Drupal\Core\Menu\StaticMenuLinkOverridesInterface
  32. */
  33. protected $menuLinkOverrides;
  34. /**
  35. * {@inheritdoc}
  36. */
  37. protected function setUp($import_test_views = TRUE) {
  38. parent::setUp($import_test_views);
  39. $this->menuLinkManager = $this->container->get('plugin.manager.menu.link');
  40. $this->menuLinkOverrides = $this->container->get('menu_link.static.overrides');
  41. }
  42. /**
  43. * Test views internal menu link options.
  44. */
  45. public function testMenuLinkOverrides() {
  46. // Link from views module.
  47. $views_link = $this->menuLinkManager->getDefinition('views_view:views.test_page_display_menu.page_3');
  48. $this->assertTrue((bool) $views_link['enabled'], 'Menu link is enabled.');
  49. $this->assertFalse((bool) $views_link['expanded'], 'Menu link is not expanded.');
  50. $views_link['enabled'] = 0;
  51. $views_link['expanded'] = 1;
  52. $this->menuLinkManager->updateDefinition($views_link['id'], $views_link);
  53. $views_link = $this->menuLinkManager->getDefinition($views_link['id']);
  54. $this->assertFalse((bool) $views_link['enabled'], 'Menu link is disabled.');
  55. $this->assertTrue((bool) $views_link['expanded'], 'Menu link is expanded.');
  56. $this->menuLinkManager->rebuild();
  57. $this->assertFalse((bool) $views_link['enabled'], 'Menu link is disabled.');
  58. $this->assertTrue((bool) $views_link['expanded'], 'Menu link is expanded.');
  59. // Link from user module.
  60. $user_link = $this->menuLinkManager->getDefinition('user.page');
  61. $this->assertTrue((bool) $user_link['enabled'], 'Menu link is enabled.');
  62. $user_link['enabled'] = 0;
  63. $views_link['expanded'] = 1;
  64. $this->menuLinkManager->updateDefinition($user_link['id'], $user_link);
  65. $this->assertFalse((bool) $user_link['enabled'], 'Menu link is disabled.');
  66. $this->menuLinkManager->rebuild();
  67. $this->assertFalse((bool) $user_link['enabled'], 'Menu link is disabled.');
  68. $this->menuLinkOverrides->reload();
  69. $views_link = $this->menuLinkManager->getDefinition('views_view:views.test_page_display_menu.page_3');
  70. $this->assertFalse((bool) $views_link['enabled'], 'Menu link is disabled.');
  71. $this->assertTrue((bool) $views_link['expanded'], 'Menu link is expanded.');
  72. $user_link = $this->menuLinkManager->getDefinition('user.page');
  73. $this->assertFalse((bool) $user_link['enabled'], 'Menu link is disabled.');
  74. }
  75. }