60 lines
1.9 KiB
PHP
60 lines
1.9 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Drupal\Tests;
|
||
|
|
||
|
use Drupal\Core\Config\ConfigImporter;
|
||
|
use Drupal\Core\Config\StorageComparer;
|
||
|
use Drupal\Core\Config\StorageInterface;
|
||
|
|
||
|
/**
|
||
|
* Provides helper methods to deal with config system objects in tests.
|
||
|
*/
|
||
|
trait ConfigTestTrait {
|
||
|
|
||
|
/**
|
||
|
* Returns a ConfigImporter object to import test configuration.
|
||
|
*
|
||
|
* @return \Drupal\Core\Config\ConfigImporter
|
||
|
* The config importer object.
|
||
|
*/
|
||
|
protected function configImporter() {
|
||
|
if (!$this->configImporter) {
|
||
|
// Set up the ConfigImporter object for testing.
|
||
|
$storage_comparer = new StorageComparer(
|
||
|
$this->container->get('config.storage.sync'),
|
||
|
$this->container->get('config.storage'),
|
||
|
$this->container->get('config.manager')
|
||
|
);
|
||
|
$this->configImporter = new ConfigImporter(
|
||
|
$storage_comparer,
|
||
|
$this->container->get('event_dispatcher'),
|
||
|
$this->container->get('config.manager'),
|
||
|
$this->container->get('lock'),
|
||
|
$this->container->get('config.typed'),
|
||
|
$this->container->get('module_handler'),
|
||
|
$this->container->get('module_installer'),
|
||
|
$this->container->get('theme_handler'),
|
||
|
$this->container->get('string_translation')
|
||
|
);
|
||
|
}
|
||
|
// Always recalculate the changelist when called.
|
||
|
return $this->configImporter->reset();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Copies configuration objects from source storage to target storage.
|
||
|
*
|
||
|
* @param \Drupal\Core\Config\StorageInterface $source_storage
|
||
|
* The source config storage service.
|
||
|
* @param \Drupal\Core\Config\StorageInterface $target_storage
|
||
|
* The target config storage service.
|
||
|
*/
|
||
|
protected function copyConfig(StorageInterface $source_storage, StorageInterface $target_storage) {
|
||
|
$target_storage->deleteAll();
|
||
|
foreach ($source_storage->listAll() as $name) {
|
||
|
$target_storage->write($name, $source_storage->read($name));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|