function WebformLocalizationWebTestCase::createStringTranslation in Webform Localization 7
Same name and namespace in other branches
- 7.4 tests/webform_localization.test \WebformLocalizationWebTestCase::createStringTranslation()
Create translation for string in textgroup
Parameters
$translations: Optional array of langcode => translation. If not present, it will be generated.
1 call to WebformLocalizationWebTestCase::createStringTranslation()
- WebformLocalizationStringTranslationTestCase::testWebformLocalizationStringTranslation in tests/
webform_localization.test - Test creating a webform and enabling localization by string translation
File
- tests/
webform_localization.test, line 259 - Webform localization module tests.
Class
- WebformLocalizationWebTestCase
- @file Webform localization module tests.
Code
function createStringTranslation($textgroup, $name, $translations = NULL) {
// This is the language indicator on the translation search screen for
// untranslated strings. Copied straight from locale.inc.
$language_indicator = "<em class=\"locale-untranslated\">";
// Search for the name and translate it.
$search = array(
'string' => $name,
'language' => 'all',
'translation' => 'untranslated',
'group' => $textgroup,
);
$this
->drupalPost('admin/config/regional/translate/translate', $search, t('Filter'));
// assertText() seems to remove the input field where $name always could be
// found, so this is not a false assert. See how assertNoText succeeds
// later.
$this
->assertText(check_plain($name), 'Search found the name.');
$this
->assertRaw($language_indicator, 'Name is untranslated.');
// Is not always the only result, if there is more than one click the first.
if ($this
->countString(check_plain($name)) > 1) {
$this
->clickLink(t('edit'), 0);
}
else {
$this
->clickLink(t('edit'));
}
// We save the lid from the path.
$matches = array();
preg_match('!admin/config/regional/translate/edit/(\\d+)!', $this
->getUrl(), $matches);
$lid = $matches[1];
/*
* Using check_plain() and wordwrap() as i18n_string_locale_translate_edit_form().
* Assert fails otherwise.
*/
$this
->assertRaw(check_plain(wordwrap($name, 0)), t($name . ' name found on edit screen.'));
foreach ($translations as $langcode => $translation) {
$edit["translations[{$langcode}]"] = $translation;
}
$this
->drupalPost(NULL, $edit, t('Save translations'));
$this
->assertText(t('The string has been saved.'), 'The string has been saved.');
$this
->assertEqual($this
->getUrl(), url('admin/config/regional/translate/translate', array(
'absolute' => TRUE,
)), 'Correct page redirection.');
$search = array(
'string' => $name,
'language' => 'all',
'translation' => 'translated',
'group' => $textgroup,
);
$this
->drupalPost('admin/config/regional/translate/translate', $search, t('Filter'));
$this
->assertText(check_plain($name), 'Search found the name.');
$this
->assertNoRaw($language_indicator, 'Name is translated.');
return $translations;
}