diff -u b/core/includes/config.inc b/core/includes/config.inc --- b/core/includes/config.inc +++ b/core/includes/config.inc @@ -29,6 +29,12 @@ $source_storage = new FileStorage($config_dir); $target_storage = drupal_container()->get('config.storage'); + // If this module defines any ConfigEntity types then create an empty + // manifest file for each of them. + foreach (config_get_module_config_entities($name) as $entity_info) { + config('manifest.' . $entity_info['config_prefix'])->save(); + } + $config_changes = array( 'delete' => array(), 'create' => array(), diff -u b/core/modules/config/lib/Drupal/config/Tests/ConfigInstallTest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigInstallTest.php --- b/core/modules/config/lib/Drupal/config/Tests/ConfigInstallTest.php +++ b/core/modules/config/lib/Drupal/config/Tests/ConfigInstallTest.php @@ -36,15 +36,24 @@ $default_config = 'config_test.system'; $default_configuration_entity = 'config_test.dynamic.default'; $default_config_manifest = 'manifest.config_test.dynamic'; + $expected_manifest_data = array( + 'default' => array( + 'name' => 'config_test.dynamic.default', + ), + ); + $default_empty_config_manifest = 'manifest.config_test.empty_manifest'; // Verify that default module config does not exist before installation yet. $config = config($default_config); $this->assertIdentical($config->isNew(), TRUE); $config = config($default_configuration_entity); $this->assertIdentical($config->isNew(), TRUE); - // Verify that configuration entity manifest does not exist. + + // Verify that configuration entity manifests do not exist. $config = config($default_config_manifest); $this->assertIdentical($config->isNew(), TRUE); + $config = config($default_empty_config_manifest); + $this->assertIdentical($config->isNew(), TRUE); // Install the test module. $this->enableModules(array('config_test')); @@ -54,9 +63,13 @@ $this->assertIdentical($config->isNew(), FALSE); $config = config($default_configuration_entity); $this->assertIdentical($config->isNew(), FALSE); - // Verify that configuration entity manifest has been created. + + // Verify that configuration entity manifests have been created with + // expected contents. $config = config($default_config_manifest); - $this->assertIdentical($config->isNew(), FALSE); + $this->assertIdentical($config->get(), $expected_manifest_data); + $config = config($default_empty_config_manifest); + $this->assertIdentical($config->get(), array()); // Verify that configuration import callback was invoked for the dynamic // configuration entity. only in patch2: unchanged: --- /dev/null +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTestEmptyManifest.php @@ -0,0 +1,53 @@ +