diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php index 95089f7..0220cbb 100644 --- a/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php +++ b/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php @@ -107,6 +107,7 @@ function testNew() { 'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651', 'label' => 'New', 'style' => '', + 'description' => '', 'langcode' => 'und', ); $staging->write($dynamic_name, $original_dynamic_data); diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php index dd24224..ae45858 100644 --- a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php +++ b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php @@ -59,6 +59,7 @@ function testImport() { 'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651', 'label' => 'New', 'style' => '', + 'description' => '', 'langcode' => 'und', ); $staging->write($dynamic_name, $original_dynamic_data); @@ -128,4 +129,22 @@ function prepareSiteNameUpdate($new_site_name) { $config_data['name'] = $new_site_name; $staging->write('system.site', $config_data); } + + /** + * Tests updating existing configuration. + */ + public function testUpdate() { + // Create a staged version of the configuration object with different data. + $config_data = config('config_test.dynamic.default')->get(); + $config_data['description'] = $this->randomName(); + $this->container->get('config.storage.staging')->write('config_test.dynamic.default', $config_data); + + $this->drupalGet('admin/config/development/sync'); + $this->drupalPost(NULL, array(), t('Import all')); + $this->assertText(t('There is no configuration to import.')); + + $entity = entity_load('config_test', 'default'); + $this->assertIdentical($entity->get('description'), $config_data['description']); + } + } diff --git a/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml b/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml index 3e50e3b..df0a149 100644 --- a/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml +++ b/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml @@ -1,2 +1,3 @@ id: default label: Default +description: Default diff --git a/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php b/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php index 52da777..bf17b9e 100644 --- a/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php @@ -62,4 +62,30 @@ class ConfigTest extends ConfigEntityBase { */ public $style; + /** + * The description for the configuration entity. + * + * @var string + */ + protected $description; + + /** + * Overrides \Drupal\Core\Config\Entity\ConfigEntityBase::getExportProperties(); + */ + public function getExportProperties() { + $names = array( + 'id', + 'uuid', + 'label', + 'style', + 'description', + 'langcode', + ); + $properties = array(); + foreach ($names as $name) { + $properties[$name] = $this->get($name); + } + return $properties; + } + }