function LanguageListTest::testLanguageStates

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

File

drupal/core/modules/language/lib/Drupal/language/Tests/LanguageListTest.php, line 174
Definition of Drupal\language\Tests\LanguageListTest.

Class

LanguageListTest
Functional tests for the language list configuration forms.

Namespace

Drupal\language\Tests

Code

function testLanguageStates() {

  // Add some languages, and also lock some of them.
  language_save(new Language(array(
    'name' => $this
      ->randomName(),
    'langcode' => 'l1',
  )));
  language_save(new Language(array(
    'name' => $this
      ->randomName(),
    'langcode' => 'l2',
    'locked' => TRUE,
  )));
  language_save(new Language(array(
    'name' => $this
      ->randomName(),
    'langcode' => 'l3',
  )));
  language_save(new Language(array(
    'name' => $this
      ->randomName(),
    'langcode' => 'l4',
    'locked' => TRUE,
  )));
  $expected_locked_languages = array(
    'l4' => 'l4',
    'l2' => 'l2',
    'und' => 'und',
    'zxx' => 'zxx',
    'mul' => 'mul',
  );
  $expected_all_languages = array(
    'l4' => 'l4',
    'l3' => 'l3',
    'l2' => 'l2',
    'l1' => 'l1',
    'en' => 'en',
    'und' => 'und',
    'zxx' => 'zxx',
    'mul' => 'mul',
  );
  $expected_conf_languages = array(
    'l3' => 'l3',
    'l1' => 'l1',
    'en' => 'en',
  );
  $locked_languages = language_list(LANGUAGE_LOCKED);
  $this
    ->assertEqual(array_diff_key($expected_locked_languages, $locked_languages), array(), 'Locked languages loaded correctly.');
  $all_languages = language_list(LANGUAGE_ALL);
  $this
    ->assertEqual(array_diff_key($expected_all_languages, $all_languages), array(), 'All languages loaded correctly.');
  $conf_languages = language_list();
  $this
    ->assertEqual(array_diff_key($expected_conf_languages, $conf_languages), array(), 'Configurable languages loaded correctly.');
}