public function LayoutBuilderTest::testRemovingAllSections in Drupal 9
Same name and namespace in other branches
- 8 core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php \Drupal\Tests\layout_builder\Functional\LayoutBuilderTest::testRemovingAllSections()
Tests removing all sections from overrides and defaults.
File
- core/
modules/ layout_builder/ tests/ src/ Functional/ LayoutBuilderTest.php, line 1297
Class
- LayoutBuilderTest
- Tests the Layout Builder UI.
Namespace
Drupal\Tests\layout_builder\FunctionalCode
public function testRemovingAllSections() {
$assert_session = $this
->assertSession();
$page = $this
->getSession()
->getPage();
// Install Quick Edit as well.
$this->container
->get('module_installer')
->install([
'quickedit',
]);
$this
->drupalLogin($this
->drupalCreateUser([
'configure any layout',
'administer node display',
'access in-place editing',
]));
$field_ui_prefix = 'admin/structure/types/manage/bundle_with_section_field';
// Enable overrides.
$this
->drupalGet("{$field_ui_prefix}/display/default");
$this
->submitForm([
'layout[enabled]' => TRUE,
], 'Save');
$this
->drupalGet("{$field_ui_prefix}/display/default");
$this
->submitForm([
'layout[allow_custom]' => TRUE,
], 'Save');
// By default, there is one section.
$this
->drupalGet('node/1');
$assert_session
->elementsCount('css', '.layout', 1);
$assert_session
->pageTextContains('The first node body');
$page
->clickLink('Layout');
$assert_session
->elementsCount('css', '.layout', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 2);
// Remove the only section from the override.
$page
->clickLink('Remove Section 1');
$page
->pressButton('Remove');
$assert_session
->elementsCount('css', '.layout', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 1);
// The override is still used instead of the default, despite being empty.
$page
->pressButton('Save layout');
$assert_session
->elementsCount('css', '.layout', 0);
$assert_session
->pageTextNotContains('The first node body');
$page
->clickLink('Layout');
$assert_session
->elementsCount('css', '.layout', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 1);
// Add one section to the override.
$page
->clickLink('Add section');
$page
->clickLink('One column');
$page
->pressButton('Add section');
$assert_session
->elementsCount('css', '.layout', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 2);
$page
->pressButton('Save layout');
$assert_session
->elementsCount('css', '.layout', 1);
$assert_session
->pageTextNotContains('The first node body');
// By default, the default has one section.
$this
->drupalGet("{$field_ui_prefix}/display/default/layout");
$assert_session
->elementsCount('css', '.layout', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 2);
// Remove the only section from the default.
$page
->clickLink('Remove Section 1');
$page
->pressButton('Remove');
$assert_session
->elementsCount('css', '.layout', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 1);
$page
->pressButton('Save layout');
$page
->clickLink('Manage layout');
$assert_session
->elementsCount('css', '.layout', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 0);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 1);
// The override is still in use.
$this
->drupalGet('node/1');
$assert_session
->elementsCount('css', '.layout', 1);
$assert_session
->pageTextNotContains('The first node body');
$page
->clickLink('Layout');
$assert_session
->elementsCount('css', '.layout', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-block', 1);
$assert_session
->elementsCount('css', '.layout-builder__add-section', 2);
// Revert the override.
$page
->pressButton('Revert to defaults');
$page
->pressButton('Revert');
$assert_session
->elementsCount('css', '.layout', 0);
$assert_session
->pageTextNotContains('The first node body');
}