fune/js/xpconnect/tests/unit/test_loadedESModules.js
Tooru Fujisawa 47f69a4984 Bug 1768819 - Add Cu.{isJSModuleLoaded,isESModuleLoaded,loadedJSModules,loadedESModules}. r=kmag
Added 4 new functions, into Cu, for the following reasons:
  * Cu.isModuleLoaded and Cu.loadedModule is kept for backward compatibility
  * Cu.isModuleLoaded and Cu.loadedModule uses shim (bug 1769029 and
    bug 1768922), and loaded ESM (.sys.mjs) is visible as JSM (`.jsm`) there

Differential Revision: https://phabricator.services.mozilla.com/D146167
2022-06-17 04:59:14 +00:00

127 lines
4.8 KiB
JavaScript

add_task(function test_JSModule() {
const URL1 = "resource://test/jsm_loaded-1.jsm";
const URL2 = "resource://test/jsm_loaded-2.jsm";
const URL3 = "resource://test/jsm_loaded-3.jsm";
Assert.ok(!Cu.loadedJSModules.includes(URL1));
Assert.ok(!Cu.isJSModuleLoaded(URL1));
Assert.ok(!Cu.loadedJSModules.includes(URL2));
Assert.ok(!Cu.isJSModuleLoaded(URL2));
Assert.ok(!Cu.loadedJSModules.includes(URL3));
Assert.ok(!Cu.isJSModuleLoaded(URL3));
Assert.ok(!Cu.loadedESModules.includes(URL1));
Assert.ok(!Cu.isESModuleLoaded(URL1));
Assert.ok(!Cu.loadedESModules.includes(URL2));
Assert.ok(!Cu.isESModuleLoaded(URL2));
Assert.ok(!Cu.loadedESModules.includes(URL3));
Assert.ok(!Cu.isESModuleLoaded(URL3));
ChromeUtils.import(URL1);
Assert.ok(Cu.loadedJSModules.includes(URL1));
Assert.ok(Cu.isJSModuleLoaded(URL1));
Assert.ok(!Cu.loadedJSModules.includes(URL2));
Assert.ok(!Cu.isJSModuleLoaded(URL2));
Assert.ok(!Cu.loadedJSModules.includes(URL3));
Assert.ok(!Cu.isJSModuleLoaded(URL3));
Assert.ok(!Cu.loadedESModules.includes(URL1));
Assert.ok(!Cu.isESModuleLoaded(URL1));
Assert.ok(!Cu.loadedESModules.includes(URL2));
Assert.ok(!Cu.isESModuleLoaded(URL2));
Assert.ok(!Cu.loadedESModules.includes(URL3));
Assert.ok(!Cu.isESModuleLoaded(URL3));
ChromeUtils.import(URL2);
Assert.ok(Cu.loadedJSModules.includes(URL1));
Assert.ok(Cu.isJSModuleLoaded(URL1));
Assert.ok(Cu.loadedJSModules.includes(URL2));
Assert.ok(Cu.isJSModuleLoaded(URL2));
Assert.ok(!Cu.loadedJSModules.includes(URL3));
Assert.ok(!Cu.isJSModuleLoaded(URL3));
Assert.ok(!Cu.loadedESModules.includes(URL1));
Assert.ok(!Cu.isESModuleLoaded(URL1));
Assert.ok(!Cu.loadedESModules.includes(URL2));
Assert.ok(!Cu.isESModuleLoaded(URL2));
Assert.ok(!Cu.loadedESModules.includes(URL3));
Assert.ok(!Cu.isESModuleLoaded(URL3));
ChromeUtils.import(URL3);
Assert.ok(Cu.loadedJSModules.includes(URL1));
Assert.ok(Cu.isJSModuleLoaded(URL1));
Assert.ok(Cu.loadedJSModules.includes(URL2));
Assert.ok(Cu.isJSModuleLoaded(URL2));
Assert.ok(Cu.loadedJSModules.includes(URL3));
Assert.ok(Cu.isJSModuleLoaded(URL3));
Assert.ok(!Cu.loadedESModules.includes(URL1));
Assert.ok(!Cu.isESModuleLoaded(URL1));
Assert.ok(!Cu.loadedESModules.includes(URL2));
Assert.ok(!Cu.isESModuleLoaded(URL2));
Assert.ok(!Cu.loadedESModules.includes(URL3));
Assert.ok(!Cu.isESModuleLoaded(URL3));
});
add_task(function test_ESModule() {
const URL1 = "resource://test/es6module_loaded-1.sys.mjs";
const URL2 = "resource://test/es6module_loaded-2.sys.mjs";
const URL3 = "resource://test/es6module_loaded-3.sys.mjs";
Assert.ok(!Cu.loadedJSModules.includes(URL1));
Assert.ok(!Cu.isJSModuleLoaded(URL1));
Assert.ok(!Cu.loadedJSModules.includes(URL2));
Assert.ok(!Cu.isJSModuleLoaded(URL2));
Assert.ok(!Cu.loadedJSModules.includes(URL3));
Assert.ok(!Cu.isJSModuleLoaded(URL3));
Assert.ok(!Cu.loadedESModules.includes(URL1));
Assert.ok(!Cu.isESModuleLoaded(URL1));
Assert.ok(!Cu.loadedESModules.includes(URL2));
Assert.ok(!Cu.isESModuleLoaded(URL2));
Assert.ok(!Cu.loadedESModules.includes(URL3));
Assert.ok(!Cu.isESModuleLoaded(URL3));
ChromeUtils.importESModule(URL1);
Assert.ok(!Cu.loadedJSModules.includes(URL1));
Assert.ok(!Cu.isJSModuleLoaded(URL1));
Assert.ok(!Cu.loadedJSModules.includes(URL2));
Assert.ok(!Cu.isJSModuleLoaded(URL2));
Assert.ok(!Cu.loadedJSModules.includes(URL3));
Assert.ok(!Cu.isJSModuleLoaded(URL3));
Assert.ok(Cu.loadedESModules.includes(URL1));
Assert.ok(Cu.isESModuleLoaded(URL1));
Assert.ok(!Cu.loadedESModules.includes(URL2));
Assert.ok(!Cu.isESModuleLoaded(URL2));
Assert.ok(!Cu.loadedESModules.includes(URL3));
Assert.ok(!Cu.isESModuleLoaded(URL3));
ChromeUtils.importESModule(URL2);
Assert.ok(!Cu.loadedJSModules.includes(URL1));
Assert.ok(!Cu.isJSModuleLoaded(URL1));
Assert.ok(!Cu.loadedJSModules.includes(URL2));
Assert.ok(!Cu.isJSModuleLoaded(URL2));
Assert.ok(!Cu.loadedJSModules.includes(URL3));
Assert.ok(!Cu.isJSModuleLoaded(URL3));
Assert.ok(Cu.loadedESModules.includes(URL1));
Assert.ok(Cu.isESModuleLoaded(URL1));
Assert.ok(Cu.loadedESModules.includes(URL2));
Assert.ok(Cu.isESModuleLoaded(URL2));
Assert.ok(!Cu.loadedESModules.includes(URL3));
Assert.ok(!Cu.isESModuleLoaded(URL3));
ChromeUtils.importESModule(URL3);
Assert.ok(!Cu.loadedJSModules.includes(URL1));
Assert.ok(!Cu.isJSModuleLoaded(URL1));
Assert.ok(!Cu.loadedJSModules.includes(URL2));
Assert.ok(!Cu.isJSModuleLoaded(URL2));
Assert.ok(!Cu.loadedJSModules.includes(URL3));
Assert.ok(!Cu.isJSModuleLoaded(URL3));
Assert.ok(Cu.loadedESModules.includes(URL1));
Assert.ok(Cu.isESModuleLoaded(URL1));
Assert.ok(Cu.loadedESModules.includes(URL2));
Assert.ok(Cu.isESModuleLoaded(URL2));
Assert.ok(Cu.loadedESModules.includes(URL3));
Assert.ok(Cu.isESModuleLoaded(URL3));
});