Pull merge.
[yaffs-website] / web / core / modules / block_content / tests / src / Functional / Update / BlockContentUpdateTest.php
1 <?php
2
3 namespace Drupal\Tests\block_content\Functional\Update;
4
5 use Drupal\Core\Field\BaseFieldDefinition;
6 use Drupal\FunctionalTests\Update\UpdatePathTestBase;
7
8 /**
9  * Tests update functions for the Block Content module.
10  *
11  * @group Update
12  * @group legacy
13  */
14 class BlockContentUpdateTest extends UpdatePathTestBase {
15
16   /**
17    * {@inheritdoc}
18    */
19   protected function setDatabaseDumpFiles() {
20     $this->databaseDumpFiles = [
21       __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
22     ];
23   }
24
25   /**
26    * Tests the revision metadata fields and revision data table additions.
27    */
28   public function testSimpleUpdates() {
29     $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
30     $entity_type = $entity_definition_update_manager->getEntityType('block_content');
31     $this->assertNull($entity_type->getRevisionDataTable());
32
33     $this->runUpdates();
34
35     $post_revision_created = $entity_definition_update_manager->getFieldStorageDefinition('revision_created', 'block_content');
36     $post_revision_user = $entity_definition_update_manager->getFieldStorageDefinition('revision_user', 'block_content');
37     $this->assertTrue($post_revision_created instanceof BaseFieldDefinition, "Revision created field found");
38     $this->assertTrue($post_revision_user instanceof BaseFieldDefinition, "Revision user field found");
39
40     $this->assertEqual('created', $post_revision_created->getType(), "Field is type created");
41     $this->assertEqual('entity_reference', $post_revision_user->getType(), "Field is type entity_reference");
42
43     $entity_type = $entity_definition_update_manager->getEntityType('block_content');
44     $this->assertEqual('block_content_field_revision', $entity_type->getRevisionDataTable());
45   }
46
47   /**
48    * Tests adding a status field to the block content entity type.
49    *
50    * @see block_content_update_8400()
51    */
52   public function testStatusFieldAddition() {
53     $schema = \Drupal::database()->schema();
54     $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
55
56     // Run updates.
57     $this->runUpdates();
58
59     // Check that the field exists and has the correct label.
60     $updated_field = $entity_definition_update_manager->getFieldStorageDefinition('status', 'block_content');
61     $this->assertEqual('Publishing status', $updated_field->getLabel());
62
63     $content_translation_status = $entity_definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content');
64     $this->assertNull($content_translation_status);
65
66     $this->assertFalse($schema->fieldExists('block_content_field_revision', 'content_translation_status'));
67     $this->assertFalse($schema->fieldExists('block_content_field_data', 'content_translation_status'));
68   }
69
70 }