function FieldImportCreateTest::testImportCreateDefault

Tests creating fields and instances during default config import.

File

drupal/core/modules/field/lib/Drupal/field/Tests/FieldImportCreateTest.php, line 28
Contains \Drupal\field\Tests\FieldImportCreateTest.

Class

FieldImportCreateTest
Tests creating fields and instances as part of config import.

Namespace

Drupal\field\Tests

Code

function testImportCreateDefault() {
  $field_id = 'field_test_import';
  $instance_id = "test_entity.test_bundle.{$field_id}";
  $field_id_2 = 'field_test_import_2';
  $instance_id_2a = "test_entity.test_bundle.{$field_id_2}";
  $instance_id_2b = "test_entity.test_bundle_2.{$field_id_2}";

  // Check that the fields and instances do not exist yet.
  $this
    ->assertFalse(entity_load('field_entity', $field_id));
  $this
    ->assertFalse(entity_load('field_instance', $instance_id));
  $this
    ->assertFalse(entity_load('field_entity', $field_id_2));
  $this
    ->assertFalse(entity_load('field_instance', $instance_id_2a));
  $this
    ->assertFalse(entity_load('field_instance', $instance_id_2b));

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

  // Enable field_test_config module and check that the field and instance
  // shipped in the module's default config were created.
  module_enable(array(
    'field_test_config',
  ));

  // A field with one instance.
  $field = entity_load('field_entity', $field_id);
  $this
    ->assertTrue($field, 'The field was created.');
  $instance = entity_load('field_instance', $instance_id);
  $this
    ->assertTrue($instance, 'The field instance was deleted.');

  // A field with multiple instances.
  $field_2 = entity_load('field_entity', $field_id_2);
  $this
    ->assertTrue($field_2, 'The second field was created.');
  $instance_2a = entity_load('field_instance', $instance_id_2a);
  $this
    ->assertTrue($instance->bundle, 'test_bundle', 'The second field instance was created on bundle test_bundle.');
  $instance_2b = entity_load('field_instance', $instance_id_2b);
  $this
    ->assertTrue($instance->bundle, 'test_bundle_2', 'The second field instance was created on bundle test_bundle_2.');

  // Tests field info contains the right data.
  $instances = Field::fieldInfo()
    ->getInstances('test_entity');
  $this
    ->assertEqual(count($instances['test_bundle']), 2);
  $this
    ->assertTrue(isset($instances['test_bundle']['field_test_import']));
  $this
    ->assertTrue(isset($instances['test_bundle']['field_test_import_2']));
  $this
    ->assertEqual(count($instances['test_bundle_2']), 1);
  $this
    ->assertTrue(isset($instances['test_bundle_2']['field_test_import_2']));
}