diff options
Diffstat (limited to '')
-rw-r--r-- | dom/base/test/jsmodules/importmaps/test_inline_module_reject_importMap.html | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/dom/base/test/jsmodules/importmaps/test_inline_module_reject_importMap.html b/dom/base/test/jsmodules/importmaps/test_inline_module_reject_importMap.html new file mode 100644 index 0000000000..2001cbcfb9 --- /dev/null +++ b/dom/base/test/jsmodules/importmaps/test_inline_module_reject_importMap.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> +<head> + <meta charset=utf-8> + <title>Test import map should be rejected.</title> +</head> +<body onload='testLoaded()'> +<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + +<script> +let gotMsg = false; +let console = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService); +let listener = { + QueryInterface: ChromeUtils.generateQI(["nsIConsoleListener"]), + observe(msg) { + info("console message:" + msg); + ok(msg.logLevel == Ci.nsIConsoleMessage.warn, "log level should be 'warn'."); + console.unregisterListener(this); + gotMsg = true; + } +}; +console.registerListener(listener); +</script> + +<!--There is an inline module before the import map tag, so the import map--> +<!--cannot be accepted according to the spec.--> +<!--And because the import map is rejected, so the module specifier--> +<!--"./module_simpleExport.js" won't be remapped to--> +<!--"./scope1/module_simpleExport.js".--> + +<script type="module"> +</script> + +<script type="importmap" onerror='importMapError()'> +{ + "imports": { + "./module_simpleExport.js": "./scope1/module_simpleExport.js" + } +} +</script> + +<script> + SimpleTest.waitForExplicitFinish(); + + let hasError = false; + function importMapError() { + hasError = true; + } + + function testLoaded() { + import("./module_simpleExport.js").then((ns) => { + ok(ns.x == 42, 'Check simple imported value result: ' + ns.x); + ok(hasError, "onerror of the import map should be called."); + ok(gotMsg, "Should have got the console warning."); + }).catch((e) => { + ok(false, "throws " + e); + }).then(() => { + SimpleTest.finish(); + }); + } +</script> +</body> |