You are here

protected function PageManagerAdminTest::doTestAddVariant in Page Manager 8.4

Tests adding a variant.

1 call to PageManagerAdminTest::doTestAddVariant()
PageManagerAdminTest::testAdmin in page_manager_ui/tests/src/Functional/PageManagerAdminTest.php
Tests the Page Manager admin UI.

File

page_manager_ui/tests/src/Functional/PageManagerAdminTest.php, line 260

Class

PageManagerAdminTest
Tests the admin UI for page entities.

Namespace

Drupal\Tests\page_manager_ui\Functional

Code

protected function doTestAddVariant() {
  $this
    ->drupalGet('admin/structure/page_manager/manage/foo/general');

  // Add a new variant.
  $this
    ->clickLink('Add variant');
  $edit = [
    'variant_plugin_id' => 'block_display',
    'label' => 'First',
  ];
  $this
    ->drupalPostForm(NULL, $edit, 'Next');

  // Set the page title.
  $edit = [
    'variant_settings[page_title]' => 'Example title',
  ];
  $this
    ->drupalPostForm(NULL, $edit, 'Next');

  // Finish variant wizard without adding blocks.
  $this
    ->drupalPostForm(NULL, [], 'Finish');

  // Save page to apply variant changes.
  $this
    ->drupalPostForm(NULL, [], 'Update and save');

  // Test that the variant is still used but empty.
  $this
    ->drupalGet('admin/foo');
  $this
    ->assertResponse(200);

  // Tests that the content region has no content at all.
  $elements = $this
    ->getSession()
    ->getPage()
    ->findAll('css', 'div.region.region-content *');

  // From Drupal 8.7, fallback area for messages is added by default.
  // @see https://www.drupal.org/node/3002643
  if (version_compare(\Drupal::VERSION, '8.7', '<')) {
    $this
      ->assertEmpty($elements);
  }
  else {
    $this
      ->assertCount(1, $elements);
    $this
      ->assertTrue($elements[0]
      ->hasAttribute('data-drupal-messages-fallback'));
  }
}