diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigInstallWebTest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigInstallWebTest.php index 3bb7839..5c40fab 100644 --- a/core/modules/config/lib/Drupal/config/Tests/ConfigInstallWebTest.php +++ b/core/modules/config/lib/Drupal/config/Tests/ConfigInstallWebTest.php @@ -90,6 +90,25 @@ function testIntegrationModuleReinstallation() { $config_entity = \Drupal::config($default_configuration_entity); $this->assertIdentical($config_entity->isNew(), FALSE); $this->assertIdentical($config_entity->get('label'), 'Customized integration config label'); + + // Uninstall the config_test module + // First uninstall the dependency on the config_integration_test + \Drupal::moduleHandler()->uninstall(array('config_integration_test')); + + // The entity exists + $this->assertIdentical($config_entity->get('label'), 'Customized integration config label'); + + // Clear the delete flag + \Drupal::state()->set('ConfigTestStorageController.deleteCalled', FALSE); + + \Drupal::moduleHandler()->uninstall(array('config_test')); + + // Set if delete has been called + $this->assertIdentical(\Drupal::state()->get('ConfigTestStorageController.deleteCalled'), TRUE); + + // Verify that the entity has been removed. + $this->assertIdentical($config_entity->get('label'), NULL); + $this->assertIdentical($config_entity->isNew(), TRUE); } } diff --git a/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestStorageController.php b/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestStorageController.php index a73cffb..93b2e42 100644 --- a/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestStorageController.php +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestStorageController.php @@ -45,4 +45,11 @@ public function importDelete($name, Config $new_config, Config $old_config) { return parent::importDelete($name, $new_config, $old_config); } + /** + * Implements Drupal\Core\Entity\EntityStorageControllerInterface::delete(). + */ + public function delete(array $entities) { + \Drupal::state()->set('ConfigTestStorageController.deleteCalled', TRUE); + parent::delete($entities); + } }