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)); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  | } |