You are here

ConfigModuleOverridesTest.php in Drupal 8

File

core/tests/Drupal/KernelTests/Core/Config/ConfigModuleOverridesTest.php
View source
<?php

namespace Drupal\KernelTests\Core\Config;

use Drupal\KernelTests\KernelTestBase;

/**
 * Tests module overrides of configuration using event subscribers.
 *
 * @group config
 */
class ConfigModuleOverridesTest extends KernelTestBase {

  /**
   * Modules to install.
   *
   * @var array
   */
  public static $modules = [
    'system',
    'config',
    'config_override_test',
  ];
  public function testSimpleModuleOverrides() {
    $GLOBALS['config_test_run_module_overrides'] = TRUE;
    $name = 'system.site';
    $overridden_name = 'ZOMG overridden site name';
    $non_overridden_name = 'ZOMG this name is on disk mkay';
    $overridden_slogan = 'Yay for overrides!';
    $non_overridden_slogan = 'Yay for defaults!';
    $config_factory = $this->container
      ->get('config.factory');
    $config_factory
      ->getEditable($name)
      ->set('name', $non_overridden_name)
      ->set('slogan', $non_overridden_slogan)
      ->save();
    $this
      ->assertEqual($non_overridden_name, $config_factory
      ->get('system.site')
      ->getOriginal('name', FALSE));
    $this
      ->assertEqual($non_overridden_slogan, $config_factory
      ->get('system.site')
      ->getOriginal('slogan', FALSE));
    $this
      ->assertEqual($overridden_name, $config_factory
      ->get('system.site')
      ->get('name'));
    $this
      ->assertEqual($overridden_slogan, $config_factory
      ->get('system.site')
      ->get('slogan'));

    // Test overrides of completely new configuration objects. In normal runtime
    // this should only happen for configuration entities as we should not be
    // creating simple configuration objects on the fly.
    $config = $config_factory
      ->get('config_override_test.new');
    $this
      ->assertTrue($config
      ->isNew(), 'The configuration object config_override_test.new is new');
    $this
      ->assertIdentical($config
      ->get('module'), 'override');
    $this
      ->assertIdentical($config
      ->getOriginal('module', FALSE), NULL);
    unset($GLOBALS['config_test_run_module_overrides']);
  }

}

Classes

Namesort descending Description
ConfigModuleOverridesTest Tests module overrides of configuration using event subscribers.