diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php index d755c6f7e6..550a3c8471 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php @@ -331,6 +331,27 @@ public function isDefaultRevision($new_value = NULL) { return $this->isNew() || $return; } + /** + * {@inheritdoc} + */ + public function wasDefaultRevision() { + /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */ + $entity_type = $this->getEntityType(); + if (!$entity_type->isRevisionable()) { + throw new \LogicException("Entity type {$this->getEntityTypeId()} does not support revisions."); + } + + $revision_default_key = $entity_type->getKey('revision_default'); + $value = $this->isNew() ? $this->isDefaultRevision() : $this->get($revision_default_key)->value; + + if (isset($value)) { + return (bool) $value; + } + else { + throw new \LogicException("Missing data for the '$revision_default_key' field on the entity {$this->getEntityTypeId()}:{$this->id()}."); + } + } + /** * {@inheritdoc} */ diff --git a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php index aac711a322..0599392e5c 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php @@ -377,8 +377,8 @@ protected function doSave($id, EntityInterface $entity) { $this->populateAffectedRevisionTranslations($entity); // Populate the "revision_default" flag. - if ($entity instanceof RevisionLogInterface) { - $revision_default_key = $this->entityType->getRevisionMetadataKey('revision_default'); + if ($this->entityType->isRevisionable()) { + $revision_default_key = $this->entityType->getKey('revision_default'); $entity->set($revision_default_key, $entity->isDefaultRevision()); } diff --git a/core/lib/Drupal/Core/Entity/ContentEntityType.php b/core/lib/Drupal/Core/Entity/ContentEntityType.php index 9381424723..0e26c3bb51 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityType.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityType.php @@ -54,25 +54,19 @@ protected function checkStorageClass($class) { public function getRevisionMetadataKeys($include_backwards_compatibility_field_names = TRUE) { // Provide backwards compatibility in case the revision metadata keys are // not defined in the entity annotation. - if ($include_backwards_compatibility_field_names) { - $required_keys = [ - 'revision_user' => 'revision_uid', - 'revision_created' => 'revision_timestamp', - 'revision_log_message' => 'revision_log', - 'revision_default' => 'revision_default', - ]; - $missing_keys = array_diff_key($required_keys, $this->revision_metadata_keys); - if ($missing_keys) { - $base_fields = \Drupal::service('entity_field.manager')->getBaseFieldDefinitions($this->id()); - foreach ($missing_keys as $key => $field_name) { - if (isset($base_fields[$field_name]) || (isset($base_fields[$key]) && $field_name = $key)) { - @trigger_error("The $key revision metadata key is not set.", E_USER_DEPRECATED); - $this->revision_metadata_keys[$key] = $field_name; - } - else { - $this->revision_metadata_keys[$key] = NULL; - } - } + if (!$this->revision_metadata_keys && $include_backwards_compatibility_field_names) { + $base_fields = \Drupal::service('entity_field.manager')->getBaseFieldDefinitions($this->id()); + if ((isset($base_fields['revision_uid']) && $revision_user = 'revision_uid') || (isset($base_fields['revision_user']) && $revision_user = 'revision_user')) { + @trigger_error('The revision_user revision metadata key is not set.', E_USER_DEPRECATED); + $this->revision_metadata_keys['revision_user'] = $revision_user; + } + if ((isset($base_fields['revision_timestamp']) && $revision_timestamp = 'revision_timestamp') || (isset($base_fields['revision_created'])) && $revision_timestamp = 'revision_created') { + @trigger_error('The revision_created revision metadata key is not set.', E_USER_DEPRECATED); + $this->revision_metadata_keys['revision_created'] = $revision_timestamp; + } + if ((isset($base_fields['revision_log']) && $revision_log = 'revision_log') || (isset($base_fields['revision_log_message']) && $revision_log = 'revision_log_message')) { + @trigger_error('The revision_log_message revision metadata key is not set.', E_USER_DEPRECATED); + $this->revision_metadata_keys['revision_log_message'] = $revision_log; } } return $this->revision_metadata_keys; diff --git a/core/lib/Drupal/Core/Entity/EntityFieldManager.php b/core/lib/Drupal/Core/Entity/EntityFieldManager.php index 63c35e9743..d2a3fbfc32 100644 --- a/core/lib/Drupal/Core/Entity/EntityFieldManager.php +++ b/core/lib/Drupal/Core/Entity/EntityFieldManager.php @@ -192,6 +192,7 @@ public function getBaseFieldDefinitions($entity_type_id) { protected function buildBaseFieldDefinitions($entity_type_id) { $entity_type = $this->entityTypeManager->getDefinition($entity_type_id); $class = $entity_type->getClass(); + /** @var string[] $keys */ $keys = array_filter($entity_type->getKeys()); // Fail with an exception for non-fieldable entity types. @@ -220,6 +221,15 @@ protected function buildBaseFieldDefinitions($entity_type_id) { } } + // Make sure revisionable entity types are correctly defined. + if ($entity_type->isRevisionable()) { + $base_field_definitions[$keys['revision_default']] = BaseFieldDefinition::create('boolean') + ->setLabel($this->t('Default revision')) + ->setDescription($this->t('A flag indicating whether this was a default revision when it was saved.')) + ->setTranslatable(FALSE) + ->setRevisionable(TRUE); + } + // Make sure that revisionable entity types are correctly defined. if ($entity_type->isRevisionable() && $entity_type->isTranslatable()) { // The 'revision_translation_affected' field should always be defined. diff --git a/core/lib/Drupal/Core/Entity/EntityType.php b/core/lib/Drupal/Core/Entity/EntityType.php index 19a52ca0fa..719367eefb 100644 --- a/core/lib/Drupal/Core/Entity/EntityType.php +++ b/core/lib/Drupal/Core/Entity/EntityType.php @@ -302,6 +302,7 @@ public function __construct($definition) { 'bundle' => '', 'langcode' => '', 'default_langcode' => 'default_langcode', + 'revision_default' => 'revision_default', 'revision_translation_affected' => 'revision_translation_affected', ]; $this->handlers += [ diff --git a/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php b/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php index 20463d9caf..f935a8b510 100644 --- a/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php +++ b/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php @@ -3,7 +3,6 @@ namespace Drupal\Core\Entity; use Drupal\Core\Field\BaseFieldDefinition; -use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\user\UserInterface; /** @@ -50,12 +49,6 @@ public static function revisionLogBaseFieldDefinitions(EntityTypeInterface $enti ], ]); - $fields[static::getRevisionMetadataKey($entity_type, 'revision_default')] = BaseFieldDefinition::create('boolean') - ->setLabel(new TranslatableMarkup('Default revision')) - ->setDescription(new TranslatableMarkup('A flag indicating whether this was a default revision when it was saved.')) - ->setTranslatable(FALSE) - ->setRevisionable(TRUE); - return $fields; } @@ -140,31 +133,9 @@ protected static function getRevisionMetadataKey(EntityTypeInterface $entity_typ 'revision_created' => 'revision_created', 'revision_user' => 'revision_user', 'revision_log_message' => 'revision_log_message', - 'revision_default' => 'revision_default', ]; return $revision_metadata_keys[$key]; } - /** - * Implements \Drupal\Core\Entity\RevisionLogInterface::wasDefaultRevision(). - */ - public function wasDefaultRevision() { - /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */ - $entity_type = $this->getEntityType(); - if (!$entity_type->isRevisionable()) { - throw new \LogicException("Entity type {$this->getEntityTypeId()} does not support revisions."); - } - - $revision_default_key = $entity_type->getRevisionMetadataKey('revision_default'); - $value = $this->isNew() ? $this->isDefaultRevision() : $this->get($revision_default_key)->value; - - if (isset($value)) { - return (bool) $value; - } - else { - throw new \LogicException("Missing data for the \"{$revision_default_key}\" field on the entity {$this->getEntityTypeId()}:{$this->id()}."); - } - } - } diff --git a/core/lib/Drupal/Core/Entity/RevisionLogInterface.php b/core/lib/Drupal/Core/Entity/RevisionLogInterface.php index 806c300072..becf97c162 100644 --- a/core/lib/Drupal/Core/Entity/RevisionLogInterface.php +++ b/core/lib/Drupal/Core/Entity/RevisionLogInterface.php @@ -81,16 +81,4 @@ public function getRevisionLogMessage(); */ public function setRevisionLogMessage($revision_log_message); - /** - * Checks whether the entity object was a default revision when it was saved. - * - * @return bool - * TRUE if the entity object was a revision, FALSE otherwise. - * - * @throws \LogicException - * If the entity type is not revisionable or the default revision data is - * missing. - */ - public function wasDefaultRevision(); - } diff --git a/core/lib/Drupal/Core/Entity/RevisionableInterface.php b/core/lib/Drupal/Core/Entity/RevisionableInterface.php index e25bc25443..6d07f5e2ad 100644 --- a/core/lib/Drupal/Core/Entity/RevisionableInterface.php +++ b/core/lib/Drupal/Core/Entity/RevisionableInterface.php @@ -51,6 +51,18 @@ public function getRevisionId(); */ public function isDefaultRevision($new_value = NULL); + /** + * Checks whether the entity object was a default revision when it was saved. + * + * @return bool + * TRUE if the entity object was a revision, FALSE otherwise. + * + * @throws \LogicException + * If the entity type is not revisionable or the default revision data is + * missing. + */ + public function wasDefaultRevision(); + /** * Checks if this entity is the latest revision. * diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php index 29b8a9aa95..4102d95870 100644 --- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php +++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php @@ -330,7 +330,14 @@ public function getTableMapping(array $storage_definitions = NULL) { // If the entity is revisionable, gather the fields that need to be put // in the revision table. $revisionable = $this->entityType->isRevisionable(); - $revision_metadata_fields = $revisionable ? array_values($this->entityType->getRevisionMetadataKeys()) : []; + $revision_metadata_fields = []; + if ($revisionable) { + $revision_metadata_fields = array_values($this->entityType->getRevisionMetadataKeys()); + $revision_default_key = $this->entityType->getKey('revision_default'); + if ($revision_default_key) { + array_unshift($revision_metadata_fields, $revision_default_key); + } + } $translatable = $this->entityType->isTranslatable(); if (!$revisionable && !$translatable) { diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php index 60712eeb21..77408ce8e5 100644 --- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php +++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php @@ -245,6 +245,7 @@ protected function copyData(array &$sandbox) { $original_base_table = $original_entity_type->getBaseTable(); $revision_id_key = $temporary_entity_type->getKey('revision'); + $revision_default_affected_key = $temporary_entity_type->getKey('revision_default'); $revision_translation_affected_key = $temporary_entity_type->getKey('revision_translation_affected'); // If 'progress' is not set, then this will be the first run of the batch. @@ -288,6 +289,10 @@ protected function copyData(array &$sandbox) { // Set the revision ID to be same as the entity ID. $entity->set($revision_id_key, $entity_id); + // We had no revisions so far, so the existing data belongs to the + // default revision now. + $entity->set($revision_default_affected_key, TRUE); + // Set the 'revision_translation_affected' flag to TRUE to match the // previous API return value: if the field was not defined the value // returned was always TRUE. @@ -380,6 +385,22 @@ protected function updateFieldStorageDefinitionsToRevisionable(ContentEntityType } $updated_storage_definitions[$entity_type->getKey('revision')] = $revision_field; + // Add the default revision flag field. + $field_name = $entity_type->getKey('revision_default'); + $storage_definition = BaseFieldDefinition::create('boolean') + ->setName($field_name) + ->setTargetEntityTypeId($entity_type->id()) + ->setTargetBundle(NULL) + ->setLabel(t('Default revision')) + ->setDescription(t('A flag indicating whether this was a default revision when it was saved.')) + ->setTranslatable(FALSE) + ->setRevisionable(TRUE); + + if ($update_cached_definitions) { + $this->entityDefinitionUpdateManager->installFieldStorageDefinition($field_name, $entity_type->id(), $entity_type->getProvider(), $storage_definition); + } + $updated_storage_definitions[$field_name] = $storage_definition; + // Add the 'revision_translation_affected' field if needed. if ($entity_type->isTranslatable()) { $revision_translation_affected_field = BaseFieldDefinition::create('boolean') diff --git a/core/modules/block_content/src/Entity/BlockContent.php b/core/modules/block_content/src/Entity/BlockContent.php index eb10f97108..3c8858ff88 100644 --- a/core/modules/block_content/src/Entity/BlockContent.php +++ b/core/modules/block_content/src/Entity/BlockContent.php @@ -56,8 +56,7 @@ * revision_metadata_keys = { * "revision_user" = "revision_user", * "revision_created" = "revision_created", - * "revision_log_message" = "revision_log", - * "revision_default" = "revision_default", + * "revision_log_message" = "revision_log" * }, * bundle_entity_type = "block_content_type", * field_ui_base_route = "entity.block_content_type.edit_form", diff --git a/core/modules/media/src/Entity/Media.php b/core/modules/media/src/Entity/Media.php index 310d807d76..dc8e0dcf0f 100644 --- a/core/modules/media/src/Entity/Media.php +++ b/core/modules/media/src/Entity/Media.php @@ -64,7 +64,6 @@ * "revision_user" = "revision_user", * "revision_created" = "revision_created", * "revision_log_message" = "revision_log_message", - * "revision_default" = "revision_default", * }, * bundle_entity_type = "media_type", * permission_granularity = "entity_type", diff --git a/core/modules/node/src/Entity/Node.php b/core/modules/node/src/Entity/Node.php index 2a1907085a..368ce1b596 100644 --- a/core/modules/node/src/Entity/Node.php +++ b/core/modules/node/src/Entity/Node.php @@ -62,8 +62,7 @@ * revision_metadata_keys = { * "revision_user" = "revision_uid", * "revision_created" = "revision_timestamp", - * "revision_log_message" = "revision_log", - * "revision_default" = "revision_default", + * "revision_log_message" = "revision_log" * }, * bundle_entity_type = "node_type", * field_ui_base_route = "entity.node_type.edit_form", diff --git a/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php b/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php index 5df9d75db0..8e9204e022 100644 --- a/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php +++ b/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php @@ -150,6 +150,9 @@ public function testNormalize() { 'default_langcode' => [ ['value' => TRUE], ], + 'revision_default' => [ + ['value' => TRUE], + ], 'revision_translation_affected' => [ ['value' => TRUE], ], @@ -225,6 +228,7 @@ public function testSerialize() { 'user_id' => '' . $this->user->id() . '' . $this->user->getEntityTypeId() . '' . $this->user->uuid() . '' . $this->user->url() . '', 'revision_id' => '' . $this->entity->getRevisionId() . '', 'default_langcode' => '1', + 'revision_default' => '1', 'revision_translation_affected' => '1', 'non_rev_field' => '', 'field_test_text' => '' . $this->values['field_test_text']['value'] . '' . $this->values['field_test_text']['format'] . '' . $this->values['field_test_text']['value'] . '

]]>
', diff --git a/core/modules/system/system.install b/core/modules/system/system.install index e1b9358bcd..4471303132 100644 --- a/core/modules/system/system.install +++ b/core/modules/system/system.install @@ -2061,35 +2061,42 @@ function system_update_8403() { * Add the 'revision_default' field to all relevant entity types. */ function system_update_8501() { - /** @var \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager */ - $field_manager = \Drupal::service('entity_field.manager'); $definition_update_manager = \Drupal::entityDefinitionUpdateManager(); - // Get a list of entity types to process. + // Clear the cached entity type definitions so we get the new + // 'revision_default' entity key. + \Drupal::entityTypeManager()->clearCachedDefinitions(); + + // Get a list of revisionable entity types. /** @var \Drupal\Core\Entity\ContentEntityTypeInterface[] $definitions */ - $definitions = array_filter(\Drupal::entityTypeManager()->getDefinitions(), function (EntityTypeInterface $entity_type) use ($field_manager, $definition_update_manager) { - $entity_type_id = $entity_type->id(); - if ($entity_type = $definition_update_manager->getEntityType($entity_type_id)) { - return $entity_type instanceof ContentEntityTypeInterface - && $entity_type->isRevisionable() - && ($field_name = $entity_type->getRevisionMetadataKey('revision_default')) - && isset($field_manager->getFieldStorageDefinitions($entity_type_id)[$field_name]) - && !$definition_update_manager->getFieldStorageDefinition($field_name, $entity_type_id); + $definitions = array_filter(\Drupal::entityTypeManager()->getDefinitions(), function (EntityTypeInterface $entity_type) use ($definition_update_manager) { + if ($entity_type = $definition_update_manager->getEntityType($entity_type->id())) { + return $entity_type->isRevisionable(); } return FALSE; }); - $storage_definition = BaseFieldDefinition::create('boolean') - ->setLabel(t('Default revision')) - ->setDescription(t('A flag indicating whether this was a default revision when it was saved.')) - ->setTranslatable(FALSE) - ->setRevisionable(TRUE) - ->setInitialValue(TRUE); - // Install the 'revision_default' field. foreach ($definitions as $entity_type_id => $entity_type) { - $field_name = $entity_type->getRevisionMetadataKey('revision_default'); - $definition_update_manager - ->installFieldStorageDefinition($field_name, $entity_type_id, $entity_type_id, $storage_definition); + $field_name = $entity_type->getKey('revision_default'); + // Install the 'revision_translation_affected' field if needed. + if (!$definition_update_manager->getFieldStorageDefinition($field_name, $entity_type_id)) { + // Make sure the new "revision_default" entity key is available also to + // code using the latest installed definition. + $definition_update_manager->updateEntityType($entity_type); + + $storage_definition = BaseFieldDefinition::create('boolean') + ->setLabel(t('Default revision')) + ->setDescription(t('A flag indicating whether this was a default revision when it was saved.')) + ->setTranslatable(FALSE) + ->setRevisionable(TRUE) + // We cannot tell whether existing revisions were default or not when + // they were created, but since we did not support creating non-default + // revisions in any core stable UI so far, we default to TRUE. + ->setInitialValue(TRUE); + + $definition_update_manager + ->installFieldStorageDefinition($field_name, $entity_type_id, $entity_type_id, $storage_definition); + } } } diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php index fa55935bba..348c33cbb8 100644 --- a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php +++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php @@ -113,6 +113,7 @@ public function testEntityTypeUpdateWithoutData() { // The revision key is now defined, so the revision field needs to be // created. t('The %field_name field needs to be installed.', ['%field_name' => 'Revision ID']), + t('The %field_name field needs to be installed.', ['%field_name' => 'Default revision']), ], ]; $this->assertEqual($this->entityDefinitionUpdateManager->getChangeSummary(), $expected, 'EntityDefinitionUpdateManager reports the expected change summary.'); diff --git a/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php b/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php index 8bdd656ad6..3b9529ee6d 100644 --- a/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php +++ b/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php @@ -88,7 +88,7 @@ public function testRevisionableContentEntity() { /** * Tests the behavior of the "revision_default" flag. * - * @covers \Drupal\Core\Entity\RevisionLogEntityTrait::wasDefaultRevision + * @covers \Drupal\Core\Entity\ContentEntityBase::wasDefaultRevision */ public function testWasDefaultRevision() { $entity_type_id = 'entity_test_mul_revlog'; diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php index 5c97afad6d..285cdda3ae 100644 --- a/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php @@ -60,6 +60,7 @@ public function testGetKeys($entity_keys, $expected) { $entity_type = $this->setUpEntityType(['entity_keys' => $entity_keys]); $expected += [ 'default_langcode' => 'default_langcode', + 'revision_default' => 'revision_default', 'revision_translation_affected' => 'revision_translation_affected', ]; $this->assertSame($expected, $entity_type->getKeys()); diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php index bf3fd46eb6..90a14bbb60 100644 --- a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php @@ -777,6 +777,7 @@ public function testGetTableMappingRevisionableTranslatable(array $entity_keys) 'bundle' => $entity_keys['bundle'], 'uuid' => $entity_keys['uuid'], 'langcode' => 'langcode', + 'revision_default' => 'revision_default', ]; $revision_metadata_keys = [ 'revision_created' => 'revision_timestamp', @@ -801,6 +802,7 @@ public function testGetTableMappingRevisionableTranslatable(array $entity_keys) ['bundle', $entity_keys['bundle']], ['revision', $entity_keys['revision']], ['langcode', $entity_keys['langcode']], + ['revision_default', $entity_keys['revision_default']], ])); $this->entityType->expects($this->any()) ->method('getRevisionMetadataKeys') @@ -834,6 +836,7 @@ public function testGetTableMappingRevisionableTranslatable(array $entity_keys) $entity_keys['id'], $entity_keys['revision'], $entity_keys['langcode'], + $entity_keys['revision_default'], ])); $expected = array_merge($expected, array_values($revision_metadata_keys)); $actual = $mapping->getFieldNames('entity_test_revision'); @@ -886,6 +889,7 @@ public function testGetTableMappingRevisionableTranslatableWithFields(array $ent 'bundle' => $entity_keys['bundle'], 'uuid' => $entity_keys['uuid'], 'langcode' => 'langcode', + 'revision_default' => 'revision_default', ]; // PHPUnit does not allow for multiple data providers. @@ -926,6 +930,7 @@ public function testGetTableMappingRevisionableTranslatableWithFields(array $ent ['bundle', $entity_keys['bundle']], ['revision', $entity_keys['revision']], ['langcode', $entity_keys['langcode']], + ['revision_default', $entity_keys['revision_default']], ])); $this->entityType->expects($this->any()) ->method('getRevisionMetadataKeys') @@ -967,6 +972,7 @@ public function testGetTableMappingRevisionableTranslatableWithFields(array $ent $entity_keys['id'], $entity_keys['revision'], $entity_keys['langcode'], + $entity_keys['revision_default'], ]), array_values($revision_metadata_field_names)); $actual = $mapping->getFieldNames('entity_test_revision'); $this->assertEquals($expected, $actual); diff --git a/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php b/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php index 150941fab4..2eecec9756 100644 --- a/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php +++ b/core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php @@ -69,7 +69,6 @@ public static function getSkippedDeprecations() { 'The revision_user revision metadata key is not set.', 'The revision_created revision metadata key is not set.', 'The revision_log_message revision metadata key is not set.', - 'The revision_default revision metadata key is not set.', 'The "entity.query" service relies on the deprecated "Drupal\Core\Entity\Query\QueryFactory" class. It should either be deprecated or its implementation upgraded.', 'MigrateCckField is deprecated in Drupal 8.3.x and will be removed before Drupal 9.0.x. Use \Drupal\migrate_drupal\Annotation\MigrateField instead.', 'MigrateCckFieldPluginManager is deprecated in Drupal 8.3.x and will be removed before Drupal 9.0.x. Use \Drupal\migrate_drupal\Annotation\MigrateFieldPluginManager instead.',