View source
<?php
namespace Drupal\field\Tests;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
class FieldImportCreateTest extends FieldUnitTestBase {
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}";
$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));
entity_test_create_bundle('test_bundle');
\Drupal::service('module_installer')
->install(array(
'field_test_config',
));
$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.');
$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.');
$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']));
}
function testImportCreate() {
$field_name = 'field_test_import_sync';
$field_storage_id = "entity_test.{$field_name}";
$field_id = "entity_test.entity_test.{$field_name}";
$field_storage_config_name = "field.storage.{$field_storage_id}";
$field_config_name = "field.field.{$field_id}";
$field_name_2 = 'field_test_import_sync_2';
$field_storage_id_2 = "entity_test.{$field_name_2}";
$field_id_2a = "entity_test.test_bundle.{$field_name_2}";
$field_id_2b = "entity_test.test_bundle_2.{$field_name_2}";
$field_storage_config_name_2 = "field.storage.{$field_storage_id_2}";
$field_config_name_2a = "field.field.{$field_id_2a}";
$field_config_name_2b = "field.field.{$field_id_2b}";
$active = $this->container
->get('config.storage');
$sync = $this->container
->get('config.storage.sync');
$this
->copyConfig($active, $sync);
$src_dir = drupal_get_path('module', 'field_test_config') . '/sync';
$target_dir = $this->configDirectories[CONFIG_SYNC_DIRECTORY];
$this
->assertTrue(file_unmanaged_copy("{$src_dir}/{$field_storage_config_name}.yml", "{$target_dir}/{$field_storage_config_name}.yml"));
$this
->assertTrue(file_unmanaged_copy("{$src_dir}/{$field_config_name}.yml", "{$target_dir}/{$field_config_name}.yml"));
$this
->assertTrue(file_unmanaged_copy("{$src_dir}/{$field_storage_config_name_2}.yml", "{$target_dir}/{$field_storage_config_name_2}.yml"));
$this
->assertTrue(file_unmanaged_copy("{$src_dir}/{$field_config_name_2a}.yml", "{$target_dir}/{$field_config_name_2a}.yml"));
$this
->assertTrue(file_unmanaged_copy("{$src_dir}/{$field_config_name_2b}.yml", "{$target_dir}/{$field_config_name_2b}.yml"));
$this
->configImporter()
->import();
$field_storage = FieldStorageConfig::load($field_storage_id);
$this
->assertTrue($field_storage, 'Test import storage field from sync exists');
$field = FieldConfig::load($field_id);
$this
->assertTrue($field, 'Test import field from sync exists');
$field_storage = FieldStorageConfig::load($field_storage_id_2);
$this
->assertTrue($field_storage, 'Test import storage field 2 from sync exists');
$field = FieldConfig::load($field_id_2a);
$this
->assertTrue($field, 'Test import field 2a from sync exists');
$field = FieldConfig::load($field_id_2b);
$this
->assertTrue($field, 'Test import field 2b from sync exists');
}
}