function LanguageListTest::testLanguageStates

Same name and namespace in other branches
  1. 8.9.x core/modules/language/tests/src/Functional/LanguageListTest.php \Drupal\Tests\language\Functional\LanguageListTest::testLanguageStates()
  2. 10 core/modules/language/tests/src/Functional/LanguageListTest.php \Drupal\Tests\language\Functional\LanguageListTest::testLanguageStates()
  3. 11.x 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.');
}

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