ConfigTestTrait.php

Same filename in other branches
  1. 9 core/tests/Drupal/Tests/ConfigTestTrait.php
  2. 8.9.x core/tests/Drupal/Tests/ConfigTestTrait.php
  3. 11.x core/tests/Drupal/Tests/ConfigTestTrait.php

Namespace

Drupal\Tests

File

core/tests/Drupal/Tests/ConfigTestTrait.php

View source
<?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);
    }

}

Traits

Title Deprecated Summary
ConfigTestTrait Provides helper methods to deal with config system objects in tests.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.