public function MenuAdminPerMenuMenuPagesTest::testMenuOverviewPage in Menu Admin per Menu 8
Test menu overview page.
File
- tests/src/ Functional/ MenuAdminPerMenuMenuPagesTest.php, line 159 
Class
- MenuAdminPerMenuMenuPagesTest
- Tests the Menu pages in combination with Menu Admin per Menu.
Namespace
Drupal\Tests\menu_admin_per_menu\FunctionalCode
public function testMenuOverviewPage() : void {
  $assert_session = $this
    ->assertSession();
  // Anonymous users don't have access to this page.
  $this
    ->drupalGet('admin/structure/menu');
  $assert_session
    ->statusCodeEquals(403);
  // An authenticated user without permissions doesn't have access to this
  // page.
  $this
    ->drupalLogin($this->authenticatedUser);
  $this
    ->drupalGet('admin/structure/menu');
  $assert_session
    ->statusCodeEquals(403);
  // Admin users have access to all menus.
  $this
    ->drupalLogin($this->rootUser);
  $this
    ->drupalGet('admin/structure/menu');
  $assert_session
    ->statusCodeEquals(200);
  // Make sure the title on the menus overview page is present.
  $assert_session
    ->responseContains('<h1>Menus</h1>');
  $assert_session
    ->pageTextContains('Menu 1 menu');
  $assert_session
    ->pageTextContains('Menu 2 menu');
  $assert_session
    ->pageTextContains('Menu 3 menu');
  // A user with 'administer menu' permission has access to all menus.
  $this
    ->drupalLogin($this->adminMenuUser);
  $this
    ->drupalGet('admin/structure/menu');
  $assert_session
    ->statusCodeEquals(200);
  $assert_session
    ->pageTextContains('Menu 1 menu');
  $assert_session
    ->pageTextContains('Menu 2 menu');
  $assert_session
    ->pageTextContains('Menu 3 menu');
  // A user with 'administer menu_1 menu items' only has access to menu_1.
  $this
    ->drupalLogin($this->menu1User);
  $this
    ->drupalGet('admin/structure/menu');
  $assert_session
    ->statusCodeEquals(200);
  $assert_session
    ->pageTextContains('Menu 1 menu');
  $assert_session
    ->pageTextNotContains('Menu 2 menu');
  $assert_session
    ->pageTextNotContains('Menu 3 menu');
  // A user with 'administer menu_2 menu items' only has access to menu_2.
  $this
    ->drupalLogin($this->menu2User);
  $this
    ->drupalGet('admin/structure/menu');
  $assert_session
    ->statusCodeEquals(200);
  $assert_session
    ->pageTextNotContains('Menu 1 menu');
  $assert_session
    ->pageTextContains('Menu 2 menu');
  $assert_session
    ->pageTextNotContains('Menu 3 menu');
  // Permission for this user was added by
  // hook_menu_admin_per_menu_get_permissions_alter.
  $this
    ->drupalLogin($this->menu3User);
  $this
    ->drupalGet('admin/structure/menu');
  $assert_session
    ->statusCodeEquals(200);
  $assert_session
    ->pageTextNotContains('Menu 1 menu');
  $assert_session
    ->pageTextNotContains('Menu 2 menu');
  $assert_session
    ->pageTextContains('Menu 3 menu');
}