summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/encoding/streams/decode-incomplete-input.any.js
blob: 3add74336df33008685d4eabe32f965db3b722d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// META: global=window,worker
// META: script=resources/readable-stream-from-array.js
// META: script=resources/readable-stream-to-array.js

'use strict';

const inputBytes = [229];

promise_test(async () => {
  const input = readableStreamFromArray([new Uint8Array(inputBytes)]);
  const output = input.pipeThrough(new TextDecoderStream());
  const array = await readableStreamToArray(output);
  assert_array_equals(array, ['\uFFFD'], 'array should have one element');
}, 'incomplete input with error mode "replacement" should end with a ' +
   'replacement character');

promise_test(async t => {
  const input = readableStreamFromArray([new Uint8Array(inputBytes)]);
  const output = input.pipeThrough(new TextDecoderStream(
      'utf-8', {fatal: true}));
  const reader = output.getReader();
  await promise_rejects_js(t, TypeError, reader.read(),
                        'read should reject');
}, 'incomplete input with error mode "fatal" should error the stream');