You are here

public function DisplayPageWebTest::testPageDisplayMenu in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/tests/src/Functional/Plugin/DisplayPageWebTest.php \Drupal\Tests\views\Functional\Plugin\DisplayPageWebTest::testPageDisplayMenu()

Tests menu settings of page displays.

File

core/modules/views/tests/src/Functional/Plugin/DisplayPageWebTest.php, line 95

Class

DisplayPageWebTest
Tests the views page display plugin as webtest.

Namespace

Drupal\Tests\views\Functional\Plugin

Code

public function testPageDisplayMenu() {

  // Check local tasks.
  $this
    ->drupalGet('test_page_display_menu');
  $this
    ->assertSession()
    ->statusCodeEquals(200);
  $this
    ->assertSession()
    ->elementTextEquals('xpath', "//ul[contains(@class, 'tabs primary')]//a[contains(@class, 'is-active')]/child::text()", 'Test default tab');
  $this
    ->assertSession()
    ->titleEquals('Test default page | Drupal');
  $this
    ->drupalGet('test_page_display_menu/default');
  $this
    ->assertSession()
    ->statusCodeEquals(404);
  $this
    ->drupalGet('test_page_display_menu/local');
  $this
    ->assertSession()
    ->statusCodeEquals(200);
  $this
    ->assertSession()
    ->elementTextEquals('xpath', "//ul[contains(@class, 'tabs primary')]//a[contains(@class, 'is-active')]/child::text()", 'Test local tab');
  $this
    ->assertSession()
    ->titleEquals('Test local page | Drupal');

  // Check an ordinary menu link.
  $admin_user = $this
    ->drupalCreateUser([
    'administer menu',
  ]);
  $this
    ->drupalLogin($admin_user);
  $this
    ->drupalPlaceBlock('system_menu_block:tools');
  $this
    ->drupalGet('<front>');
  $menu_link = $this
    ->cssSelect('nav.block-menu ul.menu a');
  $this
    ->assertEquals('Test menu link', $menu_link[0]
    ->getText());
  $this->container
    ->get('module_installer')
    ->install([
    'menu_ui',
    'menu_link_content',
  ]);

  // Update the menu link.
  $this
    ->drupalGet("admin/structure/menu/link/views_view:views.test_page_display_menu.page_3/edit");
  $this
    ->submitForm([
    'title' => 'New title',
  ], 'Save');
  $this
    ->drupalGet('<front>');
  $menu_link = $this
    ->cssSelect('nav.block-menu ul.menu a');
  $this
    ->assertEquals('New title', $menu_link[0]
    ->getText());
}