diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-03-06 12:30:20 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-03-06 12:30:20 +0100 |
commit | e25ad543952b5afc13181aaebef9c5951fc27be0 (patch) | |
tree | 456a1359b3e5f810319edd423dd5cc5a1e22ada5 /toolkit/components/webextensions/test/xpcshell/test_locale_converter.js | |
parent | 74533a843277c3687c749989ed1522354d1054d2 (diff) | |
parent | 5dba1ebe8498286762873fff0016f35f3e14d2d5 (diff) | |
download | UXP-e41749ff8b3b148b854a346ce2c6e6526caa1754.tar UXP-e41749ff8b3b148b854a346ce2c6e6526caa1754.tar.gz UXP-e41749ff8b3b148b854a346ce2c6e6526caa1754.tar.lz UXP-e41749ff8b3b148b854a346ce2c6e6526caa1754.tar.xz UXP-e41749ff8b3b148b854a346ce2c6e6526caa1754.zip |
Merge branch 'master' into Basilisk-releasev2019.03.08
Diffstat (limited to 'toolkit/components/webextensions/test/xpcshell/test_locale_converter.js')
-rw-r--r-- | toolkit/components/webextensions/test/xpcshell/test_locale_converter.js | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/toolkit/components/webextensions/test/xpcshell/test_locale_converter.js b/toolkit/components/webextensions/test/xpcshell/test_locale_converter.js deleted file mode 100644 index c8b1ee92b..000000000 --- a/toolkit/components/webextensions/test/xpcshell/test_locale_converter.js +++ /dev/null @@ -1,133 +0,0 @@ -"use strict"; - -const convService = Cc["@mozilla.org/streamConverters;1"] - .getService(Ci.nsIStreamConverterService); - -const UUID = "72b61ee3-aceb-476c-be1b-0822b036c9f1"; -const ADDON_ID = "test@web.extension"; -const URI = NetUtil.newURI(`moz-extension://${UUID}/file.css`); - -const FROM_TYPE = "application/vnd.mozilla.webext.unlocalized"; -const TO_TYPE = "text/css"; - - -function StringStream(string) { - let stream = Cc["@mozilla.org/io/string-input-stream;1"] - .createInstance(Ci.nsIStringInputStream); - - stream.data = string; - return stream; -} - - -// Initialize the policy service with a stub localizer for our -// add-on ID. -add_task(function* init() { - const aps = Cc["@mozilla.org/addons/policy-service;1"] - .getService(Ci.nsIAddonPolicyService).wrappedJSObject; - - let oldCallback = aps.setExtensionURIToAddonIdCallback(uri => { - if (uri.host == UUID) { - return ADDON_ID; - } - }); - - aps.setAddonLocalizeCallback(ADDON_ID, string => { - return string.replace(/__MSG_(.*?)__/g, "<localized-$1>"); - }); - - do_register_cleanup(() => { - aps.setExtensionURIToAddonIdCallback(oldCallback); - aps.setAddonLocalizeCallback(ADDON_ID, null); - }); -}); - - -// Test that the synchronous converter works as expected with a -// simple string. -add_task(function* testSynchronousConvert() { - let stream = StringStream("Foo __MSG_xxx__ bar __MSG_yyy__ baz"); - - let resultStream = convService.convert(stream, FROM_TYPE, TO_TYPE, URI); - - let result = NetUtil.readInputStreamToString(resultStream, resultStream.available()); - - equal(result, "Foo <localized-xxx> bar <localized-yyy> baz"); -}); - - -// Test that the asynchronous converter works as expected with input -// split into multiple chunks, and a boundary in the middle of a -// replacement token. -add_task(function* testAsyncConvert() { - let listener; - let awaitResult = new Promise((resolve, reject) => { - listener = { - QueryInterface: XPCOMUtils.generateQI([Ci.nsIStreamListener]), - - onDataAvailable(request, context, inputStream, offset, count) { - this.resultParts.push(NetUtil.readInputStreamToString(inputStream, count)); - }, - - onStartRequest() { - ok(!("resultParts" in this)); - this.resultParts = []; - }, - - onStopRequest(request, context, statusCode) { - if (!Components.isSuccessCode(statusCode)) { - reject(new Error(statusCode)); - } - - resolve(this.resultParts.join("\n")); - }, - }; - }); - - let parts = ["Foo __MSG_x", "xx__ bar __MSG_yyy__ baz"]; - - let converter = convService.asyncConvertData(FROM_TYPE, TO_TYPE, listener, URI); - converter.onStartRequest(null, null); - - for (let part of parts) { - converter.onDataAvailable(null, null, StringStream(part), 0, part.length); - } - - converter.onStopRequest(null, null, Cr.NS_OK); - - - let result = yield awaitResult; - equal(result, "Foo <localized-xxx> bar <localized-yyy> baz"); -}); - - -// Test that attempting to initialize a converter with the URI of a -// nonexistent WebExtension fails. -add_task(function* testInvalidUUID() { - let uri = NetUtil.newURI("moz-extension://eb4f3be8-41c9-4970-aa6d-b84d1ecc02b2/file.css"); - let stream = StringStream("Foo __MSG_xxx__ bar __MSG_yyy__ baz"); - - // Assert.throws raise a TypeError exception when the expected param - // is an arrow function. (See Bug 1237961 for rationale) - let expectInvalidContextException = function(e) { - return e.result === Cr.NS_ERROR_INVALID_ARG && /Invalid context/.test(e); - }; - - Assert.throws(() => { - convService.convert(stream, FROM_TYPE, TO_TYPE, uri); - }, expectInvalidContextException); - - Assert.throws(() => { - let listener = {QueryInterface: XPCOMUtils.generateQI([Ci.nsIStreamListener])}; - - convService.asyncConvertData(FROM_TYPE, TO_TYPE, listener, uri); - }, expectInvalidContextException); -}); - - -// Test that an empty stream does not throw an NS_ERROR_ILLEGAL_VALUE. -add_task(function* testEmptyStream() { - let stream = StringStream(""); - let resultStream = convService.convert(stream, FROM_TYPE, TO_TYPE, URI); - equal(resultStream.data, ""); -}); |