diff options
Diffstat (limited to 'toolkit/components/workerloader')
16 files changed, 1 insertions, 386 deletions
diff --git a/toolkit/components/workerloader/moz.build b/toolkit/components/workerloader/moz.build index 145f7adc0..f81309dcc 100644 --- a/toolkit/components/workerloader/moz.build +++ b/toolkit/components/workerloader/moz.build @@ -4,11 +4,4 @@ # 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/. -MOCHITEST_CHROME_MANIFESTS += ['tests/chrome.ini'] - -EXTRA_JS_MODULES.workers += [ - 'require.js' -] - -with Files('**'): - BUG_COMPONENT = ('Toolkit', 'Async Tooling') +EXTRA_JS_MODULES.workers += ['require.js'] diff --git a/toolkit/components/workerloader/tests/.eslintrc.js b/toolkit/components/workerloader/tests/.eslintrc.js deleted file mode 100644 index 2c669d844..000000000 --- a/toolkit/components/workerloader/tests/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -module.exports = { - "extends": [ - "../../../../testing/mochitest/chrome.eslintrc.js" - ] -}; diff --git a/toolkit/components/workerloader/tests/chrome.ini b/toolkit/components/workerloader/tests/chrome.ini deleted file mode 100644 index c83a0b081..000000000 --- a/toolkit/components/workerloader/tests/chrome.ini +++ /dev/null @@ -1,15 +0,0 @@ -[DEFAULT] -support-files = - moduleA-depends.js - moduleB-dependency.js - moduleC-circular.js - moduleD-circular.js - moduleE-throws-during-require.js - moduleF-syntax-error.js - moduleG-throws-later.js - moduleH-module-dot-exports.js - utils_mainthread.js - utils_worker.js - worker_test_loading.js - -[test_loading.xul] diff --git a/toolkit/components/workerloader/tests/moduleA-depends.js b/toolkit/components/workerloader/tests/moduleA-depends.js deleted file mode 100644 index 0e1cc7c8b..000000000 --- a/toolkit/components/workerloader/tests/moduleA-depends.js +++ /dev/null @@ -1,14 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -// A trivial module that depends on an equally trivial module -var B = require("chrome://mochitests/content/chrome/toolkit/components/workerloader/tests/moduleB-dependency.js"); - -// Ensure that the initial set of exports is empty -if (Object.keys(exports).length) { - throw new Error("exports should be empty, initially"); -} - -// Export some values -exports.A = true; -exports.importedFoo = B.foo; diff --git a/toolkit/components/workerloader/tests/moduleB-dependency.js b/toolkit/components/workerloader/tests/moduleB-dependency.js deleted file mode 100644 index 5c9831fc3..000000000 --- a/toolkit/components/workerloader/tests/moduleB-dependency.js +++ /dev/null @@ -1,11 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -exports.B = true; -exports.foo = "foo"; - -// Side-effect to detect if we attempt to re-execute this module. -if ("loadedB" in self) { - throw new Error("B has been evaluted twice"); -} -self.loadedB = true; diff --git a/toolkit/components/workerloader/tests/moduleC-circular.js b/toolkit/components/workerloader/tests/moduleC-circular.js deleted file mode 100644 index 5dc14259a..000000000 --- a/toolkit/components/workerloader/tests/moduleC-circular.js +++ /dev/null @@ -1,18 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// Module C and module D have circular dependencies. -// This should not prevent from loading them. - -// This value is set before any circular dependency, it should be visible -// in D. -exports.enteredC = true; - -var D = require("chrome://mochitests/content/chrome/toolkit/components/workerloader/tests/moduleD-circular.js"); - -// The following values are set after importing D. -// copiedFromD.copiedFromC should have only one field |enteredC| -exports.copiedFromD = JSON.parse(JSON.stringify(D)); -// exportedFromD.copiedFromC should have all the fields defined in |exports| -exports.exportedFromD = D; -exports.finishedC = true; diff --git a/toolkit/components/workerloader/tests/moduleD-circular.js b/toolkit/components/workerloader/tests/moduleD-circular.js deleted file mode 100644 index d77bdc74d..000000000 --- a/toolkit/components/workerloader/tests/moduleD-circular.js +++ /dev/null @@ -1,11 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// Module C and module D have circular dependencies. -// This should not prevent from loading them. - -exports.enteredD = true; -var C = require("chrome://mochitests/content/chrome/toolkit/components/workerloader/tests/moduleC-circular.js"); -exports.copiedFromC = JSON.parse(JSON.stringify(C)); -exports.exportedFromC = C; -exports.finishedD = true; diff --git a/toolkit/components/workerloader/tests/moduleE-throws-during-require.js b/toolkit/components/workerloader/tests/moduleE-throws-during-require.js deleted file mode 100644 index b0be0449f..000000000 --- a/toolkit/components/workerloader/tests/moduleE-throws-during-require.js +++ /dev/null @@ -1,10 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// Skip a few lines -// 5 -// 6 -// 7 -// 8 -// 9 -throw new Error("Let's see if this error is obtained with the right origin"); diff --git a/toolkit/components/workerloader/tests/moduleF-syntax-error.js b/toolkit/components/workerloader/tests/moduleF-syntax-error.js deleted file mode 100644 index c03fa32f8..000000000 --- a/toolkit/components/workerloader/tests/moduleF-syntax-error.js +++ /dev/null @@ -1,6 +0,0 @@ -<!-- -Any copyright is dedicated to the Public Domain. -http://creativecommons.org/publicdomain/zero/1.0/ ---> -<?xml version="1.0" encoding="UTF-8" ?> -<foo>Anything that doesn't parse as JavaScript</foo> diff --git a/toolkit/components/workerloader/tests/moduleG-throws-later.js b/toolkit/components/workerloader/tests/moduleG-throws-later.js deleted file mode 100644 index 8a24bc7e4..000000000 --- a/toolkit/components/workerloader/tests/moduleG-throws-later.js +++ /dev/null @@ -1,12 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// Skip a few lines -// 5 -// 6 -// 7 -// 8 -// 9 -exports.doThrow = function doThrow() { - Array.prototype.sort.apply("foo"); // This will raise a native TypeError -}; diff --git a/toolkit/components/workerloader/tests/moduleH-module-dot-exports.js b/toolkit/components/workerloader/tests/moduleH-module-dot-exports.js deleted file mode 100644 index a6b93bbcc..000000000 --- a/toolkit/components/workerloader/tests/moduleH-module-dot-exports.js +++ /dev/null @@ -1,12 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// This should be overwritten by module.exports -exports.key = "wrong value"; - -module.exports = { - key: "value" -}; - -// This should also be overwritten by module.exports -exports.key = "another wrong value"; diff --git a/toolkit/components/workerloader/tests/test_loading.xul b/toolkit/components/workerloader/tests/test_loading.xul deleted file mode 100644 index 2744270e1..000000000 --- a/toolkit/components/workerloader/tests/test_loading.xul +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0"?> -<!-- - Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ ---> -<window title="Testing the worker loader" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - onload="test();"> - - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/> - <script type="application/javascript" - src="utils_mainthread.js"/> - <script type="application/javascript"> - <![CDATA[ - -let worker; -let main = this; - -function test() { - info("Starting test " + document.uri); - - worker = new ChromeWorker("worker_test_loading.js"); - SimpleTest.waitForExplicitFinish(); - info("Chrome worker created"); - worker_handler(worker); - worker.postMessage(document.uri); - ok(true, "Test in progress"); -}; -]]> - </script> - - <body xmlns="http://www.w3.org/1999/xhtml"> - <p id="display"></p> - <div id="content" style="display:none;"></div> - <pre id="test"></pre> - </body> - <label id="test-result"/> -</window> diff --git a/toolkit/components/workerloader/tests/utils_mainthread.js b/toolkit/components/workerloader/tests/utils_mainthread.js deleted file mode 100644 index 148591c3d..000000000 --- a/toolkit/components/workerloader/tests/utils_mainthread.js +++ /dev/null @@ -1,34 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -function worker_handler(worker) { - worker.onerror = function(error) { - error.preventDefault(); - ok(false, "error "+ error.message); - }; - worker.onmessage = function(msg) { -// ok(true, "MAIN: onmessage " + JSON.stringify(msg.data)); - switch (msg.data.kind) { - case "is": - SimpleTest.ok(msg.data.outcome, msg.data.description + - "( "+ msg.data.a + " ==? " + msg.data.b + ")" ); - return; - case "isnot": - SimpleTest.ok(msg.data.outcome, msg.data.description + - "( "+ msg.data.a + " !=? " + msg.data.b + ")" ); - return; - case "ok": - SimpleTest.ok(msg.data.condition, msg.data.description); - return; - case "info": - SimpleTest.info(msg.data.description); - return; - case "finish": - SimpleTest.finish(); - return; - default: - SimpleTest.ok(false, "test_osfile.xul: wrong message " + JSON.stringify(msg.data)); - return; - } - }; -} diff --git a/toolkit/components/workerloader/tests/utils_worker.js b/toolkit/components/workerloader/tests/utils_worker.js deleted file mode 100644 index da82d4b0a..000000000 --- a/toolkit/components/workerloader/tests/utils_worker.js +++ /dev/null @@ -1,32 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -function log(text) { - dump("WORKER " + text + "\n"); -} - -function send(message) { - self.postMessage(message); -} - -function finish() { - send({kind: "finish"}); -} - -function ok(condition, description) { - send({kind: "ok", condition: !!condition, description: "" + description}); -} - -function is(a, b, description) { - let outcome = a == b; // Need to decide outcome here, as not everything can be serialized - send({kind: "is", outcome: outcome, description: "" + description, a: "" + a, b: "" + b}); -} - -function isnot(a, b, description) { - let outcome = a != b; // Need to decide outcome here, as not everything can be serialized - send({kind: "isnot", outcome: outcome, description: "" + description, a: "" + a, b: "" + b}); -} - -function info(description) { - send({kind: "info", description: "" + description}); -} diff --git a/toolkit/components/workerloader/tests/worker_handler.js b/toolkit/components/workerloader/tests/worker_handler.js deleted file mode 100644 index b09b8c34c..000000000 --- a/toolkit/components/workerloader/tests/worker_handler.js +++ /dev/null @@ -1,34 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -function worker_handler(worker) { - worker.onerror = function(error) { - error.preventDefault(); - ok(false, "error "+error); - } - worker.onmessage = function(msg) { - ok(true, "MAIN: onmessage " + JSON.stringify(msg.data)); - switch (msg.data.kind) { - case "is": - SimpleTest.ok(msg.data.outcome, msg.data.description + - "( "+ msg.data.a + " ==? " + msg.data.b + ")" ); - return; - case "isnot": - SimpleTest.ok(msg.data.outcome, msg.data.description + - "( "+ msg.data.a + " !=? " + msg.data.b + ")" ); - return; - case "ok": - SimpleTest.ok(msg.data.condition, msg.data.description); - return; - case "info": - SimpleTest.info(msg.data.description); - return; - case "finish": - SimpleTest.finish(); - return; - default: - SimpleTest.ok(false, "test_osfile.xul: wrong message " + JSON.stringify(msg.data)); - return; - } - }; -} diff --git a/toolkit/components/workerloader/tests/worker_test_loading.js b/toolkit/components/workerloader/tests/worker_test_loading.js deleted file mode 100644 index 40702e4e1..000000000 --- a/toolkit/components/workerloader/tests/worker_test_loading.js +++ /dev/null @@ -1,121 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -importScripts("utils_worker.js"); // Test suite code -info("Test suite configured"); - -importScripts("resource://gre/modules/workers/require.js"); -info("Loader imported"); - -var PATH = "chrome://mochitests/content/chrome/toolkit/components/workerloader/tests/"; -var tests = []; -var add_test = function(test) { - tests.push(test); -}; - -add_test(function test_setup() { - ok(typeof require != "undefined", "Function |require| is defined"); -}); - -// Test simple loading (moduleA-depends.js requires moduleB-dependency.js) -add_test(function test_load() { - let A = require(PATH + "moduleA-depends.js"); - ok(true, "Opened module A"); - - is(A.A, true, "Module A exported value A"); - ok(!("B" in A), "Module A did not export value B"); - is(A.importedFoo, "foo", "Module A re-exported B.foo"); - - // re-evaluating moduleB-dependency.js would cause an error, but re-requiring it shouldn't - let B = require(PATH + "moduleB-dependency.js"); - ok(true, "Managed to re-require module B"); - is(B.B, true, "Module B exported value B"); - is(B.foo, "foo", "Module B exported value foo"); -}); - -// Test simple circular loading (moduleC-circular.js and moduleD-circular.js require each other) -add_test(function test_circular() { - let C = require(PATH + "moduleC-circular.js"); - ok(true, "Loaded circular modules C and D"); - is(C.copiedFromD.copiedFromC.enteredC, true, "Properties exported by C before requiring D can be seen by D immediately"); - - let D = require(PATH + "moduleD-circular.js"); - is(D.exportedFromC.finishedC, true, "Properties exported by C after requiring D can be seen by D eventually"); -}); - -// Testing error cases -add_test(function test_exceptions() { - let should_throw = function(f) { - try { - f(); - return null; - } catch (ex) { - return ex; - } - }; - - let exn = should_throw(() => require(PATH + "this module doesn't exist")); - ok(!!exn, "Attempting to load a module that doesn't exist raises an error"); - - exn = should_throw(() => require(PATH + "moduleE-throws-during-require.js")); - ok(!!exn, "Attempting to load a module that throws at toplevel raises an error"); - is(exn.moduleName, PATH + "moduleE-throws-during-require.js", - "moduleName is correct"); - isnot(exn.moduleStack.indexOf("moduleE-throws-during-require.js"), -1, - "moduleStack contains the name of the module"); - is(exn.lineNumber, 10, "The error comes with the right line number"); - - exn = should_throw(() => require(PATH + "moduleF-syntaxerror.xml")); - ok(!!exn, "Attempting to load a non-well formatted module raises an error"); - - exn = should_throw(() => require(PATH + "moduleG-throws-later.js").doThrow()); - ok(!!exn, "G.doThrow() has raised an error"); - info(exn); - ok(exn.toString().startsWith("TypeError"), "The exception is a TypeError."); - is(exn.moduleName, PATH + "moduleG-throws-later.js", "The name of the module is correct"); - isnot(exn.moduleStack.indexOf("moduleG-throws-later.js"), -1, - "The name of the right file appears somewhere in the stack"); - is(exn.lineNumber, 11, "The error comes with the right line number"); -}); - -function get_exn(f) { - try { - f(); - return undefined; - } catch (ex) { - return ex; - } -} - -// Test module.exports -add_test(function test_module_dot_exports() { - let H = require(PATH + "moduleH-module-dot-exports.js"); - is(H.key, "value", "module.exports worked"); - let H2 = require(PATH + "moduleH-module-dot-exports.js"); - is(H2.key, "value", "module.exports returned the same key"); - ok(H2 === H, "module.exports returned the same module the second time"); - let exn = get_exn(() => H.key = "this should not be accepted"); - ok(exn instanceof TypeError, "Cannot alter value in module.exports after export"); - exn = get_exn(() => H.key2 = "this should not be accepted, either"); - ok(exn instanceof TypeError, "Cannot add value to module.exports after export"); -}); - -self.onmessage = function(message) { - for (let test of tests) { - info("Entering " + test.name); - try { - test(); - } catch (ex) { - ok(false, "Test " + test.name + " failed"); - info(ex); - info(ex.stack); - } - info("Leaving " + test.name); - } - finish(); -}; - - - |