63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare(strict_types=1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Drupal\Tests;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use Drupal\Core\Config\ConfigImporter;
							 | 
						||
| 
								 | 
							
								use Drupal\Core\Config\StorageComparer;
							 | 
						||
| 
								 | 
							
								use Drupal\Core\Config\StorageCopyTrait;
							 | 
						||
| 
								 | 
							
								use Drupal\Core\Config\StorageInterface;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Provides helper methods to deal with config system objects in tests.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								trait ConfigTestTrait {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  use StorageCopyTrait;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * 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->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'),
							 | 
						||
| 
								 | 
							
								        $this->container->get('extension.list.module'),
							 | 
						||
| 
								 | 
							
								        $this->container->get('extension.list.theme')
							 | 
						||
| 
								 | 
							
								      );
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    // 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) {
							 | 
						||
| 
								 | 
							
								    static::replaceStorageContents($source_storage, $target_storage);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |