| <!DOCTYPE html> | |
| <meta name="timeout" content="long"> | |
| <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). | |
| const importMap = ` | |
| { | |
| "imports": { | |
| "bare": "./resources/log.js?pipe=sub&name=bare", | |
| "data:text/javascript,log.push('data:foo')": "./resources/log.js?pipe=sub&name=foo", | |
| "data:text/javascript,log.push('data:cross-origin-foo')": "https://{{domains[www1]}}:{{ports[https][0]}}/import-maps/resources/log.js?pipe=sub&name=cross-origin-foo", | |
| "data:text/javascript,log.push('data:to-data')": "data:text/javascript,log.push('dataURL')", | |
| "data:text/javascript,log.push('data:to-bare')": "bare" | |
| } | |
| } | |
| `; | |
| const tests = { | |
| // Arrays of expected results for: | |
| // - <script src type="module">, | |
| // - <script src> (classic script), | |
| // - static import, and | |
| // - dynamic import. | |
| // data: to HTTP(S). | |
| "data:text/javascript,log.push('data:foo')": | |
| [Result.URL, Result.URL, "log:foo", "log:foo"], | |
| "data:text/javascript,log.push('data:cross-origin-foo')": | |
| [Result.URL, Result.URL, "log:cross-origin-foo", "log:cross-origin-foo"], | |
| // data: to data: | |
| "data:text/javascript,log.push('data:to-data')": | |
| [Result.URL, Result.URL, "dataURL", "dataURL"], | |
| // data: to bare mapping is disabled. | |
| "data:text/javascript,log.push('data:to-bare')": | |
| [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR], | |
| }; | |
| doTests(importMap, null, tests); | |
| </script> | |
| <body> |