trait EnableLayoutBuilderTrait

Same name and namespace in other branches
  1. 11.x core/modules/layout_builder/tests/src/Traits/EnableLayoutBuilderTrait.php \Drupal\Tests\layout_builder\Traits\EnableLayoutBuilderTrait

Test trait to enable or disable Layout Builder on an entity view display.

Hierarchy

5 files declare their use of EnableLayoutBuilderTrait
LayoutBuilderOptInTest.php in core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderOptInTest.php
LayoutBuilderOverridesEditingThemeTest.php in core/modules/layout_builder/tests/src/Functional/LayoutBuilderOverridesEditingThemeTest.php
LayoutBuilderTest.php in core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
LayoutBuilderViewModeTest.php in core/modules/layout_builder/tests/src/Functional/LayoutBuilderViewModeTest.php
LayoutDisplayTest.php in core/modules/layout_builder/tests/src/Functional/LayoutDisplayTest.php

File

core/modules/layout_builder/tests/src/Traits/EnableLayoutBuilderTrait.php, line 12

Namespace

Drupal\Tests\layout_builder\Traits
View source
trait EnableLayoutBuilderTrait {
  
  /**
   * Enables Layout Builder on an entity view display.
   *
   * @param \Drupal\layout_builder\Entity\LayoutEntityDisplayInterface $display
   *   The entity view display.
   */
  protected function enableLayoutBuilder(LayoutEntityDisplayInterface $display) : void {
    $display->enableLayoutBuilder()
      ->setOverridable()
      ->save();
  }
  
  /**
   * Enables Layout Builder using the UI.
   *
   * @param string $bundle
   *   The bundle that Layout Builder is being enabled on.
   * @param string $viewMode
   *   The view mode that Layout Builder is being enabled on.
   * @param bool $allowCustom
   *   Whether custom layouts per entity should be allowed.
   */
  protected function enableLayoutBuilderFromUi(string $bundle, string $viewMode, bool $allowCustom = TRUE) : void {
    $path = sprintf('admin/structure/types/manage/%s/display/%s', $bundle, $viewMode);
    $page = $this->getSession()
      ->getPage();
    $this->drupalGet($path);
    $page->checkField('layout[enabled]');
    $page->pressButton('Save');
    if ($allowCustom) {
      $page->checkField('layout[allow_custom]');
      $page->pressButton('Save');
    }
  }
  
  /**
   * Disables Layout Builder using the UI.
   *
   * @param string $bundle
   *   The bundle that Layout Builder is being disabled on.
   * @param string $viewMode
   *   The view mode that Layout Builder is being disabled on.
   */
  protected function disableLayoutBuilderFromUi(string $bundle, string $viewMode) : void {
    $path = sprintf('admin/structure/types/manage/%s/display/%s', $bundle, $viewMode);
    $page = $this->getSession()
      ->getPage();
    $this->drupalGet($path);
    $page->uncheckField('layout[enabled]');
    $page->pressButton('Save');
    $page->pressButton('Confirm');
  }

}

Members

Title Sort descending Modifiers Object type Summary
EnableLayoutBuilderTrait::disableLayoutBuilderFromUi protected function Disables Layout Builder using the UI.
EnableLayoutBuilderTrait::enableLayoutBuilder protected function Enables Layout Builder on an entity view display.
EnableLayoutBuilderTrait::enableLayoutBuilderFromUi protected function Enables Layout Builder using the UI.

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