class ViewsMenuLinkTest
Same name and namespace in other branches
- 11.x core/modules/views/tests/src/Kernel/Plugin/Display/ViewsMenuLinkTest.php \Drupal\Tests\views\Kernel\Plugin\Display\ViewsMenuLinkTest
Menu link test.
@group views
Hierarchy
- class \Drupal\KernelTests\KernelTestBase extends \Drupal\Core\DependencyInjection\ServiceProviderInterface uses \Drupal\KernelTests\AssertLegacyTrait, \Drupal\KernelTests\AssertContentTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\ExtensionListTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait implements \PHPUnit\Framework\TestCase
- class \Drupal\Tests\views\Kernel\ViewsKernelTestBase uses \Drupal\views\Tests\ViewResultAssertionTrait implements \Drupal\KernelTests\KernelTestBase
- class \Drupal\Tests\views\Kernel\Plugin\Display\ViewsMenuLinkTest implements \Drupal\Tests\views\Kernel\ViewsKernelTestBase
- class \Drupal\Tests\views\Kernel\ViewsKernelTestBase uses \Drupal\views\Tests\ViewResultAssertionTrait implements \Drupal\KernelTests\KernelTestBase
Expanded class hierarchy of ViewsMenuLinkTest
File
-
core/
modules/ views/ tests/ src/ Kernel/ Plugin/ Display/ ViewsMenuLinkTest.php, line 12
Namespace
Drupal\Tests\views\Kernel\Plugin\DisplayView source
class ViewsMenuLinkTest extends ViewsKernelTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'user',
'views',
];
/**
* {@inheritdoc}
*/
public static $testViews = [
'test_page_display_menu',
];
/**
* The menu link manager.
*
* @var \Drupal\Core\Menu\MenuLinkManagerInterface
*/
protected $menuLinkManager;
/**
* The menu link overrides.
*
* @var \Drupal\Core\Menu\StaticMenuLinkOverridesInterface
*/
protected $menuLinkOverrides;
/**
* {@inheritdoc}
*/
protected function setUp($import_test_views = TRUE) : void {
parent::setUp($import_test_views);
$this->menuLinkManager = $this->container
->get('plugin.manager.menu.link');
$this->menuLinkOverrides = $this->container
->get('menu_link.static.overrides');
}
/**
* Tests views internal menu link options.
*/
public function testMenuLinkOverrides() {
// Link from views module.
$views_link = $this->menuLinkManager
->getDefinition('views_view:views.test_page_display_menu.page_3');
$this->assertTrue((bool) $views_link['enabled'], 'Menu link is enabled.');
$this->assertFalse((bool) $views_link['expanded'], 'Menu link is not expanded.');
$views_link['enabled'] = 0;
$views_link['expanded'] = 1;
$this->menuLinkManager
->updateDefinition($views_link['id'], $views_link);
$views_link = $this->menuLinkManager
->getDefinition($views_link['id']);
$this->assertFalse((bool) $views_link['enabled'], 'Menu link is disabled.');
$this->assertTrue((bool) $views_link['expanded'], 'Menu link is expanded.');
$this->menuLinkManager
->rebuild();
$this->assertFalse((bool) $views_link['enabled'], 'Menu link is disabled.');
$this->assertTrue((bool) $views_link['expanded'], 'Menu link is expanded.');
// Link from user module.
$user_link = $this->menuLinkManager
->getDefinition('user.page');
$this->assertTrue((bool) $user_link['enabled'], 'Menu link is enabled.');
$user_link['enabled'] = 0;
$views_link['expanded'] = 1;
$this->menuLinkManager
->updateDefinition($user_link['id'], $user_link);
$this->assertFalse((bool) $user_link['enabled'], 'Menu link is disabled.');
$this->menuLinkManager
->rebuild();
$this->assertFalse((bool) $user_link['enabled'], 'Menu link is disabled.');
$this->menuLinkOverrides
->reload();
$views_link = $this->menuLinkManager
->getDefinition('views_view:views.test_page_display_menu.page_3');
$this->assertFalse((bool) $views_link['enabled'], 'Menu link is disabled.');
$this->assertTrue((bool) $views_link['expanded'], 'Menu link is expanded.');
$user_link = $this->menuLinkManager
->getDefinition('user.page');
$this->assertFalse((bool) $user_link['enabled'], 'Menu link is disabled.');
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.