public function LayoutRestrictionsTest::testLayoutRestriction in Layout Builder Restrictions 8.2
Verify that the UI can restrict layouts in Layout Builder settings tray.
File
- tests/
src/ FunctionalJavascript/ LayoutRestrictionsTest.php, line 15
Class
- LayoutRestrictionsTest
- Demonstrate that blocks can be individually restricted.
Namespace
Drupal\Tests\layout_builder_restrictions\FunctionalJavascriptCode
public function testLayoutRestriction() {
// Create 2 custom block types, with 3 block instances.
$blocks = $this
->generateTestBlocks();
$node_id = $this
->generateTestNode();
$assert_session = $this
->assertSession();
$page = $this
->getSession()
->getPage();
// Baseline: 'One column' & 'Two column' layouts are available.
$this
->navigateToNodeSettingsTray($node_id);
$this
->clickLink('Add section');
$this
->assertNotEmpty($assert_session
->waitForText('Choose a layout for this section'));
$assert_session
->linkExists('One column');
$assert_session
->linkExists('Two column');
// Allow only 'Two column' layout.
$this
->navigateToManageDisplay();
$element = $page
->find('xpath', '//*[@id="edit-layout-builder-restrictions-allowed-layouts"]/summary');
$element
->click();
$element = $page
->find('xpath', '//*[@id="edit-layout-builder-restrictions-allowed-layouts-layout-restriction-all"]');
$assert_session
->checkboxChecked('edit-layout-builder-restrictions-allowed-layouts-layout-restriction-all');
$assert_session
->checkboxNotChecked('edit-layout-builder-restrictions-allowed-layouts-layout-restriction-restricted');
$element = $page
->find('xpath', '//*[@id="edit-layout-builder-restrictions-allowed-layouts-layout-restriction-restricted"]');
$element
->click();
$element = $page
->find('xpath', '//*[@id="edit-layout-builder-restrictions-allowed-layouts-layouts-layout-twocol-section"]');
$element
->click();
$page
->pressButton('Save');
// Verify 'Two column' is allowed, 'One column' restricted.
$this
->navigateToNodeSettingsTray($node_id);
$this
->clickLink('Add section');
$this
->assertNotEmpty($assert_session
->waitForText('Choose a layout for this section'));
$assert_session
->linkNotExists('One column');
$assert_session
->linkExists('Two column');
}