function TermLanguageTest::testTermLanguage

File

drupal/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermLanguageTest.php, line 47
Definition of Drupal\taxonomy\Tests\TermLanguageTest.

Class

TermLanguageTest
Tests for the language feature on taxonomy terms.

Namespace

Drupal\taxonomy\Tests

Code

function testTermLanguage() {

  // Configure the vocabulary to not hide the language selector.
  $edit = array(
    'default_language[language_show]' => TRUE,
  );
  $this
    ->drupalPost('admin/structure/taxonomy/manage/' . $this->vocabulary
    ->id() . '/edit', $edit, t('Save'));

  // Add a term.
  $this
    ->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary
    ->id() . '/add');

  // Check that we have the language selector.
  $this
    ->assertField('edit-langcode', t('The language selector field was found on the page'));

  // Submit the term.
  $edit = array(
    'name' => $this
      ->randomName(),
    'langcode' => 'aa',
  );
  $this
    ->drupalPost(NULL, $edit, t('Save'));
  $terms = taxonomy_term_load_multiple_by_name($edit['name']);
  $term = reset($terms);
  $this
    ->assertEqual($term
    ->language()->langcode, $edit['langcode']);

  // Check if on the edit page the language is correct.
  $this
    ->drupalGet('taxonomy/term/' . $term
    ->id() . '/edit');
  $this
    ->assertOptionSelected('edit-langcode', $edit['langcode'], t('The term language was correctly selected.'));

  // Change the language of the term.
  $edit['langcode'] = 'bb';
  $this
    ->drupalPost('taxonomy/term/' . $term
    ->id() . '/edit', $edit, t('Save'));

  // Check again that on the edit page the language is correct.
  $this
    ->drupalGet('taxonomy/term/' . $term
    ->id() . '/edit');
  $this
    ->assertOptionSelected('edit-langcode', $edit['langcode'], t('The term language was correctly selected.'));
}