// META: script=/common/get-host-info.sub.js

async_test(t => {
  const script = document.createElement("script");
  t.add_cleanup(() => script.remove());
  script.src = "resources/script-with-0x00-in-header.py";
  script.onerror = t.step_func_done();
  script.onload = t.unreached_func();
  document.body.append(script);
}, "Expect network error for script with 0x00 in a header");

async_test(t => {
  const frame = document.createElement("iframe");
  t.add_cleanup(() => frame.remove());
  frame.src = "resources/document-with-0x00-in-header.py";
  // If network errors result in load events for frames per
  // https://github.com/whatwg/html/issues/125 and https://github.com/whatwg/html/issues/1230 this
  // should be changed to use the load event instead.
  t.step_timeout(() => {
    assert_equals(window.frameLoaded, undefined);
    t.done();
  }, 1000);
  document.body.append(frame);
}, "Expect network error for frame navigation to resource with 0x00 in a header");

async_test(t => {
  const img = document.createElement("img");
  t.add_cleanup(() => img.remove());
  img.src = "resources/blue-with-0x00-in-a-header.asis";
  img.onerror = t.step_func_done();
  img.onload = t.unreached_func();
  document.body.append(img);
}, "Expect network error for image with 0x00 in a header");

promise_test(async t => {
  return promise_rejects_js(t, TypeError, fetch(get_host_info().HTTP_REMOTE_ORIGIN + "/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis", {mode:"no-cors"}));
}, "Expect network error for fetch with 0x00 in a header");
