<!DOCTYPE html>
<meta charset="utf-8">
<title>respondWith with a response built from a ReadableStream</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<script>
'use strict';

const WORKER = 'resources/fetch-event-respond-with-readable-stream-chunk-worker.js';
const SCOPE = 'resources/fetch-event-respond-with-readable-stream-chunk-iframe.html';

promise_test(async t => {
    var reg = await service_worker_unregister_and_register(t, WORKER, SCOPE);
    add_completion_callback(() => reg.unregister());
    await wait_for_state(t, reg.installing, 'activated');
    let iframe = await with_iframe(SCOPE);
    t.add_cleanup(() => iframe.remove());

    let response = await iframe.contentWindow.fetch('body-stream');
    assert_equals(await response.text(), 'chunk #1 chunk #2 chunk #3 chunk #4');
}, 'Respond by chunks with a Response built from a ReadableStream');
</script>
