Files
sousa-gecko/testing/web-platform/tests/webtransport/csp-fail.https.window.js
T
Sam Sneddon f7510528ae Bug 2024597 [wpt PR 58563] - webtransport-test-helpers.sub.js should consistently use substitution, a=testonly
Automatic update from web-platform-tests
[WebTransport] csp-pass shouldn't use otherwise unused constant

--
[WebTransport] webtransport-test-helpers.sub.js should consistently use substitution

--
[WebTransport] Remove unused get-host-info.sub.js script references

--

wpt-commits: c917f34063b6a250104c6b8c49c0bde54fbb8494, 6f69158edd3bde1921c6ef0bb4f12cca32da352a, 21e33728fdb8a8b53b085edb2777cf6e5716243d
wpt-pr: 58563
2026-03-30 08:05:19 +00:00

27 lines
1.1 KiB
JavaScript

// META: global=window,worker
// META: script=resources/webtransport-test-helpers.sub.js
function set_csp(destination) {
let meta = document.createElement('meta');
meta.httpEquiv = 'Content-Security-Policy';
meta.content = `connect-src ${destination}`;
return meta;
}
promise_test(async t => {
let meta = set_csp("'none'");
document.head.appendChild(meta);
let wt = new WebTransport(webtransport_url('custom-response.py?:status=200'));
// Sadly we cannot use promise_rejects_dom as the error constructor is
// WebTransportError rather than DOMException.
const e = await wt.ready.catch(e => e);
await promise_rejects_exactly(t, e, wt.ready, 'ready promise should be rejected');
await promise_rejects_exactly(t, e, wt.closed, 'closed promise should be rejected');
assert_equals(e.name, 'WebTransportError', 'WebTransportError');
assert_true(e instanceof WebTransportError);
assert_equals(e.source, 'session', 'source');
assert_equals(e.streamErrorCode, null, 'streamErrorCode');
}, 'WebTransport connection should fail when CSP connect-src is set to none and reject the promises');