You are here

public function LanguageListTest::testLanguageStates in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/language/tests/src/Functional/LanguageListTest.php \Drupal\Tests\language\Functional\LanguageListTest::testLanguageStates()
  2. 9 core/modules/language/tests/src/Functional/LanguageListTest.php \Drupal\Tests\language\Functional\LanguageListTest::testLanguageStates()

Functional tests for the language states (locked or configurable).

File

core/modules/language/tests/src/Functional/LanguageListTest.php, line 212

Class

LanguageListTest
Adds a new language and tests changing its status and the default language.

Namespace

Drupal\Tests\language\Functional

Code

public function testLanguageStates() {

  // Add some languages, and also lock some of them.
  ConfigurableLanguage::create([
    'label' => $this
      ->randomMachineName(),
    'id' => 'l1',
  ])
    ->save();
  ConfigurableLanguage::create([
    'label' => $this
      ->randomMachineName(),
    'id' => 'l2',
    'locked' => TRUE,
  ])
    ->save();
  ConfigurableLanguage::create([
    'label' => $this
      ->randomMachineName(),
    'id' => 'l3',
  ])
    ->save();
  ConfigurableLanguage::create([
    'label' => $this
      ->randomMachineName(),
    'id' => 'l4',
    'locked' => TRUE,
  ])
    ->save();
  $expected_locked_languages = [
    'l4' => 'l4',
    'l2' => 'l2',
    'und' => 'und',
    'zxx' => 'zxx',
  ];
  $expected_all_languages = [
    'l4' => 'l4',
    'l3' => 'l3',
    'l2' => 'l2',
    'l1' => 'l1',
    'en' => 'en',
    'und' => 'und',
    'zxx' => 'zxx',
  ];
  $expected_conf_languages = [
    'l3' => 'l3',
    'l1' => 'l1',
    'en' => 'en',
  ];
  $locked_languages = $this->container
    ->get('language_manager')
    ->getLanguages(LanguageInterface::STATE_LOCKED);
  $this
    ->assertEquals([], array_diff_key($expected_locked_languages, $locked_languages), 'Locked languages loaded correctly.');
  $all_languages = $this->container
    ->get('language_manager')
    ->getLanguages(LanguageInterface::STATE_ALL);
  $this
    ->assertEquals([], array_diff_key($expected_all_languages, $all_languages), 'All languages loaded correctly.');
  $conf_languages = $this->container
    ->get('language_manager')
    ->getLanguages();
  $this
    ->assertEquals([], array_diff_key($expected_conf_languages, $conf_languages), 'Configurable languages loaded correctly.');
}