<!doctype html>
<title>XMLHttpRequest: getAllResponseHeaders()</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id="log"></div>
<script>
async_test((t) => {
  const client = new XMLHttpRequest()
  client.onload = t.step_func_done(() => {
    assert_equals(client.getAllResponseHeaders(), "also-here: Mr. PB\r\newok: lego\r\nfoo-test: 1, 2\r\n")
  })
  client.onerror = t.unreached_func("unexpected error")
  client.open("GET", "resources/headers.asis")
  client.send(null)
});

[
  ["content-length", "0", "header-content-length"],
  ["content-length", "0, 0", "header-content-length-twice"],
  ["double-trouble", ", ", "headers-double-empty"],
  ["foo-test", "1, 2, 3", "headers-basic"],
  ["heya", ", \u000B\u000C, 1, , , 2", "headers-some-are-empty"],
  ["www-authenticate", "1, 2, 3, 4", "headers-www-authenticate"],
].forEach(testValues => {
  async_test(t => {
    const client = new XMLHttpRequest();
    client.onload = t.step_func_done(() => {
      assert_equals(client.getAllResponseHeaders(), testValues[0] + ": " + testValues[1] + "\r\n");
    });
    client.onerror = t.unreached_func("unexpected error");
    client.open("GET", "resources/" + testValues[2] + ".asis");
    client.send();
  });
});
</script>
