File
- core/modules/locale/tests/locale.test, line 341
- Tests for locale.module.
Class
- LocaleTranslationFunctionalTest
- Functional test for string translation and validation.
Code
function testJavaScriptTranslation() {
$user = $this->backdropCreateUser(array('translate interface', 'administer languages', 'access administration pages'));
$this->backdropLogin($user);
$langcode = 'xx';
$name = $this->randomName(16);
$native = $this->randomName(16);
$edit = array(
'predefined_langcode' => 'custom',
'langcode' => $langcode,
'name' => $name,
'native' => $native,
'direction' => '0',
);
$this->backdropPost('admin/config/regional/language/add', $edit, t('Add custom language'));
backdrop_static_reset('language_list');
$this->backdropGet('admin/config/regional/translate/translate');
$query = db_select('locales_source', 'l');
$query->addExpression('min(l.lid)', 'lid');
$result = $query->condition('l.location', '%.js%', 'LIKE')->execute();
$url = 'admin/config/regional/translate/edit/' . $result->fetchObject()->lid;
$edit = array('translations[' . $langcode . ']' => $this->randomName());
$this->backdropPost($url, $edit, t('Save translations'));
require_once BACKDROP_ROOT . '/core/includes/locale.inc';
_locale_rebuild_js($langcode);
$locale_javascripts = state_get('locale_translation_javascript', array());
$js_file = 'public://' . settings_get('locale_js_directory', 'languages') . '/' . $langcode . '_' . $locale_javascripts[$langcode] . '.js';
$this->assertTrue($result = file_exists($js_file), format_string('JavaScript file created: %file', array('%file' => $result ? $js_file : 'not found')));
file_unmanaged_delete($js_file);
$this->assertTrue($result = !file_exists($js_file), format_string('JavaScript file deleted: %file', array('%file' => $result ? $js_file : 'found')));
cache_clear_all();
_locale_rebuild_js($langcode);
$this->assertTrue($result = file_exists($js_file), format_string('JavaScript file rebuilt: %file', array('%file' => $result ? $js_file : 'not found')));
}