diff options
Diffstat (limited to 'addon-sdk/source/test/loader')
-rw-r--r-- | addon-sdk/source/test/loader/b2g.js | 41 | ||||
-rw-r--r-- | addon-sdk/source/test/loader/fixture.js | 7 | ||||
-rw-r--r-- | addon-sdk/source/test/loader/user-global.js | 11 |
3 files changed, 59 insertions, 0 deletions
diff --git a/addon-sdk/source/test/loader/b2g.js b/addon-sdk/source/test/loader/b2g.js new file mode 100644 index 000000000..2982a0202 --- /dev/null +++ b/addon-sdk/source/test/loader/b2g.js @@ -0,0 +1,41 @@ +/* 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 {Cc, Ci, Cu} = require("chrome"); +const {readURISync} = require("sdk/net/url"); + +const systemPrincipal = Cc["@mozilla.org/systemprincipal;1"]. + createInstance(Ci.nsIPrincipal); + + +const FakeCu = function() { + const sandbox = Cu.Sandbox(systemPrincipal, {wantXrays: false}); + sandbox.toString = function() { + return "[object BackstagePass]"; + } + this.sandbox = sandbox; +} +FakeCu.prototype = { + ["import"](url, scope) { + const {sandbox} = this; + sandbox.__URI__ = url; + const target = Cu.createObjectIn(sandbox); + target.toString = sandbox.toString; + Cu.evalInSandbox(`(function(){` + readURISync(url) + `\n})`, + sandbox, "1.8", url).call(target); + // Borrowed from mozJSComponentLoader.cpp to match errors closer. + // https://github.com/mozilla/gecko-dev/blob/f6ca65e8672433b2ce1a0e7c31f72717930b5e27/js/xpconnect/loader/mozJSComponentLoader.cpp#L1205-L1208 + if (!Array.isArray(target.EXPORTED_SYMBOLS)) { + throw Error("EXPORTED_SYMBOLS is not an array."); + } + + for (let key of target.EXPORTED_SYMBOLS) { + scope[key] = target[key]; + } + + return target; + } +}; +exports.FakeCu = FakeCu; diff --git a/addon-sdk/source/test/loader/fixture.js b/addon-sdk/source/test/loader/fixture.js new file mode 100644 index 000000000..ebf91abba --- /dev/null +++ b/addon-sdk/source/test/loader/fixture.js @@ -0,0 +1,7 @@ +/* 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/. */ + +exports.foo = foo; +exports.bar = 2; +print('testing'); diff --git a/addon-sdk/source/test/loader/user-global.js b/addon-sdk/source/test/loader/user-global.js new file mode 100644 index 000000000..34b233f42 --- /dev/null +++ b/addon-sdk/source/test/loader/user-global.js @@ -0,0 +1,11 @@ +/* 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"; + +// Test module to check presense of user defined globals. +// Related to bug 827792. + +exports.getCom = function() { + return com; +}; |