public function MenuTreeStorageTest::testMenuDisabledChildLinks in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php \Drupal\KernelTests\Core\Menu\MenuTreeStorageTest::testMenuDisabledChildLinks()
- 10 core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php \Drupal\KernelTests\Core\Menu\MenuTreeStorageTest::testMenuDisabledChildLinks()
Tests with disabled child links.
File
- core/
tests/ Drupal/ KernelTests/ Core/ Menu/ MenuTreeStorageTest.php, line 173
Class
- MenuTreeStorageTest
- Tests the menu tree storage.
Namespace
Drupal\KernelTests\Core\MenuCode
public function testMenuDisabledChildLinks() {
// Add some links with parent on the previous one and test some values.
// <tools>
// - test1
// -- test2 (disabled)
$this
->addMenuLink('test1', '');
$this
->assertMenuLink('test1', [
'has_children' => 0,
'depth' => 1,
]);
$this
->addMenuLink('test2', 'test1', '<front>', [], 'tools', [
'enabled' => 0,
]);
// The 1st link does not have any visible children, so has_children is 0.
$this
->assertMenuLink('test1', [
'has_children' => 0,
'depth' => 1,
]);
$this
->assertMenuLink('test2', [
'has_children' => 0,
'depth' => 2,
'enabled' => 0,
], [
'test1',
]);
// Add more links with parent on the previous one.
// <footer>
// - footerA
// ===============
// <tools>
// - test1
// -- test2 (disabled)
// --- test3
// ---- test4
// ----- test5
// ------ test6
// ------- test7
// -------- test8
// --------- test9
$this
->addMenuLink('footerA', '', '<front>', [], 'footer');
$visible_children = [];
for ($i = 3; $i <= $this->treeStorage
->maxDepth(); $i++) {
$parent = $i - 1;
$this
->addMenuLink("test{$i}", "test{$parent}");
$visible_children[] = "test{$i}";
}
// The 1st link does not have any visible children, so has_children is still
// 0. However, it has visible links below it that will be found.
$this
->assertMenuLink('test1', [
'has_children' => 0,
'depth' => 1,
], [], $visible_children);
// This should fail since test9 would end up at greater than max depth.
try {
$this
->moveMenuLink('test1', 'footerA');
$this
->fail('Exception was not thrown');
} catch (PluginException $e) {
// Expected exception; just continue testing.
}
// The opposite move should work, and change the has_children flag.
$this
->moveMenuLink('footerA', 'test1');
$visible_children[] = 'footerA';
$this
->assertMenuLink('test1', [
'has_children' => 1,
'depth' => 1,
], [], $visible_children);
}