diff --git a/core/modules/config/lib/Drupal/config/Controller/ConfigController.php b/core/modules/config/lib/Drupal/config/Controller/ConfigController.php index ff91637..eeec671 100644 --- a/core/modules/config/lib/Drupal/config/Controller/ConfigController.php +++ b/core/modules/config/lib/Drupal/config/Controller/ConfigController.php @@ -85,9 +85,11 @@ public function downloadExport() { file_unmanaged_delete(file_directory_temp() . '/config.tar.gz'); $archiver = new ArchiveTar(file_directory_temp() . '/config.tar.gz', 'gz'); - foreach ($this->targetStorage->listAll() as $name) { - $archiver->addString("$name.yml", Yaml::encode(\Drupal::config($name)->get())); + // Get raw configuration data without overrides. + foreach ($this->configManager->getConfigFactory()->listAll() as $name) { + $archiver->addString("$name.yml", Yaml::encode($this->configManager->getConfigFactory()->get($name)->getRawData())); } + // Get all override data from the remaining collections. foreach ($this->targetStorage->getAllCollectionNames() as $collection) { $collection_storage = $this->targetStorage->createCollection($collection); foreach ($collection_storage->listAll() as $name) { diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigExportUITest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigExportUITest.php index cd486fe..c8987d1 100644 --- a/core/modules/config/lib/Drupal/config/Tests/ConfigExportUITest.php +++ b/core/modules/config/lib/Drupal/config/Tests/ConfigExportUITest.php @@ -7,6 +7,7 @@ namespace Drupal\config\Tests; +use Drupal\Component\Serialization\Yaml; use Drupal\Core\Archiver\Tar; use Drupal\simpletest\WebTestBase; @@ -73,6 +74,12 @@ function testExport() { // Assert that the downloaded archive file contents are the same as the test // site active store. $this->assertIdentical($archive_contents, $config_files); + + // Ensure the test configuration override did not end up exported. + $archiver->extract(file_directory_temp(), array('system.maintenance.yml')); + $file_contents = file_get_contents(file_directory_temp() . '/' . 'system.maintenance.yml'); + $exported = Yaml::decode($file_contents); + $this->assertNotIdentical($exported['message'], 'Foo'); } } diff --git a/core/modules/config/tests/config_test/config_test.module b/core/modules/config/tests/config_test/config_test.module index 77826e0..527fcc6 100644 --- a/core/modules/config/tests/config_test/config_test.module +++ b/core/modules/config/tests/config_test/config_test.module @@ -10,6 +10,9 @@ require_once dirname(__FILE__) . '/config_test.hooks.inc'; +// Override the system maintenance message for testing. +$GLOBALS['config']['system.maintenance']['message'] = 'Foo'; + /** * Loads a ConfigTest object. *