You are here

function FieldImportCreateTest::testImportCreateDefault in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/field/src/Tests/FieldImportCreateTest.php \Drupal\field\Tests\FieldImportCreateTest::testImportCreateDefault()

Tests creating field storages and fields during default config import.

File

core/modules/field/src/Tests/FieldImportCreateTest.php, line 24
Contains \Drupal\field\Tests\FieldImportCreateTest.

Class

FieldImportCreateTest
Create field storages and fields during config create method invocation.

Namespace

Drupal\field\Tests

Code

function testImportCreateDefault() {
  $field_name = 'field_test_import';
  $field_storage_id = "entity_test.{$field_name}";
  $field_id = "entity_test.entity_test.{$field_name}";
  $field_name_2 = 'field_test_import_2';
  $field_storage_id_2 = "entity_test.{$field_name_2}";
  $field_id_2a = "entity_test.entity_test.{$field_name_2}";
  $field_id_2b = "entity_test.test_bundle.{$field_name_2}";

  // Check that the field storages and fields do not exist yet.
  $this
    ->assertFalse(FieldStorageConfig::load($field_storage_id));
  $this
    ->assertFalse(FieldConfig::load($field_id));
  $this
    ->assertFalse(FieldStorageConfig::load($field_storage_id_2));
  $this
    ->assertFalse(FieldConfig::load($field_id_2a));
  $this
    ->assertFalse(FieldConfig::load($field_id_2b));

  // Create a second bundle for the 'Entity test' entity type.
  entity_test_create_bundle('test_bundle');

  // Enable field_test_config module and check that the field and storage
  // shipped in the module's default config were created.
  \Drupal::service('module_installer')
    ->install(array(
    'field_test_config',
  ));

  // A field storage with one single field.
  $field_storage = FieldStorageConfig::load($field_storage_id);
  $this
    ->assertTrue($field_storage, 'The field was created.');
  $field = FieldConfig::load($field_id);
  $this
    ->assertTrue($field, 'The field was deleted.');

  // A field storage with two fields.
  $field_storage_2 = FieldStorageConfig::load($field_storage_id_2);
  $this
    ->assertTrue($field_storage_2, 'The second field was created.');
  $this
    ->assertTrue($field
    ->getTargetBundle(), 'test_bundle', 'The second field was created on bundle test_bundle.');
  $this
    ->assertTrue($field
    ->getTargetBundle(), 'test_bundle_2', 'The second field was created on bundle test_bundle_2.');

  // Tests fields.
  $ids = \Drupal::entityQuery('field_config')
    ->condition('entity_type', 'entity_test')
    ->condition('bundle', 'entity_test')
    ->execute();
  $this
    ->assertEqual(count($ids), 2);
  $this
    ->assertTrue(isset($ids['entity_test.entity_test.field_test_import']));
  $this
    ->assertTrue(isset($ids['entity_test.entity_test.field_test_import_2']));
  $ids = \Drupal::entityQuery('field_config')
    ->condition('entity_type', 'entity_test')
    ->condition('bundle', 'test_bundle')
    ->execute();
  $this
    ->assertEqual(count($ids), 1);
  $this
    ->assertTrue(isset($ids['entity_test.test_bundle.field_test_import_2']));
}