49 lines
1.9 KiB
HTML
49 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<title>
|
|
Request's destination must be "webbundle" with the script-based API
|
|
</title>
|
|
<link
|
|
rel="help"
|
|
href="https://github.com/WICG/webpackage/blob/main/explainers/subresource-loading.md"
|
|
/>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="../resources/test-helpers.js"></script>
|
|
<body>
|
|
<script>
|
|
setup(() => {
|
|
assert_true(HTMLScriptElement.supports("webbundle"));
|
|
});
|
|
|
|
// check-sec-fetch-dest-header-and-return-bundle.py returns a valid format
|
|
// bundle only if a 'Sec-Fetch-Dest: webbundle' header is present in a request.
|
|
// Otherwise, returns an empty body with 400 status code.
|
|
//
|
|
// In this wpt, we assume that a <script> element fires a load event correctly if
|
|
// a valid format webbundle is returned.
|
|
|
|
const same_origin_bundle =
|
|
"../resources/check-sec-fetch-dest-header-and-return-bundle.py";
|
|
const cross_origin_bundle =
|
|
"https://{{domains[www1]}}:{{ports[https][0]}}/web-bundle/resources/check-sec-fetch-dest-header-and-return-bundle.py";
|
|
|
|
promise_test(async () => {
|
|
for (const bundle of [same_origin_bundle, cross_origin_bundle]) {
|
|
const element = createWebBundleElement(bundle, /*resources=*/ []);
|
|
await addElementAndWaitForLoad(element);
|
|
element.remove();
|
|
}
|
|
}, '"Sec-Fetch-Dest: webbundle" header must be present in a request for a bundle'
|
|
+ " with <script type=webbundle>.");
|
|
|
|
promise_test(async () => {
|
|
const res = await fetch(same_origin_bundle);
|
|
assert_false(res.ok);
|
|
}, '"Sec-Fetch-Dest: webbundle" header must not be present in a fetch request' + " for a same-origin resource.");
|
|
|
|
promise_test(async () => {
|
|
const res = await fetch(cross_origin_bundle);
|
|
assert_false(res.ok);
|
|
}, '"Sec-Fetch-Dest: webbundle" header must not be present in a fetch request' + " for a cross-origin resource.");
|
|
</script>
|
|
</body>
|