View source
<?php
namespace Drupal\Tests\menu_admin_per_menu\Functional;
use Drupal\language\Entity\ConfigurableLanguage;
use Drupal\language\Entity\ContentLanguageSettings;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\menu_admin_per_menu\Traits\MenuLinkContentTrait;
class MenuAdminPerMenuMenuPagesTest extends BrowserTestBase {
use MenuLinkContentTrait;
protected static $modules = [
'block',
'content_translation',
'menu_admin_per_menu_test',
];
protected $defaultTheme = 'stark';
protected $menuStorage;
protected $menuLinkContentStorage;
protected $menuLinkManager;
protected $menu1;
protected $menu2;
protected $menu3;
protected $authenticatedUser;
protected $adminMenuUser;
protected $menu1User;
protected $menu2User;
protected $menu3User;
protected function setUp() : void {
parent::setUp();
$this
->drupalPlaceBlock('page_title_block');
$this
->drupalPlaceBlock('local_actions_block');
ConfigurableLanguage::createFromLangcode('fr')
->save();
$config = ContentLanguageSettings::loadByEntityTypeBundle('menu_link_content', 'menu_link_content');
$config
->setDefaultLangcode('en')
->setLanguageAlterable(TRUE)
->setThirdPartySetting('content_translation', 'enabled', TRUE)
->save();
$this->menuLinkContentStorage = $this->container
->get('entity_type.manager')
->getStorage('menu_link_content');
$this->menuLinkManager = $this->container
->get('plugin.manager.menu.link');
$this->menuStorage = $this->container
->get('entity_type.manager')
->getStorage('menu');
$this->menu1 = $this->menuStorage
->load('menu_1');
$this->menu2 = $this->menuStorage
->load('menu_2');
$this->menu3 = $this->menuStorage
->load('menu_3');
$this->authenticatedUser = $this
->createUser([], 'Authenticated user');
$this->adminMenuUser = $this
->createUser([
'administer menu',
], 'Admin menu user');
$this->menu1User = $this
->createUser([
'administer menu_1 menu items',
], 'Menu 1 user');
$this->menu2User = $this
->createUser([
'administer menu_2 menu items',
], 'Menu 2 user');
$this->menu3User = $this
->createUser([], 'Menu 3 user');
}
public function testMenuOverviewPage() : void {
$assert_session = $this
->assertSession();
$this
->drupalGet('admin/structure/menu');
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->authenticatedUser);
$this
->drupalGet('admin/structure/menu');
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->rootUser);
$this
->drupalGet('admin/structure/menu');
$assert_session
->statusCodeEquals(200);
$assert_session
->responseContains('<h1>Menus</h1>');
$assert_session
->pageTextContains('Menu 1 menu');
$assert_session
->pageTextContains('Menu 2 menu');
$assert_session
->pageTextContains('Menu 3 menu');
$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');
$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');
$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');
$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');
}
public function testMenuEditAndMenuLinkAddForm() : void {
$assert_session = $this
->assertSession();
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu1
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->authenticatedUser);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu1
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->rootUser);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu1
->id()));
$assert_session
->statusCodeEquals(200);
$this
->clickLink('Add link');
$assert_session
->statusCodeEquals(200);
$this
->submitForm([
'title[0][value]' => 'Test link',
'link[0][uri]' => '<front>',
], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu2
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu2
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu3
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu3
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalLogin($this->adminMenuUser);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu1
->id()));
$assert_session
->statusCodeEquals(200);
$assert_session
->fieldExists('id');
$assert_session
->fieldExists('label');
$assert_session
->fieldExists('description');
$assert_session
->fieldExists('langcode');
$this
->clickLink('Add link');
$assert_session
->statusCodeEquals(200);
$assert_session
->optionExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionExists('menu_parent', 'menu_3:menu_3.link');
$this
->submitForm([
'title[0][value]' => 'Test link',
'link[0][uri]' => '<front>',
], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu2
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu2
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu3
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu3
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalLogin($this->menu1User);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu1
->id()));
$assert_session
->statusCodeEquals(200);
$assert_session
->fieldNotExists('id');
$assert_session
->fieldNotExists('label');
$assert_session
->fieldNotExists('description');
$assert_session
->fieldNotExists('langcode');
$this
->clickLink('Add link');
$assert_session
->statusCodeEquals(200);
$assert_session
->optionExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionNotExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionNotExists('menu_parent', 'menu_3:menu_3.link');
$this
->submitForm([
'title[0][value]' => 'Test link',
'link[0][uri]' => '<front>',
], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu2
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu2
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu3
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu3
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->menu2User);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu1
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu1
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu2
->id()));
$assert_session
->statusCodeEquals(200);
$this
->clickLink('Add link');
$assert_session
->statusCodeEquals(200);
$assert_session
->optionNotExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionNotExists('menu_parent', 'menu_3:menu_3.link');
$this
->submitForm([
'title[0][value]' => 'Test link',
'link[0][uri]' => '<front>',
], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu3
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu3
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->menu3User);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu1
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu1
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu2
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s/add', $this->menu2
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/manage/%s', $this->menu3
->id()));
$assert_session
->statusCodeEquals(200);
$this
->clickLink('Add link');
$assert_session
->statusCodeEquals(200);
$assert_session
->optionNotExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionNotExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionExists('menu_parent', 'menu_3:menu_3.link');
$this
->submitForm([
'title[0][value]' => 'Test link',
'link[0][uri]' => '<front>',
], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
}
public function testLinkEditAndResetForm() : void {
$assert_session = $this
->assertSession();
$menu_1_link = $this->menuLinkManager
->getInstance([
'id' => 'menu_1.link',
]);
$menu_2_link = $this->menuLinkManager
->getInstance([
'id' => 'menu_2.link',
]);
$menu_3_link = $this->menuLinkManager
->getInstance([
'id' => 'menu_3.link',
]);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->authenticatedUser);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->rootUser);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Reset');
$assert_session
->pageTextContains('The menu link was reset to its default settings.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalLogin($this->adminMenuUser);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Reset');
$assert_session
->pageTextContains('The menu link was reset to its default settings.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->drupalLogin($this->menu1User);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Reset');
$assert_session
->pageTextContains('The menu link was reset to its default settings.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->menu2User);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Reset');
$assert_session
->pageTextContains('The menu link was reset to its default settings.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->menu3User);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_1_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_2_link
->getPluginId()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/edit', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Save');
$assert_session
->pageTextContains('The menu link has been saved.');
$this
->drupalGet(sprintf('admin/structure/menu/link/%s/reset', $menu_3_link
->getPluginId()));
$assert_session
->statusCodeEquals(200);
$this
->submitForm([], 'Reset');
$assert_session
->pageTextContains('The menu link was reset to its default settings.');
}
public function testMenuLinkContentPages() {
$assert_session = $this
->assertSession();
$menu_1_link = $this
->createMenuContentLink([
'menu_name' => $this->menu1
->id(),
]);
$menu_2_link = $this
->createMenuContentLink([
'menu_name' => $this->menu2
->id(),
]);
$menu_3_link = $this
->createMenuContentLink([
'menu_name' => $this->menu3
->id(),
]);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->authenticatedUser);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->rootUser);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalLogin($this->adminMenuUser);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$assert_session
->optionExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionExists('menu_parent', 'menu_3:menu_3.link');
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalLogin($this->menu1User);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$assert_session
->optionExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionNotExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionNotExists('menu_parent', 'menu_3:menu_3.link');
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->menu2User);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$assert_session
->optionNotExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionNotExists('menu_parent', 'menu_3:menu_3.link');
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalLogin($this->menu3User);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_1_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_2_link
->id()));
$assert_session
->statusCodeEquals(403);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$assert_session
->optionNotExists('menu_parent', 'menu_1:menu_1.link');
$assert_session
->optionNotExists('menu_parent', 'menu_2:menu_2.link');
$assert_session
->optionExists('menu_parent', 'menu_3:menu_3.link');
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/delete', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
$this
->drupalGet(sprintf('admin/structure/menu/item/%s/edit/translations/add/en/fr', $menu_3_link
->id()));
$assert_session
->statusCodeEquals(200);
}
}