function ConfigSnapshotTest::testSnapshot in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/config/src/Tests/ConfigSnapshotTest.php \Drupal\config\Tests\ConfigSnapshotTest::testSnapshot()
Tests config snapshot creation and updating.
File
- core/
modules/ config/ src/ Tests/ ConfigSnapshotTest.php, line 41 - Contains \Drupal\config\Tests\ConfigSnapshotTest.
Class
- ConfigSnapshotTest
- Tests config snapshot creation and updating.
Namespace
Drupal\config\TestsCode
function testSnapshot() {
$active = $this->container
->get('config.storage');
$sync = $this->container
->get('config.storage.sync');
$snapshot = $this->container
->get('config.storage.snapshot');
$config_manager = $this->container
->get('config.manager');
$config_name = 'config_test.system';
$config_key = 'foo';
$new_data = 'foobar';
$active_snapshot_comparer = new StorageComparer($active, $snapshot, $config_manager);
$sync_snapshot_comparer = new StorageComparer($sync, $snapshot, $config_manager);
// Verify that we have an initial snapshot that matches the active
// configuration. This has to be true as no config should be installed.
$this
->assertFalse($active_snapshot_comparer
->createChangelist()
->hasChanges());
// Install the default config.
$this
->installConfig(array(
'config_test',
));
// Although we have imported config this has not affected the snapshot.
$this
->assertTrue($active_snapshot_comparer
->reset()
->hasChanges());
// Update the config snapshot.
\Drupal::service('config.manager')
->createSnapshot($active, $snapshot);
// The snapshot and active config should now contain the same config
// objects.
$this
->assertFalse($active_snapshot_comparer
->reset()
->hasChanges());
// Change a configuration value in sync.
$sync_data = $this
->config($config_name)
->get();
$sync_data[$config_key] = $new_data;
$sync
->write($config_name, $sync_data);
// Verify that active and snapshot match, and that sync doesn't match
// active.
$this
->assertFalse($active_snapshot_comparer
->reset()
->hasChanges());
$this
->assertTrue($sync_snapshot_comparer
->createChangelist()
->hasChanges());
// Import changed data from sync to active.
$this
->configImporter()
->import();
// Verify changed config was properly imported.
\Drupal::configFactory()
->reset($config_name);
$this
->assertIdentical($this
->config($config_name)
->get($config_key), $new_data);
// Verify that a new snapshot was created which and that it matches
// the active config.
$this
->assertFalse($active_snapshot_comparer
->reset()
->hasChanges());
}