element-input-image.sub.html (1455B)
1 <!DOCTYPE html> 2 <!-- 3 [%provenance%] 4 --> 5 <html lang="en"> 6 <meta charset="utf-8"> 7 <title>HTTP headers on request for HTML "input" element with type="button"</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, test) { 16 const input = document.createElement('input'); 17 input.setAttribute('type', 'image'); 18 19 document.body.appendChild(input); 20 test.add_cleanup(() => input.remove()); 21 22 return new Promise((resolve) => { 23 input.onload = input.onerror = resolve; 24 input.setAttribute('src', url); 25 }); 26 } 27 28 {%- for subtest in subtests %} 29 30 promise_test((t) => { 31 const key = '{{uuid()}}'; 32 33 return induceRequest(makeRequestURL(key, [% subtest.origins %]), t) 34 .then(() => retrieve(key)) 35 .then((headers) => { 36 {%- if subtest.expected == none %} 37 assert_not_own_property(headers, '[%subtest.headerName%]'); 38 {%- else %} 39 assert_own_property(headers, '[%subtest.headerName%]'); 40 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 41 {%- endif %} 42 }); 43 }, '[%subtest.headerName%] - [%subtest.description | pad("end", ", ")%][%subtest.elementAttrs | collection("attributes")%]'); 44 45 {%- endfor %} 46 </script> 47 </body> 48 </html>