| // META: global=window,worker | |
| // META: script=resources/decompression-input.js | |
| 'use strict'; | |
| const tests = compressedBytes.map( | |
| ([format, chunk]) => [format, new Uint8Array([...chunk, 0])] | |
| ); | |
| for (const [format, chunk] of tests) { | |
| promise_test(async t => { | |
| const ds = new DecompressionStream(format); | |
| const reader = ds.readable.getReader(); | |
| const writer = ds.writable.getWriter(); | |
| writer.write(chunk).catch(() => { }); | |
| const { done, value } = await reader.read(); | |
| assert_array_equals(Array.from(value), expectedChunkValue, "value should match"); | |
| await promise_rejects_js(t, TypeError, reader.read(), "Extra input should eventually throw"); | |
| }, `decompressing ${format} input with extra pad should still give the output`); | |
| } |