diff --git a/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php b/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php index 334fe245ad669e49577d47db34a1e367c350c2ca..3f16fdad989187cffdaa652c13c0482a8dc6e6ba 100644 --- a/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php +++ b/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php @@ -148,6 +148,13 @@ public function isComputed() { return $this->getBaseFieldDefinition()->isComputed(); } + /** + * {@inheritdoc} + */ + public function isInternal(): bool { + return $this->getBaseFieldDefinition()->isInternal(); + } + /** * {@inheritdoc} */ diff --git a/core/tests/Drupal/KernelTests/Core/Field/Entity/BaseFieldOverrideTest.php b/core/tests/Drupal/KernelTests/Core/Field/Entity/BaseFieldOverrideTest.php index 9ddfa59acc143e3eef489c4a2b3a10161af5cba7..92c1b98cc047137499100fb9b53a612983896a9d 100644 --- a/core/tests/Drupal/KernelTests/Core/Field/Entity/BaseFieldOverrideTest.php +++ b/core/tests/Drupal/KernelTests/Core/Field/Entity/BaseFieldOverrideTest.php @@ -82,6 +82,38 @@ public function testDefaultValueCallback() { $this->assertEquals([['target_id' => 99]], $base_field_override->getDefaultValue($entity)); } + /** + * Tests that some properties are inherited from the BaseFieldDefinition. + * + * @covers ::isReadOnly + * @covers ::isComputed + * @covers ::isInternal + * @covers ::getUniqueIdentifier + */ + public function testInheritedProperties() { + $base_field = BaseFieldDefinition::create('string') + ->setName('Test Field') + ->setTargetEntityTypeId('entity_test') + ->setReadOnly(TRUE) + /** Ensure that the internal property is inherited from the base field and not the parent class. @see FieldConfigBase::isInternal */ + ->setInternal(TRUE) + ->setComputed(FALSE); + + // Getters of the properties to check. + $methods = [ + 'getUniqueIdentifier', + 'getClass', + 'isComputed', + 'isReadOnly', + 'isInternal', + ]; + + $override = BaseFieldOverride::createFromBaseFieldDefinition($base_field, 'test_bundle'); + foreach ($methods as $method) { + $this->assertEquals($base_field->$method(), $override->$method()); + } + } + /** * A default value callback which returns a primitive value. *