function OverrideMenuLinksConfigActionTest::testOverrideLinks
Tests overriding static menu links.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Menu/ OverrideMenuLinksConfigActionTest.php, line 48
Class
- OverrideMenuLinksConfigActionTest
- Tests overriding static menu links with config actions.
Namespace
Drupal\KernelTests\Core\MenuCode
public function testOverrideLinks() : void {
/** @var \Drupal\Core\Config\Action\ConfigActionManager $action_manager */
$action_manager = $this->container
->get('plugin.manager.config_action');
/** @var \Drupal\Core\Menu\MenuLinkManagerInterface $link_manager */
$link_manager = $this->container
->get(MenuLinkManagerInterface::class);
$link_manager->rebuild();
$definition = $link_manager->getDefinition('menu_test.menu_name_test');
$this->assertSame('0', $definition['weight']);
$this->assertSame('1', $definition['enabled']);
$logger = new TestLogger();
$this->container
->get(LoggerChannelFactoryInterface::class)
->get('menu')
->addLogger($logger);
$action_manager->applyAction('overrideMenuLinks', 'core.menu.static_menu_link_overrides', [
'menu_test.menu_name_test' => [
'weight' => 5,
'enabled' => FALSE,
],
'not_a_link' => [
'enabled' => TRUE,
],
]);
$link_manager->rebuild();
$definition = $link_manager->getDefinition('menu_test.menu_name_test');
$this->assertSame('5', $definition['weight']);
$this->assertSame('0', $definition['enabled']);
// Trying to override a non-existent link should log a warning.
$this->assertTrue($logger->hasRecord('The @link_id menu link was not overridden because it does not exist.', RfcLogLevel::WARNING));
// We should be able to undo the override.
$action_manager->applyAction('overrideMenuLinks', 'core.menu.static_menu_link_overrides', [
'menu_test.menu_name_test' => NULL,
]);
$link_manager->rebuild();
$definition = $link_manager->getDefinition('menu_test.menu_name_test');
$this->assertSame('0', $definition['weight']);
$this->assertSame('1', $definition['enabled']);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.