diff --git a/core/modules/content_moderation/content_moderation.post_update.php b/core/modules/content_moderation/content_moderation.post_update.php index e2e583e76d9d10e8547d22b4d832df3e5a6ed169..ff5a28a9d3b346518fe9a308396c2f6a222d586c 100644 --- a/core/modules/content_moderation/content_moderation.post_update.php +++ b/core/modules/content_moderation/content_moderation.post_update.php @@ -20,6 +20,7 @@ function content_moderation_post_update_update_cms_default_revisions(&$sandbox) $entity_type_id = &$sandbox['entity_type_id']; if (!isset($entity_type_id)) { $sandbox['bundles'] = []; + $sandbox['entity_type_ids'] = []; /** @var \Drupal\workflows\WorkflowInterface $workflow */ foreach (Workflow::loadMultipleByType('content_moderation') as $workflow) { /** @var \Drupal\content_moderation\Plugin\WorkflowType\ContentModeration $plugin */ diff --git a/core/modules/content_moderation/tests/src/Functional/DefaultContentModerationStateRevisionUpdateTest.php b/core/modules/content_moderation/tests/src/Functional/DefaultContentModerationStateRevisionUpdateTest.php index 6ec6b053be0c01c75d1175c1aded481ebfc53391..4d5314d6ccccf58fcf765504b65f7e27c5096800 100644 --- a/core/modules/content_moderation/tests/src/Functional/DefaultContentModerationStateRevisionUpdateTest.php +++ b/core/modules/content_moderation/tests/src/Functional/DefaultContentModerationStateRevisionUpdateTest.php @@ -20,7 +20,6 @@ protected function setDatabaseDumpFiles() { $this->databaseDumpFiles = [ __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.4.0.bare.standard.php.gz', __DIR__ . '/../../fixtures/update/drupal-8.4.0-content_moderation_installed.php', - __DIR__ . '/../../fixtures/update/drupal-8.default-cms-entity-id-2941736.php', ]; } @@ -28,6 +27,11 @@ protected function setDatabaseDumpFiles() { * Test updating the default revision. */ public function testUpdateDefaultRevision() { + // Include the database fixture required to test updating the default + // revision. This is excluded from ::setDatabaseDumpFiles so that we can + // test the same post_update hook with no test content enabled. + require __DIR__ . '/../../fixtures/update/drupal-8.default-cms-entity-id-2941736.php'; + $this->runUpdates(); foreach (['node', 'block_content'] as $entity_type_id) { @@ -45,6 +49,14 @@ public function testUpdateDefaultRevision() { } } + /** + * Test the post_update hook when no entity types are being moderated. + */ + public function testNoEntitiesUnderModeration() { + // If any errors occur during the post_update hook, the test case will fail. + $this->runUpdates(); + } + /** * Assert for the given entity, the default revision ID matches. *