module("tinymce.AddOnManager", {
teardown: function() {
Utils.unpatch(tinymce.dom.ScriptLoader.ScriptLoader);
tinymce.AddOnManager.languageLoad = true;
tinymce.AddOnManager.language = 'en';
}
});
test('requireLangPack', function() {
var languagePackUrl;
Utils.patch(tinymce.dom.ScriptLoader.ScriptLoader, 'add', function(origFunc, url) {
languagePackUrl = url;
});
function getLanguagePackUrl(language, languages) {
languagePackUrl = null;
tinymce.AddOnManager.language = language;
tinymce.AddOnManager.PluginManager.requireLangPack('plugin', languages);
return languagePackUrl;
}
tinymce.AddOnManager.PluginManager.urls.plugin = '/root';
equal(getLanguagePackUrl('sv_SE'), '/root/langs/sv_SE.js');
equal(getLanguagePackUrl('sv_SE', 'sv,en,us'), '/root/langs/sv.js');
equal(getLanguagePackUrl('sv_SE', 'sv_SE,en_US'), '/root/langs/sv_SE.js');
equal(getLanguagePackUrl('sv'), '/root/langs/sv.js');
equal(getLanguagePackUrl('sv', 'sv'), '/root/langs/sv.js');
equal(getLanguagePackUrl('sv', 'sv,en,us'), '/root/langs/sv.js');
equal(getLanguagePackUrl('sv', 'en,sv,us'), '/root/langs/sv.js');
equal(getLanguagePackUrl('sv', 'en,us,sv'), '/root/langs/sv.js');
strictEqual(getLanguagePackUrl('sv', 'en,us'), null);
strictEqual(getLanguagePackUrl(null, 'en,us'), null);
strictEqual(getLanguagePackUrl(null), null);
tinymce.AddOnManager.languageLoad = false;
strictEqual(getLanguagePackUrl('sv', 'sv'), null);
});
|