container->get('config.factory'); $config_factory ->getEditable('system.site') ->set('name', $non_overridden_name) ->set('slogan', $non_overridden_slogan) ->set('mail', $non_overridden_mail) ->set('weight_select_max', 50) ->save(); // Ensure that no overrides are applying. $this->assertEqual($non_overridden_name, $config_factory->get('system.site')->get('name')); $this->assertEqual($non_overridden_slogan, $config_factory->get('system.site')->get('slogan')); $this->assertEqual($non_overridden_mail, $config_factory->get('system.site')->get('mail')); $this->assertEqual(50, $config_factory->get('system.site')->get('weight_select_max')); // Override using language. $language = new Language([ 'name' => 'French', 'id' => 'fr', ]); \Drupal::languageManager()->setConfigOverrideLanguage($language); \Drupal::languageManager() ->getLanguageConfigOverride($language->getId(), 'system.site') ->set('name', $language_overridden_name) ->set('mail', $language_overridden_mail) ->save(); $this->assertEqual($language_overridden_name, $config_factory->get('system.site')->get('name')); $this->assertEqual($non_overridden_slogan, $config_factory->get('system.site')->get('slogan')); $this->assertEqual($language_overridden_mail, $config_factory->get('system.site')->get('mail')); $this->assertEqual(50, $config_factory->get('system.site')->get('weight_select_max')); // Enable module overrides. Do not override system.site:mail to prove that // the language override still applies. $GLOBALS['config_test_run_module_overrides'] = TRUE; $config_factory->reset('system.site'); $this->assertEqual($module_overridden_name, $config_factory->get('system.site')->get('name')); $this->assertEqual($module_overridden_slogan, $config_factory->get('system.site')->get('slogan')); $this->assertEqual($language_overridden_mail, $config_factory->get('system.site')->get('mail')); $this->assertEqual(50, $config_factory->get('system.site')->get('weight_select_max')); // Configure a global override to simulate overriding using settings.php. Do // not override system.site:mail or system.site:slogan to prove that the // language and module overrides still apply. $GLOBALS['config']['system.site']['name'] = 'Site name global conf override'; $config_factory->reset('system.site'); $this->assertEqual('Site name global conf override', $config_factory->get('system.site')->get('name')); $this->assertEqual($module_overridden_slogan, $config_factory->get('system.site')->get('slogan')); $this->assertEqual($language_overridden_mail, $config_factory->get('system.site')->get('mail')); $this->assertEqual(50, $config_factory->get('system.site')->get('weight_select_max')); $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($non_overridden_mail, $config_factory->get('system.site')->getOriginal('mail', FALSE)); $this->assertEqual(50, $config_factory->get('system.site')->getOriginal('weight_select_max', FALSE)); unset($GLOBALS['config_test_run_module_overrides']); } }