/** * Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ var testGenerator = testSteps(); function* testSteps() { function getSpec(filename) { let file = do_get_file(filename); let uri = Services.io.newFileURI(file); return uri.spec; } // Test for IDBKeyRange and indexedDB availability in JS modules. const { GlobalObjectsModule } = ChromeUtils.importESModule( "resource://test/GlobalObjectsModule.sys.mjs" ); let test = new GlobalObjectsModule(); test.ok = ok; test.finishTest = continueToNextStep; test.runTest(); yield undefined; // Test for IDBKeyRange and indexedDB availability in JS sandboxes. let principal = Cc["@mozilla.org/systemprincipal;1"].createInstance( Ci.nsIPrincipal ); let sandbox = new Cu.Sandbox(principal, { wantGlobalProperties: ["indexedDB"], }); sandbox.__SCRIPT_URI_SPEC__ = getSpec("GlobalObjectsSandbox.js"); Cu.evalInSandbox( "Components.classes['@mozilla.org/moz/jssubscript-loader;1'] \ .createInstance(Components.interfaces.mozIJSSubScriptLoader) \ .loadSubScript(__SCRIPT_URI_SPEC__);", sandbox, "1.7" ); sandbox.ok = ok; sandbox.finishTest = continueToNextStep; Cu.evalInSandbox("runTest();", sandbox); yield undefined; finishTest(); yield undefined; } this.runTest = function () { do_get_profile(); do_test_pending(); testGenerator.next(); };