<!doctype html>
<html>
  <head>
    <title>Fetch: network timeout after receiving the HTTP response headers</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="../resources/utils.js"></script>
  </head>
  <body>
    <div id="log"></div>
    <script>
function checkReader(test, reader, promiseToTest)
{
    return reader.read().then((value) => {
        validateBufferFromString(value.value, "TEST_CHUNK", "Should receive first chunk");
        return promise_rejects(test, new TypeError(), promiseToTest(reader));
    });
}

promise_test((test) => {
    return fetch("../resources/bad-chunk-encoding.py?count=1").then((response) => {
        return checkReader(test, response.body.getReader(), reader => reader.read());
    });
}, "Response reader read() promise should reject after a network error happening after resolving fetch promise");

promise_test((test) => {
    return fetch("../resources/bad-chunk-encoding.py?count=1").then((response) => {
        return checkReader(test, response.body.getReader(), reader => reader.closed);
    });
}, "Response reader closed promise should reject after a network error happening after resolving fetch promise");
    </script>
  </body>
</html>

