diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldImportDeleteTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldImportDeleteTest.php index 0db6455..538c2f9 100644 --- a/core/modules/field/lib/Drupal/field/Tests/FieldImportDeleteTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/FieldImportDeleteTest.php @@ -32,20 +32,25 @@ public static function getInfo() { */ function testImportDelete() { $field_id = 'field_test_import'; + $field_id_2 = 'field_test_import_2'; $instance_id = "test_entity.test_bundle.$field_id"; + $instance_id_2a = "test_entity.test_bundle.$field_id"; + $instance_id_2b = "test_entity.test_bundle.$field_id_2"; $field_config_name = "field.field.$field_id"; + $field_config_name_2 = "field.field.$field_id"; $instance_config_name = "field.instance.$instance_id"; + $instance_config_name_2a = "field.instance.$instance_id_2a"; + $instance_config_name_2b = "field.instance.$instance_id_2b"; + + // Create a second bundle for the 'Entity test' entity type. + entity_test_create_bundle('test_bundle_2'); // Import default config. $this->installConfig(array('field_test_config')); - // Check that the config was correctly imported. - $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 created.'); - - $field_uuid = $field->uuid; + // Get the uuid's for the fields. + $field_uuid = entity_load('field_entity', $field_id)->uuid(); + $field_uuid_2 = entity_load('field_entity', $field_id)->uuid(); // Simulate config data to import: // - the current manifest for fields, without the entry for the field we @@ -57,8 +62,11 @@ function testImportDelete() { $active = $this->container->get('config.storage'); $field_manifest = $active->read($field_manifest_name); unset($field_manifest[$field_id]); + unset($field_manifest[$field_id_2]); $instance_manifest = $active->read($instance_manifest_name); unset($instance_manifest[$instance_id]); + unset($instance_manifest[$instance_id_2a]); + unset($instance_manifest[$instance_id_2b]); // Save as files in the the staging directory. $staging = $this->container->get('config.storage.staging'); @@ -68,20 +76,30 @@ function testImportDelete() { // Import the content of the staging directory. config_import(); - // Check that the field and instance are gone. + // Check that the fields and instances are gone. $field = entity_load('field_entity', $field_id, TRUE); $this->assertFalse($field, 'The field was deleted.'); + $field_2 = entity_load('field_entity', $field_id_2, TRUE); + $this->assertFalse($field_2, 'The second field was deleted.'); $instance = entity_load('field_instance', $instance_id, TRUE); $this->assertFalse($instance, 'The field instance was deleted.'); + $instance_2a = entity_load('field_instance', $instance_id_2a, TRUE); + $this->assertFalse($instance_2a, 'The second field instance on test bundle was deleted.'); + $instance_2b = entity_load('field_instance', $instance_id_2b, TRUE); + $this->assertFalse($instance_2b, 'The second field instance on test bundle 2 was deleted.'); // Check that all config files are gone. $active = $this->container->get('config.storage'); $this->assertIdentical($active->listAll($field_config_name), array()); + $this->assertIdentical($active->listAll($field_config_name_2), array()); $this->assertIdentical($active->listAll($instance_config_name), array()); + $this->assertIdentical($active->listAll($instance_config_name_2a), array()); + $this->assertIdentical($active->listAll($instance_config_name_2b), array()); // Check that the field definition is preserved in state. $deleted_fields = \Drupal::state()->get('field.field.deleted') ?: array(); $this->assertTrue(isset($deleted_fields[$field_uuid])); + $this->assertTrue(isset($deleted_fields[$field_uuid_2])); // Purge field data, and check that the field definition has been completely // removed once the data is purged.