function LocaleConfigManagerTest::testGetDefaultConfigLangcode

Same name in other branches
  1. 9 core/modules/locale/tests/src/Kernel/LocaleConfigManagerTest.php \Drupal\Tests\locale\Kernel\LocaleConfigManagerTest::testGetDefaultConfigLangcode()
  2. 8.9.x core/modules/locale/tests/src/Kernel/LocaleConfigManagerTest.php \Drupal\Tests\locale\Kernel\LocaleConfigManagerTest::testGetDefaultConfigLangcode()
  3. 10 core/modules/locale/tests/src/Kernel/LocaleConfigManagerTest.php \Drupal\Tests\locale\Kernel\LocaleConfigManagerTest::testGetDefaultConfigLangcode()

Tests getDefaultConfigLangcode().

File

core/modules/locale/tests/src/Kernel/LocaleConfigManagerTest.php, line 79

Class

LocaleConfigManagerTest
Tests that the locale config manager operates correctly.

Namespace

Drupal\Tests\locale\Kernel

Code

public function testGetDefaultConfigLangcode() : void {
    // Install the Language module's configuration so we can use the
    // module_installer service.
    $this->installConfig([
        'language',
    ]);
    $this->assertNull(\Drupal::service('locale.config_manager')->getDefaultConfigLangcode('locale_test_translate.settings'), 'Before installing a module the locale config manager can not access the shipped configuration.');
    \Drupal::service('module_installer')->install([
        'locale_test_translate',
    ]);
    $this->assertEquals('en', \Drupal::service('locale.config_manager')->getDefaultConfigLangcode('locale_test_translate.settings'), 'After installing a module the locale config manager can get the shipped configuration langcode.');
    $simple_config = \Drupal::configFactory()->getEditable('locale_test_translate.simple_config_extra');
    $simple_config->set('foo', 'bar')
        ->save();
    $this->assertNull(\Drupal::service('locale.config_manager')->getDefaultConfigLangcode($simple_config->getName()), 'Simple config created through the API is not treated as shipped configuration.');
    $block = Block::create([
        'id' => 'test_default_config',
        'theme' => 'stark',
        'status' => TRUE,
        'region' => 'content',
        'plugin' => 'local_tasks_block',
        'settings' => [
            'id' => 'local_tasks_block',
            'label' => $this->randomMachineName(),
            'provider' => 'core',
            'label_display' => FALSE,
            'primary' => TRUE,
            'secondary' => TRUE,
        ],
    ]);
    $block->save();
    // Install the theme after creating the block as installing the theme will
    // install the block provided by the locale_test module.
    \Drupal::service('theme_installer')->install([
        'stark',
    ]);
    // The test_default_config block provided by the locale_test module will not
    // be installed because a block with the same ID already exists.
    $this->installConfig([
        'locale_test',
    ]);
    $this->assertNull(\Drupal::service('locale.config_manager')->getDefaultConfigLangcode('block.block.test_default_config'), 'The block.block.test_default_config is not shipped configuration.');
    // Delete the block so we can install the one provided by the locale_test
    // module.
    $block->delete();
    $this->installConfig([
        'locale_test',
    ]);
    $this->assertEquals('en', \Drupal::service('locale.config_manager')->getDefaultConfigLangcode('block.block.test_default_config'), 'The block.block.test_default_config is shipped configuration.');
    // Test the special case for configurable_language config entities.
    $fr_language = ConfigurableLanguage::createFromLangcode('fr');
    $fr_language->save();
    $this->assertEquals('en', \Drupal::service('locale.config_manager')->getDefaultConfigLangcode('language.entity.fr'), 'The language.entity.fr is treated as shipped configuration because it is a configurable_language config entity and in the standard language list.');
    $custom_language = ConfigurableLanguage::createFromLangcode('custom');
    $custom_language->save();
    $this->assertNull(\Drupal::service('locale.config_manager')->getDefaultConfigLangcode('language.entity.custom'), 'The language.entity.custom is not shipped configuration because it is not in the standard language list.');
}

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