mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-08 08:17:31 +09:00
Issue #439 - Remove tests from toolkit/
This commit is contained in:
parent
3210cc7d95
commit
e5bacc6f6e
2362 changed files with 95 additions and 246993 deletions
|
|
@ -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']
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
"extends": [
|
||||
"../../../../testing/mochitest/chrome.eslintrc.js"
|
||||
]
|
||||
};
|
||||
|
|
@ -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]
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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");
|
||||
|
|
@ -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>
|
||||
|
|
@ -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
|
||||
};
|
||||
|
|
@ -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";
|
||||
|
|
@ -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>
|
||||
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
@ -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});
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
@ -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();
|
||||
};
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue