class EntityViewDisplayValidationTest

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/KernelTests/Core/Entity/EntityViewDisplayValidationTest.php \Drupal\KernelTests\Core\Entity\EntityViewDisplayValidationTest

Tests validation of entity_view_display entities.

@group Entity @group Validation @group #slow

Hierarchy

Expanded class hierarchy of EntityViewDisplayValidationTest

File

core/tests/Drupal/KernelTests/Core/Entity/EntityViewDisplayValidationTest.php, line 22

Namespace

Drupal\KernelTests\Core\Entity
View source
class EntityViewDisplayValidationTest extends ConfigEntityValidationTestBase {
  use ContentTypeCreationTrait;
  
  /**
   * {@inheritdoc}
   */
  protected bool $hasLabel = FALSE;
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'entity_test',
    'field',
    'node',
    'text',
    'user',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    $this->installConfig('node');
    $this->createContentType([
      'type' => 'one',
    ]);
    $this->createContentType([
      'type' => 'two',
    ]);
    EntityTestBundle::create([
      'id' => 'one',
    ])->save();
    EntityTestBundle::create([
      'id' => 'two',
    ])->save();
    EntityViewMode::create([
      'id' => 'node.test',
      'label' => 'Test',
      'targetEntityType' => 'node',
    ])->save();
    $this->entity = $this->container
      ->get(EntityDisplayRepositoryInterface::class)
      ->getViewDisplay('node', 'one', 'test');
    $this->entity
      ->save();
  }
  
  /**
   * Tests that the plugin ID of a Layout Builder section is validated.
   */
  public function testLayoutSectionPluginIdIsValidated() : void {
    $this->enableModules([
      'layout_builder',
      'layout_discovery',
    ]);
    $this->entity = $this->container
      ->get('entity_display.repository')
      ->getViewDisplay('user', 'user');
    $this->assertInstanceOf(LayoutEntityDisplayInterface::class, $this->entity);
    $this->entity
      ->enableLayoutBuilder()
      ->save();
    $sections = array_map(fn(Section $section) => $section->toArray(), $this->entity
      ->getSections());
    $this->assertCount(1, $sections);
    $sections[0]['layout_id'] = 'non_existent';
    $this->entity
      ->setThirdPartySetting('layout_builder', 'sections', $sections);
    $this->assertValidationErrors([
      'third_party_settings.layout_builder.sections.0.layout_id' => "The 'non_existent' plugin does not exist.",
    ]);
  }
  
  /**
   * Tests that the target bundle of the entity view display is checked.
   */
  public function testTargetBundleMustExist() : void {
    $this->entity
      ->set('bundle', 'superhero');
    $this->assertValidationErrors([
      '' => "The 'bundle' property cannot be changed.",
      'bundle' => "The 'superhero' bundle does not exist on the 'node' entity type.",
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  public function testImmutableProperties(array $valid_values = []) : void {
    parent::testImmutableProperties([
      'targetEntityType' => 'entity_test_with_bundle',
      'bundle' => 'two',
    ]);
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
ConfigEntityValidationTestBase::$entity protected property The config entity being tested.
ConfigEntityValidationTestBase::$propertiesWithOptionalValues protected static property The config entity properties whose values are optional (set to NULL). 4
ConfigEntityValidationTestBase::$propertiesWithRequiredKeys protected static property The config entity mapping properties with >=1 required keys. 1
ConfigEntityValidationTestBase::assertValidationErrors protected function Asserts a set of validation errors is raised when the entity is validated.
ConfigEntityValidationTestBase::getMachineNameConstraints protected function Returns the validation constraints applied to the entity's ID.
ConfigEntityValidationTestBase::getPropertiesWithOptionalValues protected function Determines the config entity properties with optional values.
ConfigEntityValidationTestBase::getRequiredPropertyKeys protected function Determines the config entity mapping properties with required keys.
ConfigEntityValidationTestBase::isFullyValidatable protected function Whether the tested config entity type is fully validatable.
ConfigEntityValidationTestBase::providerConfigDependenciesValidation public static function Data provider for ::testConfigDependenciesValidation().
ConfigEntityValidationTestBase::providerInvalidMachineNameCharacters public static function Data provider for ::testInvalidMachineNameCharacters(). 5
ConfigEntityValidationTestBase::setLabel protected static function Sets the label of the given config entity. 1
ConfigEntityValidationTestBase::testConfigDependenciesValidation public function Tests validation of config dependencies.
ConfigEntityValidationTestBase::testEntityIsValid public function Ensures that the entity created in ::setUp() has no validation errors.
ConfigEntityValidationTestBase::testInvalidMachineNameCharacters public function Tests that the entity's ID is tested for invalid characters.
ConfigEntityValidationTestBase::testLabelValidation public function Tests validation of config entity's label. 3
ConfigEntityValidationTestBase::testLangcode public function Tests that the config entity's langcode is validated.
ConfigEntityValidationTestBase::testMachineNameLength public function Tests that the entity ID's length is validated if it is a machine name.
ConfigEntityValidationTestBase::testRequiredPropertyKeysMissing public function A property that is required must have a value (i.e. not NULL). 2
ConfigEntityValidationTestBase::testRequiredPropertyValuesMissing public function A property that is required must have a value (i.e. not NULL). 2
EntityViewDisplayValidationTest::$hasLabel protected property Whether a config entity of this type has a label. Overrides ConfigEntityValidationTestBase::$hasLabel
EntityViewDisplayValidationTest::$modules protected static property Modules to install.
EntityViewDisplayValidationTest::setUp protected function Overrides ConfigEntityValidationTestBase::setUp
EntityViewDisplayValidationTest::testImmutableProperties public function Tests that immutable properties cannot be changed. Overrides ConfigEntityValidationTestBase::testImmutableProperties
EntityViewDisplayValidationTest::testLayoutSectionPluginIdIsValidated public function Tests that the plugin ID of a Layout Builder section is validated.
EntityViewDisplayValidationTest::testTargetBundleMustExist public function Tests that the target bundle of the entity view display is checked.

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