diff options
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.js | 36 |
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))."); + }); +}; |