| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="resources/test-helper.js"></script> |
| |
| <script> |
| // "bare/..." (i.e. without leading "./") are bare specifiers |
| // (not relative paths). |
| // |
| // Discussions about notations for builtin modules are ongoing, e.g. |
| // https://github.com/tc39/proposal-javascript-standard-library/issues/12 |
| // Currently the tests expects two notations are accepted. |
| // TODO: Once the discussions converge, update the tests. |
| const importMap = ` |
| { |
| "imports": { |
| "bare/bare": "./resources/log.js?pipe=sub&name=bare", |
| "bare/cross-origin-bare": "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-bare", |
| "bare/to-data": "data:text/javascript,log.push('dataURL')", |
| |
| "bare/std-blank": "std:blank", |
| "bare/blank": "@std/blank", |
| "bare/std-none": "std:none", |
| "bare/none": "@std/none", |
| |
| "bare/to-bare": "bare/bare" |
| } |
| } |
| `; |
| |
| const tests = { |
| // Arrays of expected results for: |
| // - <script src type="module">, |
| // - <script src> (classic script), |
| // - static import, and |
| // - dynamic import. |
| |
| // Currently, Chromium's implementation resolves import maps as a part of |
| // specifier resolution, and thus failure in import map resolution causes |
| // a parse error, not fetch error. Therefore, we use Result.PARSE_ERROR |
| // below. https://crbug.com/928435 |
| |
| // Bare to HTTP(S). |
| "bare/bare": |
| [Result.URL, Result.URL, "log:bare", "log:bare"], |
| "bare/cross-origin-bare": |
| [Result.URL, Result.URL, "log:cross-origin-bare", "log:cross-origin-bare"], |
| |
| // Bare to data: |
| "bare/to-data": |
| [Result.URL, Result.URL, "dataURL", "dataURL"], |
| |
| // Bare to built-in. |
| "bare/std-blank": |
| [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN], |
| "bare/blank": |
| [Result.URL, Result.URL, Result.BUILTIN, Result.BUILTIN], |
| "bare/std-none": |
| [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR], |
| "bare/none": |
| [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR], |
| |
| // Bare to bare mapping is disabled. |
| "bare/to-bare": |
| [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR], |
| }; |
| |
| doTests(importMap, null, tests); |
| </script> |
| <body> |