Automatic update from web-platform-tests [compression-dictionary] Add HTTP/2 tests for brotli/zstandard decompression This also tests when the compressed data is delivered in chunks. -- wpt-commits: 819ef2bce709606ce1900584e6f02e5909f3c179 wpt-pr: 61110
71 lines
3.1 KiB
HTML
71 lines
3.1 KiB
HTML
<!DOCTYPE html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="timeout" content="long"/>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/common/get-host-info.sub.js"></script>
|
|
<script src="./resources/compression-dictionary-util.sub.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
|
|
compression_dictionary_promise_test(async (t) => {
|
|
const dict = await (await fetch(kRegisterDictionaryHttp2Path)).text();
|
|
assert_equals(dict, kDefaultDictionaryContent);
|
|
// Wait until `available-dictionary` header is available.
|
|
assert_equals(
|
|
await waitUntilAvailableDictionaryHeader(t, {}),
|
|
kDefaultDictionaryHashBase64);
|
|
|
|
// Check if the data compressed using Brotli with the dictionary can be
|
|
// decompressed.
|
|
const data_url = `${kCompressedDataHttp2Path}?content_encoding=dcb`;
|
|
assert_equals(await (await fetch(data_url)).text(), kExpectedCompressedData);
|
|
}, 'Decompression using Brotli with the dictionary works as expected (HTTP/2)');
|
|
|
|
compression_dictionary_promise_test(async (t) => {
|
|
const dict = await (await fetch(kRegisterDictionaryHttp2Path)).text();
|
|
assert_equals(dict, kDefaultDictionaryContent);
|
|
// Wait until `available-dictionary` header is available.
|
|
assert_equals(
|
|
await waitUntilAvailableDictionaryHeader(t, {}),
|
|
kDefaultDictionaryHashBase64);
|
|
|
|
// Check if the data compressed using Zstandard with the dictionary can be
|
|
// decompressed.
|
|
const data_url = `${kCompressedDataHttp2Path}?content_encoding=dcz`;
|
|
assert_equals(await (await fetch(data_url)).text(), kExpectedCompressedData);
|
|
}, 'Decompression using Zstandard with the dictionary works as expected (HTTP/2)');
|
|
|
|
compression_dictionary_promise_test(async (t) => {
|
|
const dict = await (await fetch(kRegisterDictionaryHttp2Path)).text();
|
|
assert_equals(dict, kDefaultDictionaryContent);
|
|
// Wait until `available-dictionary` header is available.
|
|
assert_equals(
|
|
await waitUntilAvailableDictionaryHeader(t, {}),
|
|
kDefaultDictionaryHashBase64);
|
|
|
|
// Check if the data compressed using Brotli with the dictionary can be
|
|
// decompressed.
|
|
const data_url = `${kCompressedDataHttp2Path}?content_encoding=dcb&chunked_response`;
|
|
assert_equals(await (await fetch(data_url)).text(), kExpectedCompressedData);
|
|
}, 'Decompression using Brotli with the dictionary works as expected (HTTP/2, chunked compressed data)');
|
|
|
|
compression_dictionary_promise_test(async (t) => {
|
|
const dict = await (await fetch(kRegisterDictionaryHttp2Path)).text();
|
|
assert_equals(dict, kDefaultDictionaryContent);
|
|
// Wait until `available-dictionary` header is available.
|
|
assert_equals(
|
|
await waitUntilAvailableDictionaryHeader(t, {}),
|
|
kDefaultDictionaryHashBase64);
|
|
|
|
// Check if the data compressed using Zstandard with the dictionary can be
|
|
// decompressed.
|
|
const data_url = `${kCompressedDataHttp2Path}?content_encoding=dcz&chunked_response`;
|
|
assert_equals(await (await fetch(data_url)).text(), kExpectedCompressedData);
|
|
}, 'Decompression using Zstandard with the dictionary works as expected (HTTP/2, chunked compressed data)');
|
|
|
|
</script>
|
|
</body>
|