| <!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> |