diff options
author | Matt A. Tobin <email@mattatobin.com> | 2018-02-09 11:10:00 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2018-02-09 11:10:00 -0500 |
commit | f164d9124708b50789dbb6959e1de96cc5697c48 (patch) | |
tree | 6dffd12e08c5383130df0252fb69cd6d6330794f /toolkit/components/extensions/test/mochitest/test_ext_i18n.html | |
parent | 30de4018913f0cdaea19d1dd12ecd8209e2ed08e (diff) | |
download | UXP-f164d9124708b50789dbb6959e1de96cc5697c48.tar UXP-f164d9124708b50789dbb6959e1de96cc5697c48.tar.gz UXP-f164d9124708b50789dbb6959e1de96cc5697c48.tar.lz UXP-f164d9124708b50789dbb6959e1de96cc5697c48.tar.xz UXP-f164d9124708b50789dbb6959e1de96cc5697c48.zip |
Rename Toolkit's webextensions component directory to better reflect what it is.
Diffstat (limited to 'toolkit/components/extensions/test/mochitest/test_ext_i18n.html')
-rw-r--r-- | toolkit/components/extensions/test/mochitest/test_ext_i18n.html | 432 |
1 files changed, 0 insertions, 432 deletions
diff --git a/toolkit/components/extensions/test/mochitest/test_ext_i18n.html b/toolkit/components/extensions/test/mochitest/test_ext_i18n.html deleted file mode 100644 index 1f7330bbb..000000000 --- a/toolkit/components/extensions/test/mochitest/test_ext_i18n.html +++ /dev/null @@ -1,432 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head> - <meta charset="utf-8"> - <title>Test for WebExtension localization APIs</title> - <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> - <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script> - <script type="text/javascript" src="/tests/SimpleTest/ExtensionTestUtils.js"></script> - <script type="text/javascript" src="head.js"></script> - <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> -</head> -<body> - -<script type="text/javascript"> -"use strict"; - -SimpleTest.registerCleanupFunction(() => { SpecialPowers.clearUserPref("intl.accept_languages"); }); -SimpleTest.registerCleanupFunction(() => { SpecialPowers.clearUserPref("general.useragent.locale"); }); - -add_task(function* test_i18n() { - function runTests(assertEq) { - let _ = browser.i18n.getMessage.bind(browser.i18n); - - let url = browser.runtime.getURL("/"); - assertEq(url, `moz-extension://${_("@@extension_id")}/`, "@@extension_id builtin message"); - - assertEq("Foo.", _("Foo"), "Simple message in selected locale."); - - assertEq("(bar)", _("bar"), "Simple message fallback in default locale."); - - assertEq("", _("some-unknown-locale-string"), "Unknown locale string."); - - assertEq("", _("@@unknown_builtin_string"), "Unknown built-in string."); - assertEq("", _("@@bidi_unknown_builtin_string"), "Unknown built-in bidi string."); - - assertEq("Føo.", _("Föo"), "Multi-byte message in selected locale."); - - let substitutions = []; - substitutions[4] = "5"; - substitutions[13] = "14"; - - assertEq("'$0' '14' '' '5' '$$$$' '$'.", _("basic_substitutions", substitutions), - "Basic numeric substitutions"); - - assertEq("'$0' '' 'just a string' '' '$$$$' '$'.", _("basic_substitutions", "just a string"), - "Basic numeric substitutions, with non-array value"); - - let values = _("named_placeholder_substitutions", ["(subst $1 $2)", "(2 $1 $2)"]).split("\n"); - - assertEq("_foo_ (subst $1 $2) _bar_", values[0], "Named and numeric substitution"); - - assertEq("(2 $1 $2)", values[1], "Numeric substitution amid named placeholders"); - - assertEq("$bad name$", values[2], "Named placeholder with invalid key"); - - assertEq("", values[3], "Named placeholder with an invalid value"); - - assertEq("Accepted, but shouldn't break.", values[4], "Named placeholder with a strange content value"); - - assertEq("$foo", values[5], "Non-placeholder token that should be ignored"); - } - - let extension = ExtensionTestUtils.loadExtension({ - manifest: { - "default_locale": "jp", - - content_scripts: [ - {"matches": ["http://mochi.test/*/file_sample.html"], - "js": ["content.js"]}, - ], - }, - - - files: { - "_locales/en_US/messages.json": { - "foo": { - "message": "Foo.", - "description": "foo", - }, - - "föo": { - "message": "Føo.", - "description": "foo", - }, - - "basic_substitutions": { - "message": "'$0' '$14' '$1' '$5' '$$$$$' '$$'.", - "description": "foo", - }, - - "Named_placeholder_substitutions": { - "message": "$Foo$\n$2\n$bad name$\n$bad_value$\n$bad_content_value$\n$foo", - "description": "foo", - "placeholders": { - "foO": { - "content": "_foo_ $1 _bar_", - "description": "foo", - }, - - "bad name": { - "content": "Nope.", - "description": "bad name", - }, - - "bad_value": "Nope.", - - "bad_content_value": { - "content": ["Accepted, but shouldn't break."], - "description": "bad value", - }, - }, - }, - - "broken_placeholders": { - "message": "$broken$", - "description": "broken placeholders", - "placeholders": "foo.", - }, - }, - - "_locales/jp/messages.json": { - "foo": { - "message": "(foo)", - "description": "foo", - }, - - "bar": { - "message": "(bar)", - "description": "bar", - }, - }, - - "content.js": "new " + function(runTestsFn) { - runTestsFn((...args) => { - browser.runtime.sendMessage(["assertEq", ...args]); - }); - - browser.runtime.sendMessage(["content-script-finished"]); - } + `(${runTests})`, - }, - - background: "new " + function(runTestsFn) { - browser.runtime.onMessage.addListener(([msg, ...args]) => { - if (msg == "assertEq") { - browser.test.assertEq(...args); - } else { - browser.test.sendMessage(msg, ...args); - } - }); - - runTestsFn(browser.test.assertEq.bind(browser.test)); - } + `(${runTests})`, - }); - - yield extension.startup(); - - let win = window.open("file_sample.html"); - yield extension.awaitMessage("content-script-finished"); - win.close(); - - yield extension.unload(); -}); - -add_task(function* test_get_accept_languages() { - function background() { - function checkResults(source, results, expected) { - browser.test.assertEq( - expected.length, - results.length, - `got expected number of languages in ${source}`); - results.forEach((lang, index) => { - browser.test.assertEq( - expected[index], - lang, - `got expected language in ${source}`); - }); - } - - let tabId; - - browser.tabs.query({currentWindow: true, active: true}, tabs => { - tabId = tabs[0].id; - browser.test.sendMessage("ready"); - }); - - browser.test.onMessage.addListener(async ([msg, expected]) => { - let contentResults = await browser.tabs.sendMessage(tabId, "get-results"); - let backgroundResults = await browser.i18n.getAcceptLanguages(); - - checkResults("contentScript", contentResults, expected); - checkResults("background", backgroundResults, expected); - - browser.test.sendMessage("done"); - }); - } - - function content() { - browser.runtime.onMessage.addListener((msg, sender, respond) => { - browser.i18n.getAcceptLanguages(respond); - return true; - }); - } - - let extension = ExtensionTestUtils.loadExtension({ - manifest: { - "content_scripts": [{ - "matches": ["http://mochi.test/*/file_sample.html"], - "run_at": "document_start", - "js": ["content_script.js"], - }], - }, - - background, - - files: { - "content_script.js": content, - }, - }); - - let win = window.open("file_sample.html"); - - yield extension.startup(); - yield extension.awaitMessage("ready"); - - let expectedLangs = ["en-US", "en"]; - extension.sendMessage(["expect-results", expectedLangs]); - yield extension.awaitMessage("done"); - - expectedLangs = ["en-US", "en", "fr-CA", "fr"]; - SpecialPowers.setCharPref("intl.accept_languages", expectedLangs.toString()); - extension.sendMessage(["expect-results", expectedLangs]); - yield extension.awaitMessage("done"); - SpecialPowers.clearUserPref("intl.accept_languages"); - - win.close(); - - yield extension.unload(); -}); - -add_task(function* test_get_ui_language() { - function getResults() { - return { - getUILanguage: browser.i18n.getUILanguage(), - getMessage: browser.i18n.getMessage("@@ui_locale"), - }; - } - - function background(getResultsFn) { - function checkResults(source, results, expected) { - browser.test.assertEq( - expected, - results.getUILanguage, - `Got expected getUILanguage result in ${source}` - ); - browser.test.assertEq( - expected, - results.getMessage, - `Got expected getMessage result in ${source}` - ); - } - - let tabId; - - browser.test.onMessage.addListener(([msg, expected]) => { - browser.tabs.sendMessage(tabId, "get-results", result => { - checkResults("contentScript", result, expected); - checkResults("background", getResultsFn(), expected); - - browser.test.sendMessage("done"); - }); - }); - - browser.tabs.query({currentWindow: true, active: true}, tabs => { - tabId = tabs[0].id; - browser.test.sendMessage("ready"); - }); - } - - function content(getResultsFn) { - browser.runtime.onMessage.addListener((msg, sender, respond) => { - respond(getResultsFn()); - }); - } - - let extension = ExtensionTestUtils.loadExtension({ - manifest: { - "content_scripts": [{ - "matches": ["http://mochi.test/*/file_sample.html"], - "run_at": "document_start", - "js": ["content_script.js"], - }], - }, - - background: `(${background})(${getResults})`, - - files: { - "content_script.js": `(${content})(${getResults})`, - }, - }); - - let win = window.open("file_sample.html"); - - yield extension.startup(); - yield extension.awaitMessage("ready"); - - extension.sendMessage(["expect-results", "en_US"]); - yield extension.awaitMessage("done"); - - SpecialPowers.setCharPref("general.useragent.locale", "he"); - - extension.sendMessage(["expect-results", "he"]); - yield extension.awaitMessage("done"); - - win.close(); - - yield extension.unload(); -}); - - -add_task(function* test_detect_language() { - const af_string = " aam skukuza die naam beteken hy wat skoonvee of hy wat alles onderstebo keer wysig " + - "bosveldkampe boskampe is kleiner afgeleë ruskampe wat oor min fasiliteite beskik daar is geen restaurante " + - "of winkels nie en slegs oornagbesoekers word toegelaat bateleur"; - // String with intermixed French/English text - const fr_en_string = "France is the largest country in Western Europe and the third-largest in Europe as a whole. " + - "A accès aux chiens et aux frontaux qui lui ont été il peut consulter et modifier ses collections et exporter " + - "Cet article concerne le pays européen aujourd’hui appelé République française. Pour d’autres usages du nom France, " + - "Pour une aide rapide et effective, veuiller trouver votre aide dans le menu ci-dessus." + - "Motoring events began soon after the construction of the first successful gasoline-fueled automobiles. The quick brown fox jumped over the lazy dog"; - - function background() { - function checkResult(source, result, expected) { - browser.test.assertEq(expected.isReliable, result.isReliable, "result.confident is true"); - browser.test.assertEq( - expected.languages.length, - result.languages.length, - `result.languages contains the expected number of languages in ${source}`); - expected.languages.forEach((lang, index) => { - browser.test.assertEq( - lang.percentage, - result.languages[index].percentage, - `element ${index} of result.languages array has the expected percentage in ${source}`); - browser.test.assertEq( - lang.language, - result.languages[index].language, - `element ${index} of result.languages array has the expected language in ${source}`); - }); - } - - let tabId; - - browser.tabs.query({currentWindow: true, active: true}, tabs => { - tabId = tabs[0].id; - browser.test.sendMessage("ready"); - }); - - browser.test.onMessage.addListener(async ([msg, expected]) => { - let backgroundResults = await browser.i18n.detectLanguage(msg); - let contentResults = await browser.tabs.sendMessage(tabId, msg); - - checkResult("background", backgroundResults, expected); - checkResult("contentScript", contentResults, expected); - - browser.test.sendMessage("done"); - }); - } - - function content() { - browser.runtime.onMessage.addListener((msg, sender, respond) => { - browser.i18n.detectLanguage(msg, respond); - return true; - }); - } - - let extension = ExtensionTestUtils.loadExtension({ - manifest: { - "content_scripts": [{ - "matches": ["http://mochi.test/*/file_sample.html"], - "run_at": "document_start", - "js": ["content_script.js"], - }], - }, - - background, - - files: { - "content_script.js": content, - }, - }); - - let win = window.open("file_sample.html"); - - yield extension.startup(); - yield extension.awaitMessage("ready"); - - let expected = { - isReliable: true, - languages: [ - { - language: "fr", - percentage: 67, - }, - { - language: "en", - percentage: 32, - }, - ], - }; - extension.sendMessage([fr_en_string, expected]); - yield extension.awaitMessage("done"); - - expected = { - isReliable: true, - languages: [ - { - language: "af", - percentage: 99, - }, - ], - }; - extension.sendMessage([af_string, expected]); - yield extension.awaitMessage("done"); - - win.close(); - - yield extension.unload(); -}); - -</script> - -</body> -</html> |