| // META: global=window,worker |
| // META: script=/common/get-host-info.sub.js |
| |
| const HOST = get_host_info().ORIGINAL_HOST; |
| const PORT = '{{ports[webtransport-h3][0]}}'; |
| const BASE = `https://${HOST}:${PORT}`; |
| |
| promise_test(async t => { |
| const wt = new WebTransport(`${BASE}/webtransport/handlers/echo.py`); |
| // When a connection fails `closed` attribute will be rejected. |
| wt.closed.catch((error) => { |
| t.unreached_func(`The 'closed' attribute should not be rejected: ${error}`); |
| }); |
| await wt.ready; |
| |
| const stream = await wt.createBidirectionalStream(); |
| |
| const writer = stream.writable.getWriter(); |
| await writer.write(new Uint8Array([42])); |
| writer.releaseLock(); |
| |
| const reader = stream.readable.getReader(); |
| const { value } = await reader.read(); |
| |
| assert_equals(value[0], 42); |
| }, "WebTransport server should be running and should handle a bidirectional stream"); |