View source
<?php
namespace Drupal\sitemap\Tests;
class SitemapMenuTest extends SitemapMenuTestBase {
public function testMenus() {
$this
->drupalGet('/sitemap');
$elements = $this
->cssSelect(".sitemap-box h2:contains('Main navigation')");
$this
->assertEqual(count($elements), 0, 'Main menu is not included.');
$edit = [
'show_menus[main]' => 'main',
'show_menus_hidden' => FALSE,
];
$this
->drupalPostForm('admin/config/search/sitemap', $edit, t('Save configuration'));
$node_1_title = $this
->randomString();
$edit = [
'title[0][value]' => $node_1_title,
'menu[enabled]' => TRUE,
'menu[title]' => $node_1_title,
'menu[menu_parent]' => 'main:',
];
$this
->drupalPostForm('node/add/article', $edit, t('Save'));
$node_2_title = $this
->randomString();
$edit = [
'title[0][value]' => $node_2_title,
'menu[enabled]' => TRUE,
'menu[title]' => $node_2_title,
'menu[menu_parent]' => 'main:',
];
$this
->drupalPostForm('node/add/article', $edit, t('Save'));
$menu_links = \Drupal::entityTypeManager()
->getStorage('menu_link_content')
->loadByProperties([
'title' => $node_2_title,
]);
$menu_link = reset($menu_links);
$mlid = $menu_link
->id();
$edit = [
'enabled[value]' => FALSE,
];
$this
->drupalPostForm("admin/structure/menu/item/{$mlid}/edit", $edit, t('Save'));
$admin_link_title = $this
->randomString();
$edit = [
'title[0][value]' => $admin_link_title,
'link[0][uri]' => '/admin/config/search/sitemap',
'menu_parent' => 'main:',
];
$this
->drupalPostForm("admin/structure/menu/manage/main/add", $edit, t('Save'));
$this
->drupalGet('/sitemap');
$elements = $this
->cssSelect(".sitemap-box h2:contains('Main navigation')");
$this
->assertEqual(count($elements), 1, 'Main menu is included.');
$this
->assertLink($node_1_title);
$this
->assertLink($admin_link_title);
$this
->assertNoLink($node_2_title);
$edit = [
'show_menus_hidden' => TRUE,
];
$this
->drupalPostForm('admin/config/search/sitemap', $edit, t('Save configuration'));
$this
->drupalGet('/sitemap');
$this
->assertLink($node_1_title);
$this
->assertLink($node_2_title);
$this
->drupalLogin($this->anonUser);
$this
->drupalGet('/sitemap');
$this
->assertNoLink(t('Inaccessible'));
}
}