data-url-specifiers.sub.html (1600B)
1 <!DOCTYPE html> 2 <meta name="timeout" content="long"> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="resources/test-helper.js"></script> 6 7 <script> 8 // "bare/..." (i.e. without leading "./") are bare specifiers 9 // (not relative paths). 10 const importMap = ` 11 { 12 "imports": { 13 "bare": "./resources/log.js?pipe=sub&name=bare", 14 15 "data:text/javascript,log.push('data:foo')": "./resources/log.js?pipe=sub&name=foo", 16 "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", 17 "data:text/javascript,log.push('data:to-data')": "data:text/javascript,log.push('dataURL')", 18 19 "data:text/javascript,log.push('data:to-bare')": "bare" 20 } 21 } 22 `; 23 24 const tests = { 25 // Arrays of expected results for: 26 // - <script src type="module">, 27 // - <script src> (classic script), 28 // - static import, and 29 // - dynamic import. 30 31 // data: to HTTP(S). 32 "data:text/javascript,log.push('data:foo')": 33 [Result.URL, Result.URL, "log:foo", "log:foo"], 34 "data:text/javascript,log.push('data:cross-origin-foo')": 35 [Result.URL, Result.URL, "log:cross-origin-foo", "log:cross-origin-foo"], 36 37 // data: to data: 38 "data:text/javascript,log.push('data:to-data')": 39 [Result.URL, Result.URL, "dataURL", "dataURL"], 40 41 // data: to bare mapping is disabled. 42 "data:text/javascript,log.push('data:to-bare')": 43 [Result.URL, Result.URL, Result.PARSE_ERROR, Result.PARSE_ERROR], 44 }; 45 46 doTests(importMap, null, tests); 47 </script> 48 <body>