Bug 1770047 [wpt PR 34117] - [Clipboard API] Clipboard Web Custom Formats implementat...
[gecko.git] / testing / web-platform / tests / encoding / textdecoder-eof.any.js
blobe41e326aace2440f9f46969bbce6d82c1e582507
1 test(() => {
2   // Truncated sequences
3   assert_equals(new TextDecoder().decode(new Uint8Array([0xF0])), "\uFFFD");
4   assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x9F])), "\uFFFD");
5   assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x9F, 0x92])), "\uFFFD");
7   // Errors near end-of-queue
8   assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x9F, 0x41])), "\uFFFDA");
9   assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x41, 0x42])), "\uFFFDAB");
10   assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x41, 0xF0])), "\uFFFDA\uFFFD");
11   assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x8F, 0x92])), "\uFFFD\uFFFD\uFFFD");
12 }, "TextDecoder end-of-queue handling");
14 test(() => {
15   const decoder = new TextDecoder();
16   decoder.decode(new Uint8Array([0xF0]), { stream: true });
17   assert_equals(decoder.decode(), "\uFFFD");
19   decoder.decode(new Uint8Array([0xF0]), { stream: true });
20   decoder.decode(new Uint8Array([0x9F]), { stream: true });
21   assert_equals(decoder.decode(), "\uFFFD");
23   decoder.decode(new Uint8Array([0xF0, 0x9F]), { stream: true });
24   assert_equals(decoder.decode(new Uint8Array([0x92])), "\uFFFD");
26   assert_equals(decoder.decode(new Uint8Array([0xF0, 0x9F]), { stream: true }), "");
27   assert_equals(decoder.decode(new Uint8Array([0x41]), { stream: true }), "\uFFFDA");
28   assert_equals(decoder.decode(), "");
30   assert_equals(decoder.decode(new Uint8Array([0xF0, 0x41, 0x42]), { stream: true }), "\uFFFDAB");
31   assert_equals(decoder.decode(), "");
33   assert_equals(decoder.decode(new Uint8Array([0xF0, 0x41, 0xF0]), { stream: true }), "\uFFFDA");
34   assert_equals(decoder.decode(), "\uFFFD");
36   assert_equals(decoder.decode(new Uint8Array([0xF0]), { stream: true }), "");
37   assert_equals(decoder.decode(new Uint8Array([0x8F]), { stream: true }), "\uFFFD\uFFFD");
38   assert_equals(decoder.decode(new Uint8Array([0x92]), { stream: true }), "\uFFFD");
39   assert_equals(decoder.decode(), "");
40 }, "TextDecoder end-of-queue handling using stream: true");