You are here

function I18nNodeTestCase::testAddContentToTranslationSet in Internationalization 7

Tests for adding content to an existing translation set.

File

i18n_node/i18n_node.test, line 32
Contains test cases for the i18n_node module.

Class

I18nNodeTestCase
@file Contains test cases for the i18n_node module.

Code

function testAddContentToTranslationSet() {
  module_load_include('inc', 'i18n_node', 'i18n_node.pages');

  // Create 3 nodes in different languages.
  $en_title = $this
    ->randomName(10);
  $en_body = $this
    ->randomString(50);
  $en_node = $this
    ->createNode('page', $en_title, $en_body, 'en');
  $es_title = $this
    ->randomName(10);
  $es_body = $this
    ->randomString(50);
  $es_node = $this
    ->createNode('page', $es_title, $es_body, 'es');
  $ptbr_title = $this
    ->randomName(10);
  $ptbr_body = $this
    ->randomString(50);
  $ptbr_node = $this
    ->createNode('page', $ptbr_title, $ptbr_body, 'pt-br');

  // Check the autocomplete suggestions.
  $this
    ->drupalGet('i18n/node/autocomplete/page/es/' . substr($es_title, 0, 3));
  $this
    ->assertText($es_title);
  $this
    ->assertNoText($en_title);
  $this
    ->assertNoText($ptbr_title);
  $this
    ->drupalGet('i18n/node/autocomplete/page/es/' . substr($en_title, 0, 3));
  $this
    ->assertNoText($es_title);
  $this
    ->assertNoText($en_title);
  $this
    ->assertNoText($ptbr_title);
  $this
    ->drupalGet('i18n/node/autocomplete/page/pt-br/' . substr($ptbr_title, 0, 3));
  $this
    ->assertNoText($es_title);
  $this
    ->assertNoText($en_title);
  $this
    ->assertText($ptbr_title);

  // Go to the translations tab.
  $this
    ->drupalGet('node/' . $en_node->nid);
  $this
    ->clickLink(t('Translate'));

  // Make sure that the disabled language doesn't show up.
  $this
    ->assertNoText(t('Italian'));

  // Test validation.
  $edit = array(
    'translations[node][es]' => $ptbr_title,
  );
  $this
    ->drupalPost(NULL, $edit, t('Update translations'));
  $this
    ->assertText(t('Found no valid post with that title: @title', array(
    '@title' => $ptbr_title,
  )));

  // Add two translated nodes.
  $edit = array(
    'translations[node][pt-br]' => $ptbr_title,
    'translations[node][es]' => $es_title,
  );
  $this
    ->drupalPost(NULL, $edit, t('Update translations'));
  $this
    ->assertText(t('Added @count nodes to the translation set.', array(
    '@count' => 2,
  )));
  $this
    ->assertFieldByName('translations[node][es]', i18n_node_nid2autocomplete($es_node->nid));
  $this
    ->assertFieldByName('translations[node][pt-br]', i18n_node_nid2autocomplete($ptbr_node->nid));

  // Remove a translation node again.
  $edit = array(
    'translations[node][pt-br]' => '',
  );
  $this
    ->drupalPost(NULL, $edit, t('Update translations'));
  $this
    ->assertText(t('Removed a node from the translation set.'));
  $this
    ->assertFieldByName('translations[node][es]', i18n_node_nid2autocomplete($es_node->nid));
  $this
    ->assertFieldByName('translations[node][pt-br]', '');
}