header-link.sub.html (1560B)
1 <!DOCTYPE html> 2 <!-- 3 [%provenance%] 4 --> 5 <html lang="en"> 6 <meta charset="utf-8"> 7 <title>HTTP headers on request for HTTP "Link" header</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, rel, test) { 16 const iframe = document.createElement('iframe'); 17 18 iframe.setAttribute( 19 'src', 20 '/fetch/metadata/resources/header-link.py' + 21 `?location=${encodeURIComponent(url)}&rel=${rel}` 22 ); 23 24 document.body.appendChild(iframe); 25 test.add_cleanup(() => iframe.remove()); 26 27 return new Promise((resolve) => { 28 iframe.onload = iframe.onerror = resolve; 29 }); 30 } 31 32 {%- for subtest in subtests %} 33 34 promise_test((t) => { 35 const key = '{{uuid()}}'; 36 37 return induceRequest( 38 makeRequestURL(key, [% subtest.origins %], {mime: 'text/html'}), 39 '[%subtest.rel%]', 40 t 41 ) 42 .then(() => retrieve(key)) 43 .then((headers) => { 44 {%- if subtest.expected == none %} 45 assert_not_own_property(headers, '[%subtest.headerName%]'); 46 {%- else %} 47 assert_own_property(headers, '[%subtest.headerName%]'); 48 assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']); 49 {%- endif %} 50 }); 51 }, '[%subtest.headerName%] rel=[%subtest.rel%][%subtest.description | pad("start", " - ")%]'); 52 53 {%- endfor %} 54 </script> 55 </body> 56 </html>