26 lines
912 B
JavaScript
26 lines
912 B
JavaScript
// 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");
|