You are here

public function ConfigNamesMapperTest::testGetLangcode in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/config_translation/tests/src/Unit/ConfigNamesMapperTest.php \Drupal\Tests\config_translation\Unit\ConfigNamesMapperTest::testGetLangcode()

Tests ConfigNamesMapper::getLangcode().

File

core/modules/config_translation/tests/src/Unit/ConfigNamesMapperTest.php, line 413
Contains \Drupal\Tests\config_translation\Unit\ConfigNamesMapperTest.

Class

ConfigNamesMapperTest
Tests the functionality provided by the configuration names mapper.

Namespace

Drupal\Tests\config_translation\Unit

Code

public function testGetLangcode() {

  // Test that the getLangcode() falls back to 'en', if no explicit language
  // code is provided.
  $config_factory = $this
    ->getConfigFactoryStub([
    'system.site' => [
      'key' => 'value',
    ],
  ]);
  $this->configNamesMapper
    ->setConfigFactory($config_factory);
  $result = $this->configNamesMapper
    ->getLangcode();
  $this
    ->assertSame('en', $result);

  // Test that getLangcode picks up the language code provided by the
  // configuration.
  $config_factory = $this
    ->getConfigFactoryStub([
    'system.site' => [
      'langcode' => 'xx',
    ],
  ]);
  $this->configNamesMapper
    ->setConfigFactory($config_factory);
  $result = $this->configNamesMapper
    ->getLangcode();
  $this
    ->assertSame('xx', $result);

  // Test that getLangcode() works for multiple configuration names.
  $this->configNamesMapper
    ->addConfigName('system.maintenance');
  $config_factory = $this
    ->getConfigFactoryStub([
    'system.site' => [
      'langcode' => 'xx',
    ],
    'system.maintenance' => [
      'langcode' => 'xx',
    ],
  ]);
  $this->configNamesMapper
    ->setConfigFactory($config_factory);
  $result = $this->configNamesMapper
    ->getLangcode();
  $this
    ->assertSame('xx', $result);

  // Test that getLangcode() throws an exception when different language codes
  // are given.
  $config_factory = $this
    ->getConfigFactoryStub([
    'system.site' => [
      'langcode' => 'xx',
    ],
    'system.maintenance' => [
      'langcode' => 'yy',
    ],
  ]);
  $this->configNamesMapper
    ->setConfigFactory($config_factory);
  try {
    $this->configNamesMapper
      ->getLangcode();
    $this
      ->fail();
  } catch (\RuntimeException $e) {
  }
}