public function DisplayPathTest::testDefaultMenuTabRegression in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views_ui/tests/src/Functional/DisplayPathTest.php \Drupal\Tests\views_ui\Functional\DisplayPathTest::testDefaultMenuTabRegression()
Tests the regression in https://www.drupal.org/node/2532490.
File
- core/
modules/ views_ui/ tests/ src/ Functional/ DisplayPathTest.php, line 201
Class
- DisplayPathTest
- Tests the UI of generic display path plugin.
Namespace
Drupal\Tests\views_ui\FunctionalCode
public function testDefaultMenuTabRegression() {
$this->container
->get('module_installer')
->install([
'menu_link_content',
'toolbar',
'system',
]);
$this
->resetAll();
$admin_user = $this
->drupalCreateUser([
'administer views',
'administer blocks',
'bypass node access',
'access user profiles',
'view all revisions',
'administer permissions',
'administer menu',
'link to any page',
'access toolbar',
]);
$this
->drupalLogin($admin_user);
$edit = [
'title[0][value]' => 'Menu title',
'link[0][uri]' => '/admin/foo',
'menu_parent' => 'admin:system.admin',
];
$this
->drupalGet('admin/structure/menu/manage/admin/add');
$this
->submitForm($edit, 'Save');
$menu_items = \Drupal::entityTypeManager()
->getStorage('menu_link_content')
->getQuery()
->accessCheck(FALSE)
->sort('id', 'DESC')
->pager(1)
->execute();
$menu_item = end($menu_items);
/** @var \Drupal\menu_link_content\MenuLinkContentInterface $menu_link_content */
$menu_link_content = MenuLinkContent::load($menu_item);
$edit = [];
$edit['label'] = $this
->randomMachineName(16);
$view_id = $edit['id'] = strtolower($this
->randomMachineName(16));
$edit['description'] = $this
->randomMachineName(16);
$edit['page[create]'] = TRUE;
$edit['page[path]'] = 'admin/foo';
$this
->drupalGet('admin/structure/views/add');
$this
->submitForm($edit, 'Save and edit');
$parameters = new MenuTreeParameters();
$parameters
->addCondition('id', $menu_link_content
->getPluginId());
$result = \Drupal::menuTree()
->load('admin', $parameters);
$plugin_definition = end($result)->link
->getPluginDefinition();
$this
->assertEquals('view.' . $view_id . '.page_1', $plugin_definition['route_name']);
$this
->clickLink('No menu');
$this
->submitForm([
'menu[type]' => 'default tab',
'menu[title]' => 'Menu title',
], 'Apply');
$this
->assertSession()
->pageTextContains('Default tab options');
$this
->submitForm([
'tab_options[type]' => 'normal',
'tab_options[title]' => 'Parent title',
], 'Apply');
// Open the menu options again.
$this
->clickLink('Tab: Menu title');
// Assert a menu can be selected as a parent.
$this
->assertSession()
->optionExists('menu[parent]', 'admin:');
// Assert a parent menu item can be selected from within a menu.
$this
->assertSession()
->optionExists('menu[parent]', 'admin:system.admin');
// Check that parent menu item can now be
// added without the menu_ui module being enabled.
$this
->submitForm([
'menu[type]' => 'normal',
'menu[parent]' => 'admin:system.admin',
'menu[title]' => 'Menu title',
], 'Apply');
$this
->submitForm([], 'Save');
// Assert that saving the view will not cause an exception.
$this
->assertSession()
->statusCodeEquals(200);
}