script-module-import-static.sub.html (1596B)
1 <!DOCTYPE html> 2 <!-- 3 [%provenance%] 4 --> 5 <html lang="en"> 6 <meta charset="utf-8"> 7 <title>HTTP headers on request for static ECMAScript module import</title> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="/fetch/metadata/resources/helper.sub.js"></script> 11 <body> 12 <script> 13 'use strict'; 14 15 function induceRequest(url) { 16 const script = document.createElement('script'); 17 script.setAttribute('type', 'module'); 18 script.setAttribute( 19 'src', 20 '/fetch/metadata/resources/es-module.sub.js?moduleId=' + encodeURIComponent(url) 21 ); 22 23 return new Promise((resolve, reject) => { 24 script.onload = resolve; 25 script.onerror = () => reject('Failed to load script'); 26 document.body.appendChild(script); 27 }) 28 .then(() => script.remove()); 29 } 30 {%- for subtest in subtests %} 31 32 promise_test(() => { 33 const key = '{{uuid()}}'; 34 35 return induceRequest( 36 makeRequestURL( 37 key, [% subtest.origins %], { mime: 'application/javascript' } 38 ) 39 ) 40 .then(() => retrieve(key)) 41 .then((headers) => { 42 {%- if subtest.expected == none %} 43 assert_not_own_property(headers, '[%subtest.headerName%]'); 44 {%- else %} 45 assert_own_property(headers, '[%subtest.headerName%]'); 46 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 47 {%- endif %} 48 }); 49 }, '[%subtest.headerName%][%subtest.description | pad("start", " - ")%]'); 50 51 {%- endfor %} 52 </script> 53 </html>