aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.3/packages/api-utils/tests/test-e10s.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.3/packages/api-utils/tests/test-e10s.js')
-rw-r--r--tools/addon-sdk-1.3/packages/api-utils/tests/test-e10s.js268
1 files changed, 0 insertions, 268 deletions
diff --git a/tools/addon-sdk-1.3/packages/api-utils/tests/test-e10s.js b/tools/addon-sdk-1.3/packages/api-utils/tests/test-e10s.js
deleted file mode 100644
index 537fb2d..0000000
--- a/tools/addon-sdk-1.3/packages/api-utils/tests/test-e10s.js
+++ /dev/null
@@ -1,268 +0,0 @@
-var xulApp = require("xul-app");
-var timer = require('timer');
-
-// If the "jetpack/service" XPCOM component is not present, then the host app
-// does not support e10s, so we can't run any e10s tests, so we check for E10S
-// support here and then return early in test functions without it.
-var hasE10S =
- typeof require("chrome").Cc["@mozilla.org/jetpack/service;1"] != "undefined";
-
-function makeConsoleTest(options) {
- return function(test) {
- if (!hasE10S) {
- test.pass("This application does not support e10s.");
- return;
- }
-
- if (xulApp.is("Firefox") &&
- xulApp.versionInRange(xulApp.version, "4.0b7", "4.0b8pre")) {
- test.pass("Due to bug 609066, Firefox 4.0b7 will never pass this test, " +
- "so we'll skip it.");
- return;
- }
-
- var actions = [];
-
- if (options.setup)
- options.setup(test);
-
- function addAction(action) {
- if (options.expect.length == actions.length) {
- test.fail("Didn't expect another action: " + JSON.stringify(action));
- return;
- }
- actions.push(action);
- var expected = options.expect[actions.length-1];
- if (typeof(expected) == "function")
- expected(test, action);
- else
- test.assertEqual(JSON.stringify(action), JSON.stringify(expected));
- if (options.expect.length == actions.length &&
- action[0] == "exception") {
- process.destroy();
- test.done();
- }
- }
-
- function msg(name, args) {
- var action = [name];
- for (var i = 0; i < args.length; i++)
- action.push(args[i]);
- addAction(action);
- }
-
- var fakeConsole = {
- exception: function(ex) {
- addAction(["exception", ex.toString()]);
- }
- };
-
- ["log", "warn", "debug", "error", "info"].forEach(function(name) {
- fakeConsole[name] = function() { msg(name, arguments); };
- });
-
- var process = require('e10s').AddonProcess({
- console: fakeConsole,
- quit: function(status) {
- addAction(["quit", status]);
- process.destroy();
- test.done();
- }
- });
- process.send("startMain", options.main);
- test.waitUntilDone();
- };
-}
-
-exports.testStartMain = makeConsoleTest({
- main: "e10s-samples/hello-world",
- expect: [
- ["log", "hello", "world"],
- ["info", "sup", "dogg"],
- ["warn", "how", "r", "u"],
- ["debug", "gud"],
- ["error", "NO U"],
- ["exception", "Error: o snap"],
- ["log", "<toString() error>"],
- function testConsoleTrace(test, action) {
- test.assertEqual(action[0], "log",
- "remote console.trace() issues " +
- "local console.log()");
- test.assertMatches(action[1], /^Traceback /,
- "remote console.trace logs traceback");
- },
- ["quit", "OK"]
- ]
-});
-
-exports.testStartMainWithNonexistentModule = makeConsoleTest({
- main: "nonexistent-module",
- expect: [
- ["log", "An exception occurred in the child Jetpack process."],
- ["exception", "Error: Unknown module 'nonexistent-module'."]
- ]
-});
-
-exports.testRemoteSyntaxError = makeConsoleTest({
- main: "e10s-samples/syntax-error",
- expect: [
- ["log", "An exception occurred in the child Jetpack process."],
- ["exception", "Error: uncaught exception: SyntaxError: missing ;" +
- " before statement"]
- ]
-});
-
-exports.testRemoteException = makeConsoleTest({
- main: "e10s-samples/thrown-exception",
- expect: [
- ["log", "An exception occurred in the child Jetpack process."],
- ["exception", "Error: uncaught exception: Error: alas"]
- ]
-});
-
-exports.testE10sAdapter = makeConsoleTest({
- main: "e10s-samples/superpower-client",
- setup: function(test) {
- require("e10s-samples/superpower").setDelegate(function(a, b) {
- test.assertEqual(JSON.stringify([a, b]),
- JSON.stringify(["hello", "there"]));
- return "thanks dude";
- });
- },
- expect: [
- ["log", "superpower.use returned", "thanks dude"],
- ["quit", "OK"]
- ]
-});
-
-exports.testAccessDeniedToLoadModule = makeConsoleTest({
- main: "e10s-samples/chrome-only-module-client",
- expect: [
- ["log", "An exception occurred in the child Jetpack process."],
- ["exception",
- "Error: Module 'e10s-samples/chrome-only-module' requires " +
- "chrome privileges and has no e10s adapter."]
- ]
-});
-
-exports.testAdapterOnlyModule = makeConsoleTest({
- main: "e10s-samples/adapter-only-client",
- expect: [
- ["log", "An exception occurred in the child Jetpack process."],
- ["exception", "Error: Unknown module 'e10s-samples/adapter-only'."]
- ]
-});
-
-exports.testSyncCallReturnValueArrivesAfterAsyncMsgSends = makeConsoleTest({
- main: "e10s-samples/bug-617499-main",
- expect: [
- ["log", "about to send sync message to firefox"],
- ["log", "i am an async message from firefox"],
- ["log", "returned from sync message to firefox"],
- ["quit", "OK"]
- ]
-});
-
-exports.testCommonJSCompliance = function(test) {
- if (!hasE10S) {
- test.pass("This application does not support e10s.");
- return;
- }
-
- if (xulApp.is("Firefox") &&
- xulApp.versionInRange(xulApp.version, "4.0b7", "4.0b8pre")) {
- test.pass("Due to bug 609066, Firefox 4.0b7 will never pass this test, " +
- "so we'll skip it.");
- return;
- }
-
- let {Cc, Ci} = require("chrome");
-
- var url = require("url");
- var path = url.URL("interoperablejs-read-only/compliance/",
- __url__).toString();
- path = url.toFilename(path);
-
- var rootDir = Cc['@mozilla.org/file/local;1']
- .createInstance(Ci.nsILocalFile);
- rootDir.initWithPath(path);
-
- var testDirs = [];
- var enumer = rootDir.directoryEntries;
- while (enumer.hasMoreElements()) {
- var testDir = enumer.getNext().QueryInterface(Ci.nsIFile);
- if (testDir.isDirectory() &&
- testDir.leafName.charAt(0) != '.')
- testDirs.push(testDir);
- }
-
- var sm = require("securable-module");
-
- function runComplianceTest(testDir) {
- console.info("running compliance test '" + testDir.leafName + "'");
- var loader = new sm.Loader({
- rootPath: testDir
- });
- var interceptingConsole = {
- log: function(msg, type) {
- switch (type) {
- case "fail":
- test.fail(msg);
- break;
- case "pass":
- test.pass(msg);
- break;
- case "info":
- console.info(msg);
- if (msg == "DONE") {
- console.info("Running next test.");
- process.destroy();
- runNextComplianceTest();
- }
- }
- },
- __proto__: console
- };
- var process = require("e10s").AddonProcess({
- loader: loader,
- packaging: {
- getModuleInfo: function(url) {
- return {
- 'e10s-adapter': null,
- needsChrome: false
- };
- }
- },
- console: interceptingConsole
- });
-
- function injectSysPrint(globalScope) {
- globalScope.sys = {
- // The CommonJS compliance tests use this
- // to report test pass/fail.
- print: function(msg, type) {
- // This ultimately gets intercepted by our
- // interceptingConsole.
- console.log(msg, type);
- }
- };
- }
-
- process.send("addInjectedSandboxScript", {
- filename: "<string>",
- contents: "(" + uneval(injectSysPrint) + ")(this);"
- });
-
- process.send("startMain", "program");
- }
-
- function runNextComplianceTest() {
- if (testDirs.length)
- runComplianceTest(testDirs.pop());
- else
- test.done();
- }
-
- runNextComplianceTest();
- test.waitUntilDone();
-};