function LayoutBuilderTest::testLayoutNoDialog

Same name in other branches
  1. 9 core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderTest::testLayoutNoDialog()
  2. 8.9.x core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderTest::testLayoutNoDialog()
  3. 10 core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderTest::testLayoutNoDialog()

Tests bypassing the off-canvas dialog.

File

core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php, line 347

Class

LayoutBuilderTest
Tests the Layout Builder UI.

Namespace

Drupal\Tests\layout_builder\FunctionalJavascript

Code

public function testLayoutNoDialog() : void {
    $layout_url = 'node/1/layout';
    \Drupal::entityTypeManager()->getStorage('entity_view_display')
        ->create([
        'targetEntityType' => 'node',
        'bundle' => 'bundle_with_section_field',
        'mode' => 'full',
    ])
        ->enable()
        ->setThirdPartySetting('layout_builder', 'enabled', TRUE)
        ->setThirdPartySetting('layout_builder', 'allow_custom', TRUE)
        ->save();
    $assert_session = $this->assertSession();
    $page = $this->getSession()
        ->getPage();
    // Set up a layout with one section.
    $this->drupalGet(Url::fromRoute('layout_builder.choose_section', [
        'section_storage_type' => 'overrides',
        'section_storage' => 'node.1',
        'delta' => 0,
    ]));
    $assert_session->linkExists('One column');
    $this->clickLink('One column');
    $page->pressButton('Add section');
    // Add a block.
    $this->drupalGet(Url::fromRoute('layout_builder.add_block', [
        'section_storage_type' => 'overrides',
        'section_storage' => 'node.1',
        'delta' => 0,
        'region' => 'content',
        'plugin_id' => 'system_powered_by_block',
    ]));
    $assert_session->assertNoElementAfterWait('css', '#drupal-off-canvas');
    $page->fillField('settings[label]', 'The block label');
    $page->fillField('settings[label_display]', TRUE);
    $page->pressButton('Add block');
    $assert_session->addressEquals($layout_url);
    $assert_session->pageTextContains('Powered by Drupal');
    $assert_session->pageTextContains('The block label');
    // Remove the section.
    $this->drupalGet(Url::fromRoute('layout_builder.remove_section', [
        'section_storage_type' => 'overrides',
        'section_storage' => 'node.1',
        'delta' => 0,
    ]));
    $page->pressButton('Remove');
    $assert_session->addressEquals($layout_url);
    $assert_session->pageTextNotContains('Powered by Drupal');
    $assert_session->pageTextNotContains('The block label');
    $assert_session->linkNotExists('Add block');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.