diff --git a/core/modules/block_content/block_content.install b/core/modules/block_content/block_content.install index 04926f1..e6b31b7 100644 --- a/core/modules/block_content/block_content.install +++ b/core/modules/block_content/block_content.install @@ -88,6 +108,7 @@ function block_content_update_8400() { ->setDescription(new TranslatableMarkup('A boolean indicating the published state.')) ->setRevisionable(TRUE) ->setTranslatable(TRUE) + ->setRequired(TRUE) ->setDefaultValue(TRUE); $has_content_translation_status_field = \Drupal::moduleHandler()->moduleExists('content_translation') && $definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content'); @@ -107,7 +128,7 @@ function block_content_update_8400() { ->fields(['content_translation_status' => NULL]) ->execute(); - // A site may have disabled revisonability for this entity type. + // A site may have disabled revisionability for this entity type. if ($entity_type->isRevisionable()) { $database->update($entity_type->getRevisionDataTable()) ->fields(['content_translation_status' => NULL]) @@ -116,7 +137,6 @@ function block_content_update_8400() { $content_translation_status = $definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content'); $definition_update_manager->uninstallFieldStorageDefinition($content_translation_status); - $definition_update_manager->updateFieldStorageDefinition($status); } } diff --git a/core/modules/block_content/src/Tests/BlockContentUpdateEntityFields.php b/core/modules/block_content/src/Tests/BlockContentUpdateEntityFields.php deleted file mode 100644 index ab59eba..0000000 --- a/core/modules/block_content/src/Tests/BlockContentUpdateEntityFields.php +++ /dev/null @@ -1,39 +0,0 @@ -databaseDumpFiles = [ - __DIR__ . '/../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz', - ]; - } - - /** - * Tests that email token in status_blocked of user.mail is updated. - */ - public function testAddingFields() { - $this->runUpdates(); - - $post_revision_created = \Drupal::entityDefinitionUpdateManager()->getFieldStorageDefinition('revision_created', 'block_content'); - $post_revision_user = \Drupal::entityDefinitionUpdateManager()->getFieldStorageDefinition('revision_user', 'block_content'); - $this->assertTrue($post_revision_created instanceof BaseFieldDefinition, "Revision created field found"); - $this->assertTrue($post_revision_user instanceof BaseFieldDefinition, "Revision user field found"); - - $this->assertEqual('created', $post_revision_created->getType(), "Field is type created"); - $this->assertEqual('entity_reference', $post_revision_user->getType(), "Field is type entity_reference"); - } - -} diff --git a/core/modules/block_content/src/Tests/Update/BlockContentUpdateTest.php b/core/modules/block_content/src/Tests/Update/BlockContentUpdateTest.php index 8c60f32..888607e 100644 --- a/core/modules/block_content/src/Tests/Update/BlockContentUpdateTest.php +++ b/core/modules/block_content/src/Tests/Update/BlockContentUpdateTest.php @@ -2,14 +2,14 @@ namespace Drupal\block_content\Tests\Update; -use Drupal\block_content\Entity\BlockContent; use Drupal\Core\Field\BaseFieldDefinition; use Drupal\system\Tests\Update\UpdatePathTestBase; /** - * Tests that block content settings are properly updated during database updates. + * Tests update functions for the Block Content module. * * @group block_content + * @group Update */ class BlockContentUpdateTest extends UpdatePathTestBase { @@ -23,47 +23,44 @@ protected function setDatabaseDumpFiles() { } /** - * Tests adding a status field to the block content entity type. - * - * @see block_content_update_8300() + * Tests the revision metadata fields and revision data table additions. */ - public function testStatusField() { - $storage_definition = BaseFieldDefinition::create('boolean') - ->setLabel(t('Translation status')) - ->setDescription(t('A boolean indicating whether the translation is visible to non-translators.')) - ->setDefaultValue(TRUE) - ->setRevisionable(TRUE) - ->setTranslatable(TRUE); - \Drupal::entityDefinitionUpdateManager() - ->installFieldStorageDefinition('content_translation_status', 'block_content', 'block_content', $storage_definition); + public function testSimpleUpdates() { + $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager(); + $entity_type = $entity_definition_update_manager->getEntityType('block_content'); + $this->assertNull($entity_type->getRevisionDataTable()); - $schema = \Drupal::database()->schema(); - $spec = ['type' => 'int', 'not null' => FALSE]; - $schema->addField('block_content_field_revision', 'content_translation_status', $spec); - $schema->addField('block_content_field_data', 'content_translation_status', $spec); + $this->runUpdates(); + + $post_revision_created = $entity_definition_update_manager->getFieldStorageDefinition('revision_created', 'block_content'); + $post_revision_user = $entity_definition_update_manager->getFieldStorageDefinition('revision_user', 'block_content'); + $this->assertTrue($post_revision_created instanceof BaseFieldDefinition, "Revision created field found"); + $this->assertTrue($post_revision_user instanceof BaseFieldDefinition, "Revision user field found"); - // Check that the 'status' field does not exist prior to the update. - $field = \Drupal::entityDefinitionUpdateManager() - ->getFieldStorageDefinition('status', 'block_content'); - $this->assertNull($field); + $this->assertEqual('created', $post_revision_created->getType(), "Field is type created"); + $this->assertEqual('entity_reference', $post_revision_user->getType(), "Field is type entity_reference"); - $content_translation_status = \Drupal::entityDefinitionUpdateManager() - ->getFieldStorageDefinition('content_translation_status', 'block_content'); - $this->assertEqual('Translation status', $content_translation_status->getLabel()); + $entity_type = $entity_definition_update_manager->getEntityType('block_content'); + $this->assertEqual('block_content_field_revision', $entity_type->getRevisionDataTable()); + } - $this->assertTrue($schema->fieldExists('block_content_field_revision', 'content_translation_status')); - $this->assertTrue($schema->fieldExists('block_content_field_data', 'content_translation_status')); + /** + * Tests adding a status field to the block content entity type. + * + * @see block_content_update_8400() + */ + public function testStatusFieldAddition() { + $schema = \Drupal::database()->schema(); + $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager(); // Run updates. $this->runUpdates(); // Check that the field exists and has the correct label. - $updated_field = \Drupal::entityDefinitionUpdateManager() - ->getFieldStorageDefinition('status', 'block_content'); + $updated_field = $entity_definition_update_manager->getFieldStorageDefinition('status', 'block_content'); $this->assertEqual('Publishing status', $updated_field->getLabel()); - $content_translation_status = \Drupal::entityDefinitionUpdateManager() - ->getFieldStorageDefinition('content_translation_status', 'block_content'); + $content_translation_status = $entity_definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content'); $this->assertNull($content_translation_status); $this->assertFalse($schema->fieldExists('block_content_field_revision', 'content_translation_status')); diff --git a/core/modules/block_content/tests/src/Functional/UnpublishedBlockTest.php b/core/modules/block_content/tests/src/Functional/UnpublishedBlockTest.php index 9aa8091..082a1ae 100644 --- a/core/modules/block_content/tests/src/Functional/UnpublishedBlockTest.php +++ b/core/modules/block_content/tests/src/Functional/UnpublishedBlockTest.php @@ -27,7 +27,10 @@ class UnpublishedBlockTest extends BrowserTestBase { * Tests unpublishing of block_content entities. */ public function testViewShowsCorrectStates() { - $block_content = BlockContent::create(['type' => 'basic']); + $block_content = BlockContent::create([ + 'info' => 'Test block', + 'type' => 'basic', + ]); $block_content->save(); $this->placeBlock('block_content:' . $block_content->uuid());