| <!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-worker.js'; |
| const SCOPE = |
| 'resources/blank.html'; |
| |
| // Register a service worker, then create an iframe at url. |
| function iframeTest(url, callback, name) { |
| return promise_test(async t => { |
| const reg = await service_worker_unregister_and_register(t, WORKER, SCOPE); |
| add_completion_callback(() => reg.unregister()); |
| await wait_for_state(t, reg.installing, 'activated'); |
| const iframe = await with_iframe(url); |
| const iwin = iframe.contentWindow; |
| t.add_cleanup(() => iframe.remove()); |
| await callback(t, iwin); |
| }, name); |
| } |
| |
| iframeTest(SCOPE, async (t, iwin) => { |
| const response = await iwin.fetch('?stream'); |
| assert_equals(await response.text(), 'PASS'); |
| }, 'Subresource built from a ReadableStream'); |
| |
| iframeTest(SCOPE + '?stream', (t, iwin) => { |
| assert_equals(iwin.document.body.textContent, 'PASS'); |
| }, 'Main resource built from a ReadableStream'); |
| |
| iframeTest(SCOPE, async (t, iwin) => { |
| const response = await iwin.fetch('?stream&delay'); |
| assert_equals(await response.text(), 'PASS'); |
| }, 'Subresource built from a ReadableStream - delayed'); |
| |
| iframeTest(SCOPE + '?stream&delay', (t, iwin) => { |
| assert_equals(iwin.document.body.textContent, 'PASS'); |
| }, 'Main resource built from a ReadableStream - delayed'); |
| |
| iframeTest(SCOPE, async (t, iwin) => { |
| const response = await iwin.fetch('?stream&use-fetch-stream'); |
| assert_equals(await response.text(), 'PASS\n'); |
| }, 'Subresource built from a ReadableStream - fetch stream'); |
| |
| iframeTest(SCOPE + '?stream&use-fetch-stream', (t, iwin) => { |
| assert_equals(iwin.document.body.textContent, 'PASS\n'); |
| }, 'Main resource built from a ReadableStream - fetch stream'); |
| </script> |