BlockContentUpdateTest.php

Same filename and directory in other branches
  1. 10 core/modules/block_content/tests/src/Functional/Update/BlockContentUpdateTest.php
  2. 11.x core/modules/block_content/tests/src/Functional/Update/BlockContentUpdateTest.php

Namespace

Drupal\Tests\block_content\Functional\Update

File

core/modules/block_content/tests/src/Functional/Update/BlockContentUpdateTest.php

View source
<?php

namespace Drupal\Tests\block_content\Functional\Update;

use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\FunctionalTests\Update\UpdatePathTestBase;

/**
 * Tests update functions for the Block Content module.
 *
 * @group Update
 * @group legacy
 */
class BlockContentUpdateTest extends UpdatePathTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected function setDatabaseDumpFiles() {
        $this->databaseDumpFiles = [
            __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
        ];
    }
    
    /**
     * Tests the revision metadata fields and revision data table additions.
     */
    public function testSimpleUpdates() {
        $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
        $entity_type = $entity_definition_update_manager->getEntityType('block_content');
        $this->assertNull($entity_type->getRevisionDataTable());
        $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->assertInstanceOf(BaseFieldDefinition::class, $post_revision_created);
        $this->assertInstanceOf(BaseFieldDefinition::class, $post_revision_user);
        $this->assertEqual('created', $post_revision_created->getType(), "Field is type created");
        $this->assertEqual('entity_reference', $post_revision_user->getType(), "Field is type entity_reference");
        $entity_type = $entity_definition_update_manager->getEntityType('block_content');
        $this->assertEqual('block_content_field_revision', $entity_type->getRevisionDataTable());
    }
    
    /**
     * 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 = $entity_definition_update_manager->getFieldStorageDefinition('status', 'block_content');
        $this->assertEqual('Publishing status', $updated_field->getLabel());
        $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'));
        $this->assertFalse($schema->fieldExists('block_content_field_data', 'content_translation_status'));
    }

}

Classes

Title Deprecated Summary
BlockContentUpdateTest Tests update functions for the Block Content module.

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