Projet

Général

Profil

Paste
Télécharger (3,41 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / i18n / i18n_node / i18n_node.test @ 76df55b7

1
<?php
2

    
3
/**
4
 * @file
5
 * Contains test cases for the i18n_node module.
6
 */
7

    
8
class I18nNodeTestCase extends Drupali18nTestCase {
9
  public static function getInfo() {
10
    return array(
11
      'name' => 'Content translation',
12
      'group' => 'Internationalization',
13
      'description' => 'Content translation functions',
14
    );
15
  }
16

    
17
  function setUp() {
18
    parent::setUp('translation', 'i18n_node');
19
    parent::setUpLanguages(array('administer content translations', 'translate content'));
20
    parent::setUpContentTranslation();
21

    
22
    $this->addLanguage('pt-br');
23
    // Add a disabled language.
24
    $this->addLanguage('it');
25
    $edit = array('enabled[it]' => FALSE);
26
    $this->drupalPost('admin/config/regional/language', $edit, t('Save configuration'));
27
  }
28

    
29
  /**
30
   * Tests for adding content to an existing translation set.
31
   */
32
  function testAddContentToTranslationSet() {
33
    module_load_include('inc', 'i18n_node', 'i18n_node.pages');
34

    
35
    // Create 3 nodes in different languages.
36
    $en_title = $this->randomName(10);
37
    $en_body = $this->randomString(50);
38
    $en_node = $this->createNode('page', $en_title, $en_body, 'en');
39

    
40
    $es_title = $this->randomName(10);
41
    $es_body = $this->randomString(50);
42
    $es_node = $this->createNode('page', $es_title, $es_body, 'es');
43

    
44
    $ptbr_title = $this->randomName(10);
45
    $ptbr_body = $this->randomString(50);
46
    $ptbr_node = $this->createNode('page', $ptbr_title, $ptbr_body, 'pt-br');
47

    
48
    // Check the autocomplete suggestions.
49
    $this->drupalGet('i18n/node/autocomplete/page/es/' . substr($es_title, 0, 3));
50
    $this->assertText($es_title);
51
    $this->assertNoText($en_title);
52
    $this->assertNoText($ptbr_title);
53

    
54
    $this->drupalGet('i18n/node/autocomplete/page/es/' . substr($en_title, 0, 3));
55
    $this->assertNoText($es_title);
56
    $this->assertNoText($en_title);
57
    $this->assertNoText($ptbr_title);
58

    
59
    $this->drupalGet('i18n/node/autocomplete/page/pt-br/' . substr($ptbr_title, 0, 3));
60
    $this->assertNoText($es_title);
61
    $this->assertNoText($en_title);
62
    $this->assertText($ptbr_title);
63

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

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

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

    
78
    // Add two translated nodes.
79
    $edit = array(
80
      'translations[node][pt-br]' => $ptbr_title,
81
      'translations[node][es]' => $es_title,
82
    );
83
    $this->drupalPost(NULL, $edit, t('Update translations'));
84
    $this->assertText(t('Added @count nodes to the translation set.', array('@count' => 2)));
85

    
86
    $this->assertFieldByName('translations[node][es]', i18n_node_nid2autocomplete($es_node->nid));
87
    $this->assertFieldByName('translations[node][pt-br]', i18n_node_nid2autocomplete($ptbr_node->nid));
88

    
89
    // Remove a translation node again.
90
    $edit = array(
91
      'translations[node][pt-br]' => '',
92
    );
93
    $this->drupalPost(NULL, $edit, t('Update translations'));
94
    $this->assertText(t('Removed a node from the translation set.'));
95

    
96
    $this->assertFieldByName('translations[node][es]', i18n_node_nid2autocomplete($es_node->nid));
97
    $this->assertFieldByName('translations[node][pt-br]', '');
98
  }
99
}