tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

element-script.sub.html (1690B)


      1 <!DOCTYPE html>
      2 <!--
      3 [%provenance%]
      4 -->
      5 <html lang="en">
      6  <meta charset="utf-8">
      7  <title>HTTP headers on request for HTML "script" element source</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, attributes) {
     16    const script = document.createElement('script');
     17    script.setAttribute('src', url);
     18 
     19    for (const [ name, value ] of Object.entries(attributes)) {
     20      script.setAttribute(name, value);
     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    const url = makeRequestURL(
     35      key, [% subtest.origins %], { mime: 'application/javascript' }
     36    );
     37 
     38    return induceRequest(url,
     39        [%subtest.elementAttrs | default({}) | tojson%]
     40      )
     41      .then(() => retrieve(key))
     42      .then((headers) => {
     43        {%- if subtest.expected == none %}
     44          assert_not_own_property(headers, '[%subtest.headerName%]');
     45        {%- else %}
     46          assert_own_property(headers, '[%subtest.headerName%]');
     47          assert_array_equals(headers['[%subtest.headerName%]'], ['[%subtest.expected%]']);
     48        {%- endif %}
     49        });
     50  }, '[%subtest.headerName%] - [%subtest.description | pad("end", ", ")%][%-subtest.elementAttrs | collection("attributes")%]');
     51 
     52  {%- endfor %}
     53  </script>
     54 </html>