aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.7/packages/api-utils/tests/test-process.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.7/packages/api-utils/tests/test-process.js')
-rw-r--r--tools/addon-sdk-1.7/packages/api-utils/tests/test-process.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.7/packages/api-utils/tests/test-process.js b/tools/addon-sdk-1.7/packages/api-utils/tests/test-process.js
new file mode 100644
index 0000000..43d0864
--- /dev/null
+++ b/tools/addon-sdk-1.7/packages/api-utils/tests/test-process.js
@@ -0,0 +1,36 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * 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/. */
+
+"use strict";
+
+const { Loader } = require("./helpers");
+const { jetpackID } = require('@packaging');
+
+// bug 707562: '#' char in packaging was causing loader to be undefined
+exports.testBug707562 = function(test) {
+ test.waitUntilDone();
+
+ let packaging = JSON.parse(JSON.stringify(require("@packaging")));
+ packaging.metadata["api-utils"].author = "###";
+
+ let loader = Loader(module, {}, packaging);
+ let process = loader.require("process");
+
+ // has spawn?
+ test.assert(process.spawn, "'process' module exports 'spawn' method.");
+
+ let promise = process.spawn("testID", "");
+ test.assertFunction(promise, "spawn makes a promise.");
+
+ promise(function(addon) {
+ addon.channel("TEST:LOADED").input(function(data) {
+ test.assert(data, "The loader was successfully created!");
+ loader.unload();
+ test.done();
+ });
+
+ addon.loadScript('data:,sendAsyncMessage("'+jetpackID+':TEST:LOADED", !!this.loader);', false);
+ test.pass("spawn's promise was delivered! (which means a addon process object is available)).");
+ });
+};