3 namespace Drupal\KernelTests\Core\Config;
5 use Drupal\KernelTests\KernelTestBase;
8 * Tests module overrides of configuration using event subscribers.
12 class ConfigModuleOverridesTest extends KernelTestBase {
19 public static $modules = ['system', 'config', 'config_override_test'];
21 public function testSimpleModuleOverrides() {
22 $GLOBALS['config_test_run_module_overrides'] = TRUE;
23 $name = 'system.site';
24 $overridden_name = 'ZOMG overridden site name';
25 $non_overridden_name = 'ZOMG this name is on disk mkay';
26 $overridden_slogan = 'Yay for overrides!';
27 $non_overridden_slogan = 'Yay for defaults!';
28 $config_factory = $this->container->get('config.factory');
31 ->set('name', $non_overridden_name)
32 ->set('slogan', $non_overridden_slogan)
35 $this->assertEqual($non_overridden_name, $config_factory->get('system.site')->getOriginal('name', FALSE));
36 $this->assertEqual($non_overridden_slogan, $config_factory->get('system.site')->getOriginal('slogan', FALSE));
37 $this->assertEqual($overridden_name, $config_factory->get('system.site')->get('name'));
38 $this->assertEqual($overridden_slogan, $config_factory->get('system.site')->get('slogan'));
40 // Test overrides of completely new configuration objects. In normal runtime
41 // this should only happen for configuration entities as we should not be
42 // creating simple configuration objects on the fly.
43 $config = $config_factory->get('config_override_test.new');
44 $this->assertTrue($config->isNew(), 'The configuration object config_override_test.new is new');
45 $this->assertIdentical($config->get('module'), 'override');
46 $this->assertIdentical($config->getOriginal('module', FALSE), NULL);
48 unset($GLOBALS['config_test_run_module_overrides']);