function i18nSelectTestCase::testIi18nSelect in Internationalization 7
File
- i18n_select/
i18n_select.test, line 23 - Test language selection modes
Class
- i18nSelectTestCase
- @file Test language selection modes
Code
function testIi18nSelect() {
drupal_static_reset('language_list');
$language_list = language_list();
$language_count = count($language_list);
// Set site name for each language and check pages later
variable_set('i18n_variable_list', array(
'site_name',
));
foreach (i18n_language_list() as $langcode => $name) {
i18n_variable_set('site_name', "Drupal-{$name}", $langcode);
}
// Enable tags field for page content type.
$edit = array(
'fields[_add_existing_field][label]' => t('Tags'),
'fields[_add_existing_field][field_name]' => 'field_tags',
'fields[_add_existing_field][widget_type]' => 'taxonomy_autocomplete',
);
$this
->drupalPost('admin/structure/types/manage/page/fields', $edit, t('Save'));
$this
->drupalPost(NULL, array(), t('Save settings'));
// Create some content and check selection modes
$this
->drupalLogin($this->content_editor);
// variable_set('language_content_type_story', 1);
$neutral = $this
->drupalCreateNode(array(
'type' => 'page',
'promote' => 1,
));
$source = $this
->createNode('page', $this
->randomName(), $this
->randomString(20), language_default('language'), array(
'field_tags[und]' => $tag_name = $this
->randomName(),
));
$translations = $this
->createNodeTranslationSet($source);
drupal_static_reset('translation_node_get_translations');
$this
->assertEqual(count(translation_node_get_translations($source->tnid)), $language_count, "Created {$language_count} {$source->type} translations.");
// Log in user with access content permission
$user = $this
->drupalCreateUser(array(
'access comments',
'access content',
));
$this
->drupalLogin($user);
// Default selection mode, only language neutral and current
variable_set('i18n_select_nodes', TRUE);
foreach (i18n_language_list() as $langcode => $name) {
$this
->i18nGet($langcode);
$this
->assertText("Drupal-{$name}", 'Checked translated site name: Drupal-' . $name);
$display = array(
$translations[$langcode],
$neutral,
);
$hide = $translations;
unset($hide[$langcode]);
$this
->assertContent($display, $hide);
// Visit the taxonomy page of that node and try again. Only the translated
// pages are tagged.
unset($display[1]);
$this
->i18nGet($langcode, 'taxonomy/term/' . $source->field_tags[LANGUAGE_NONE][0]['tid']);
$this
->assertContent($display, $hide);
}
}