diff --git a/core/modules/config/config.test b/core/modules/config/config.test index 26092d1..f0e7df0 100644 --- a/core/modules/config/config.test +++ b/core/modules/config/config.test @@ -346,13 +346,15 @@ class ConfigUpgradeTestCase extends WebTestBase { ->values(array('config_upgrade_bar', serialize($this->testContent))) ->execute(); + // Perform migration. update_variables_to_config('config_upgrade.test', array( 'config_upgrade_bar' => 'parent.bar', 'config_upgrade_foo' => 'foo', - // Non-existing variable. + // A default configuration value for which no variable exists. 'config_upgrade_baz' => 'parent.baz', )); + // Verify that variables have been converted and default values exist. $config = config('config_upgrade.test'); $this->assertIdentical($config->get('foo'), $this->testContent); $this->assertIdentical($config->get('parent.bar'), $this->testContent); @@ -361,5 +363,27 @@ class ConfigUpgradeTestCase extends WebTestBase { // Verify that variables have been deleted. $variables = db_query('SELECT name FROM {variable} WHERE name IN (:names)', array(':names' => array('config_upgrade_bar', 'config_upgrade_foo')))->fetchCol(); $this->assertFalse($variables); + + // Add another variable to migrate into the same config object. + db_insert('variable') + ->fields(array('name', 'value')) + ->values(array('config_upgrade_additional', serialize($this->testContent))) + ->execute(); + + // Perform migration into the exsting config object. + update_variables_to_config('config_upgrade.test', array( + 'config_upgrade_additional' => 'parent.additional', + )); + + // Verify that new variables have been converted and existing still exist. + $config = config('config_upgrade.test'); + $this->assertIdentical($config->get('foo'), $this->testContent); + $this->assertIdentical($config->get('parent.bar'), $this->testContent); + $this->assertIdentical($config->get('parent.baz'), 'Baz'); + $this->assertIdentical($config->get('parent.additional'), $this->testContent); + + // Verify that variables have been deleted. + $variables = db_query('SELECT name FROM {variable} WHERE name IN (:names)', array(':names' => array('config_upgrade_additional')))->fetchCol(); + $this->assertFalse($variables); } }