diff options
author | Rogan Creswick <creswick@gmail.com> | 2013-01-02 14:56:40 -0800 |
---|---|---|
committer | Rogan Creswick <creswick@gmail.com> | 2013-01-02 14:56:40 -0800 |
commit | 75139375b76cb277546da2429d8e983ca6758f61 (patch) | |
tree | 5b8d180f5f6dc9809eeec1612726a1de36cb7365 /tools/addon-sdk-1.7/packages/addon-kit/tests/test-l10n.js | |
parent | dbf076b39ca655500f2c0546b0ea57ceffca33b3 (diff) |
added addon-sdk-1.7, without any changes
Diffstat (limited to 'tools/addon-sdk-1.7/packages/addon-kit/tests/test-l10n.js')
-rw-r--r-- | tools/addon-sdk-1.7/packages/addon-kit/tests/test-l10n.js | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.7/packages/addon-kit/tests/test-l10n.js b/tools/addon-sdk-1.7/packages/addon-kit/tests/test-l10n.js new file mode 100644 index 0000000..259b160 --- /dev/null +++ b/tools/addon-sdk-1.7/packages/addon-kit/tests/test-l10n.js @@ -0,0 +1,97 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +const prefs = require("preferences-service"); +const { Loader } = require('./helpers'); + +const PREF_MATCH_OS_LOCALE = "intl.locale.matchOS"; +const PREF_SELECTED_LOCALE = "general.useragent.locale"; + +function setLocale(locale) { + prefs.set(PREF_MATCH_OS_LOCALE, false); + prefs.set(PREF_SELECTED_LOCALE, locale); +} + +function resetLocale() { + prefs.reset(PREF_MATCH_OS_LOCALE); + prefs.reset(PREF_SELECTED_LOCALE); +} + +exports.testExactMatching = function(test) { + let loader = Loader(module); + setLocale("fr-FR"); + + let _ = loader.require("l10n").get; + test.assertEqual(_("Not translated"), "Not translated", + "Key not translated"); + test.assertEqual(_("Translated"), "Oui", + "Simple key translated"); + + // Placeholders + test.assertEqual(_("placeholderString", "works"), "Placeholder works", + "Value with placeholder"); + test.assertEqual(_("Placeholder %s", "works"), "Placeholder works", + "Key without value but with placeholder"); + test.assertEqual(_("Placeholders %2s %1s %s.", "working", "are", "correctly"), + "Placeholders are working correctly.", + "Multiple placeholders"); + + // Plurals + test.assertEqual(_("downloadsCount", 0), + "0 téléchargement", + "PluralForm form 'one' for 0 in french"); + test.assertEqual(_("downloadsCount", 1), + "1 téléchargement", + "PluralForm form 'one' for 1 in french"); + test.assertEqual(_("downloadsCount", 2), + "2 téléchargements", + "PluralForm form 'other' for n > 1 in french"); + + loader.unload(); + resetLocale(); +} + +exports.testEnUsLocaleName = function(test) { + let loader = Loader(module); + setLocale("en-US"); + + let _ = loader.require("l10n").get; + test.assertEqual(_("Not translated"), "Not translated"); + test.assertEqual(_("Translated"), "Yes"); + + // Check plural forms regular matching + test.assertEqual(_("downloadsCount", 0), + "0 downloads", + "PluralForm form 'other' for 0 in english"); + test.assertEqual(_("downloadsCount", 1), + "one download", + "PluralForm form 'one' for 1 in english"); + test.assertEqual(_("downloadsCount", 2), + "2 downloads", + "PluralForm form 'other' for n != 1 in english"); + + // Check optional plural forms + test.assertEqual(_("pluralTest", 0), + "optional zero form", + "PluralForm form 'zero' can be optionaly specified. (Isn't mandatory in english)"); + test.assertEqual(_("pluralTest", 1), + "fallback to other", + "If the specific plural form is missing, we fallback to 'other'"); + + loader.unload(); + resetLocale(); +} + +exports.testShortLocaleName = function(test) { + let loader = Loader(module); + setLocale("eo"); + + let _ = loader.require("l10n").get; + test.assertEqual(_("Not translated"), "Not translated"); + test.assertEqual(_("Translated"), "jes"); + + loader.unload(); + resetLocale(); +} + |