<!DOCTYPE html>
<!-- Test verifies that CORB won't block a polyglot script that is
     both a valid HTML document and also valid Javascript.
-->
<meta charset="utf-8">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
["html-js-polyglot.js", "html-js-polyglot2.js"].forEach(polyglot_name => {
  async_test(function(t) {
    window.polyglot = "not yet set by the script";
    var script = document.createElement("script");

    script.onload = t.step_func_done(function(){
      // Verify that the script response wasn't blocked - that script
      // should have set window.polyglot to |polyglot_name|.
      assert_equals(window.polyglot, polyglot_name);
    })
    addEventListener("error",function(e) {
      t.step(function() {
        assert_unreached("No errors are expected with or without CORB.");
        t.done();
      })
    });

    // www1 is cross-origin, so the HTTP response is CORB-eligible.
    script.src = "http://{{domains[www1]}}:{{ports[http][0]}}/fetch/corb/resources/" + polyglot_name;
    document.body.appendChild(script);
  }, "CORB cannot block polyglot HTML/JS: " + polyglot_name);
});
</script>
