mirror of
https://github.com/servo/servo.git
synced 2025-07-12 18:03:49 +01:00
79 lines
2.8 KiB
HTML
79 lines
2.8 KiB
HTML
<!DOCTYPE html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="resources/test-helper.js"></script>
|
|
|
|
<script>
|
|
// Fallbacks from external URLs (such as HTTPS URLs) are
|
|
// blocked by ongoing spec discussions, for example
|
|
// https://github.com/WICG/import-maps/issues/76.
|
|
// https://crbug.com/928435
|
|
//
|
|
// This test, as well as Chromium's implementation, rejects broader range of
|
|
// fallbacks (not only those from HTTPS), to avoid potential spec and
|
|
// interoperability issues.
|
|
// The only allowed fallback pattern is fallbacks from bare specifiers with
|
|
// two elements, which are listed in fallback.sub.tentative.html.
|
|
const importMap = `
|
|
{
|
|
"imports": {
|
|
"bare": "./resources/log.js?pipe=sub&name=bare",
|
|
|
|
"./resources/log.js?pipe=sub&name=http-to-builtin": [
|
|
"./resources/log.js?pipe=sub&name=http-to-builtin",
|
|
"@std/blank"
|
|
],
|
|
|
|
"./resources/log.js?pipe=sub&name=fallback-to-different-url-1": [
|
|
"@std/blank",
|
|
"./resources/log.js?pipe=sub&name=something-different"
|
|
],
|
|
"./resources/log.js?pipe=sub&name=fallback-to-different-url-2": [
|
|
"@std/none",
|
|
"./resources/log.js?pipe=sub&name=something-different2"
|
|
],
|
|
"./resources/log.js?pipe=sub&name=fallback-to-different-origin-1": [
|
|
"@std/blank",
|
|
"https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=fallback-to-different-origin-1"
|
|
],
|
|
"./resources/log.js?pipe=sub&name=fallback-to-different-origin-2": [
|
|
"@std/none",
|
|
"https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=fallback-to-different-origin-2"
|
|
],
|
|
|
|
"./resources/log.js?pipe=sub&name=more-than-two-values-1": [
|
|
"@std/none",
|
|
"@std/blank",
|
|
"./resources/log.js?pipe=sub&name=more-than-two-values-1"
|
|
],
|
|
"./resources/log.js?pipe=sub&name=more-than-two-values-2": [
|
|
"@std/none",
|
|
"./resources/log.js?pipe=sub&name=more-than-two-values-2",
|
|
"@std/blank"
|
|
],
|
|
"./resources/log.js?pipe=sub&name=fallback-from-http": [
|
|
"./resources/log.js?pipe=sub&name=non-built-in",
|
|
"./resources/log.js?pipe=sub&name=fallback-from-http"
|
|
],
|
|
"./resources/log.js?pipe=sub&name=fallback-from-data-1": [
|
|
"data:text/plain,",
|
|
"./resources/log.js?pipe=sub&name=fallback-from-http"
|
|
],
|
|
"./resources/log.js?pipe=sub&name=fallback-from-data-2": [
|
|
"data:text/javascript,log.push('dataURL')",
|
|
"./resources/log.js?pipe=sub&name=fallback-from-http"
|
|
]
|
|
}
|
|
}
|
|
`;
|
|
const tests = {};
|
|
for (const key in JSON.parse(importMap).imports) {
|
|
if (key === "bare") {
|
|
continue;
|
|
}
|
|
tests[key] =
|
|
[Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR];
|
|
}
|
|
doTests(importMap, null, tests);
|
|
</script>
|
|
<body>
|