function ConfigImporterMissingContentTest::testMissingContent in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/config/src/Tests/ConfigImporterMissingContentTest.php \Drupal\config\Tests\ConfigImporterMissingContentTest::testMissingContent()
Tests the missing content event is fired.
See also
\Drupal\Core\Config\ConfigImporter::processMissingContent()
\Drupal\config_import_test\EventSubscriber
File
- core/
modules/ config/ src/ Tests/ ConfigImporterMissingContentTest.php, line 73 - Contains \Drupal\config\Tests\ConfigImporterMissingContentTest.
Class
- ConfigImporterMissingContentTest
- Tests importing configuration which has missing content dependencies.
Namespace
Drupal\config\TestsCode
function testMissingContent() {
\Drupal::state()
->set('config_import_test.config_import_missing_content', TRUE);
// Update a configuration entity in the sync directory to have a dependency
// on two content entities that do not exist.
$storage = $this->container
->get('config.storage');
$sync = $this->container
->get('config.storage.sync');
$entity_one = entity_create('entity_test', array(
'name' => 'one',
));
$entity_two = entity_create('entity_test', array(
'name' => 'two',
));
$entity_three = entity_create('entity_test', array(
'name' => 'three',
));
$dynamic_name = 'config_test.dynamic.dotted.default';
$original_dynamic_data = $storage
->read($dynamic_name);
// Entity one will be resolved by
// \Drupal\config_import_test\EventSubscriber::onConfigImporterMissingContentOne().
$original_dynamic_data['dependencies']['content'][] = $entity_one
->getConfigDependencyName();
// Entity two will be resolved by
// \Drupal\config_import_test\EventSubscriber::onConfigImporterMissingContentTwo().
$original_dynamic_data['dependencies']['content'][] = $entity_two
->getConfigDependencyName();
// Entity three will be resolved by
// \Drupal\Core\Config\Importer\FinalMissingContentSubscriber.
$original_dynamic_data['dependencies']['content'][] = $entity_three
->getConfigDependencyName();
$sync
->write($dynamic_name, $original_dynamic_data);
// Import.
$this->configImporter
->reset()
->import();
$this
->assertEqual([], $this->configImporter
->getErrors(), 'There were no errors during the import.');
$this
->assertEqual($entity_one
->uuid(), \Drupal::state()
->get('config_import_test.config_import_missing_content_one'), 'The missing content event is fired during configuration import.');
$this
->assertEqual($entity_two
->uuid(), \Drupal::state()
->get('config_import_test.config_import_missing_content_two'), 'The missing content event is fired during configuration import.');
$original_dynamic_data = $storage
->read($dynamic_name);
$this
->assertEqual([
$entity_one
->getConfigDependencyName(),
$entity_two
->getConfigDependencyName(),
$entity_three
->getConfigDependencyName(),
], $original_dynamic_data['dependencies']['content'], 'The imported configuration entity has the missing content entity dependency.');
}