function NodeTypeInitialLanguageTest::testLanguageFieldVisibility

Tests language field visibility features.

File

drupal/core/modules/node/lib/Drupal/node/Tests/NodeTypeInitialLanguageTest.php, line 100
Definition of Drupal\node\Tests\NodeTypeInitalLanguageTest.

Class

NodeTypeInitialLanguageTest
Tests related to node type initial language.

Namespace

Drupal\node\Tests

Code

function testLanguageFieldVisibility() {
  $langcode = LANGUAGE_NOT_SPECIFIED;

  // Creates a node to test Language field visibility feature.
  $edit = array(
    'title' => $this
      ->randomName(8),
    "body[{$langcode}][0][value]" => $this
      ->randomName(16),
  );
  $this
    ->drupalPost('node/add/article', $edit, t('Save'));
  $node = $this
    ->drupalGetNodeByTitle($edit['title']);
  $this
    ->assertTrue($node, 'Node found in database.');

  // Loads node page and check if Language field is hidden by default.
  $this
    ->drupalGet('node/' . $node->nid);
  $language_field = $this
    ->xpath('//div[@id=:id]/div', array(
    ':id' => 'field-language-display',
  ));
  $this
    ->assertTrue(empty($language_field), 'Language field value is not shown by default on node page.');

  // Changes Language field visibility to true and check if it is saved.
  $edit = array(
    'fields[language][type]' => 'content',
  );
  $this
    ->drupalPost('admin/structure/types/manage/article/display', $edit, t('Save'));
  $this
    ->drupalGet('admin/structure/types/manage/article/display');
  $this
    ->assertOptionSelected('edit-fields-language-type', 'content', 'Language field has been set to visible.');

  // Loads node page and check if Language field is shown.
  $this
    ->drupalGet('node/' . $node->nid);
  $language_field = $this
    ->xpath('//div[@id=:id]/div', array(
    ':id' => 'field-language-display',
  ));
  $this
    ->assertFalse(empty($language_field), 'Language field value is shown on node page.');
}