script-json-module-import-static.sub.html (1661B)
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-json-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, 38 [% subtest.origins %], 39 { 40 mime: 'application/json', 41 body: '{}' 42 } 43 ) 44 ) 45 .then(() => retrieve(key)) 46 .then((headers) => { 47 {%- if subtest.expected == none %} 48 assert_not_own_property(headers, '[%subtest.headerName%]'); 49 {%- else %} 50 assert_own_property(headers, '[%subtest.headerName%]'); 51 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 52 {%- endif %} 53 }); 54 }, '[%subtest.headerName%][%subtest.description | pad("start", " - ")%]'); 55 56 {%- endfor %} 57 </script> 58 </html>