function i18nTaxonomyTestCase::testTaxonomyTermLocalize in Internationalization 7        
                          
                  
                        
File
 
   - i18n_taxonomy/i18n_taxonomy.test, line 37
- Test case for multilingual taxonomy
Class
  
  - i18nTaxonomyTestCase 
- @file
Test case for multilingual taxonomy
Code
function testTaxonomyTermLocalize() {
  $this
    ->drupalLogin($this->admin_user);
  
  $edit = array(
    'i18n_string_allowed_formats[filtered_html]' => 'filtered_html',
    'i18n_string_allowed_formats[plain_text]' => 'plain_text',
  );
  $this
    ->drupalPost('admin/config/regional/i18n/strings', $edit, t('Save configuration'));
  
  $vocab = $this
    ->createVocabulary(array(
    'i18n_mode' => I18N_MODE_LOCALIZE,
  ));
  $this
    ->assertEqual(i18n_taxonomy_vocabulary_mode($vocab->vid), I18N_MODE_LOCALIZE, 'A vocabulary has been created and it is localizable.');
  $this->field_name = $this
    ->createTermField($vocab->machine_name);
  
  $prefix = $this
    ->randomName() . '_';
  $term = $this
    ->createTerm(array(
    'vid' => $vocab->vid,
    'name' => $prefix . $this
      ->randomName(),
  ));
  $this
    ->drupalLogin($this->translator);
  
  $term_translation = array(
    'name' => $this
      ->createStringTranslation('taxonomy', $term->name, array(
      $this->secondary_language => $prefix . $this
        ->randomName(),
    )),
    'description' => $this
      ->createStringTranslation('taxonomy', $term->description, array(
      $this->secondary_language => $prefix . $this
        ->randomName(),
    )),
  );
  $this
    ->drupalLogin($this->admin_user);
  $langcode = LANGUAGE_NONE;
  $edit = array(
    "{$this->field_name}[{$langcode}]" => array(
      $term->tid,
    ),
  );
  
  $this
    ->drupalGet('test-entity/add/test-bundle');
  $this
    ->assertText($term->name, 'Widget values are displayed correctly in default language.');
  $this
    ->drupalPost(NULL, $edit, t('Save'));
  $this
    ->assertText($term->name, 'Field values are displayed correctly in default language.');
  
  $this
    ->drupalGet($this->secondary_language . '/test-entity/add/test-bundle');
  $this
    ->assertText($term_translation['name'][$this->secondary_language], 'Widget values are displayed correctly in non-default languages.');
  $this
    ->drupalPost(NULL, $edit, t('Save'));
  $this
    ->assertText($term_translation['name'][$this->secondary_language], 'Field values are displayed correctly in non-default languages.');
  
  $this
    ->drupalGet('taxonomy/term/' . $term->tid, array(
    'language' => i18n_language_object($this->default_language),
  ));
  $this
    ->assertText($term->name, 'Term title is displayed correctly in default language.');
  $this
    ->assertText($term->description, 'Term description is displayed correctly in default language.');
  
  $this
    ->drupalGet('taxonomy/term/' . $term->tid, array(
    'language' => i18n_language_object($this->secondary_language),
  ));
  $this
    ->assertText($term_translation['name'][$this->secondary_language], 'Term title is displayed correctly in non-default language.');
  $this
    ->assertText($term_translation['description'][$this->secondary_language], 'Term description is displayed correctly in non-default language.');
  
  $autocomplete_path = 'taxonomy/autocomplete/' . $this->field_name . '/' . $prefix;
  $autocomplete_values = $this
    ->drupalGetAJAX($autocomplete_path);
  $this
    ->assertTrue(isset($autocomplete_values[$term->name]), 'Correct autocomplete suggestions in default language.');
  $this
    ->assertFalse(isset($autocomplete_values[$term_translation['name'][$this->secondary_language]]), 'No incorrect autocomplete suggestions in non-default languages');
  
}