blob: d514a1806482ad5c024f26f6399b8a811b8ebea9 [file] [log] [blame]
Andrew Top61a84952019-04-30 15:07:33 -07001<!DOCTYPE html>
2<title>Encoding API: Streaming decode</title>
3<script src="/resources/testharness.js"></script>
4<script src="/resources/testharnessreport.js"></script>
5<script src="resources/encodings.js"></script>
6<script>
7
8var string = '\\x00123ABCabc\\x80\\xFF\\u0100\\u1000\\uFFFD\\uD800\\uDC00\\uDBFF\\uDFFF';
9
10utf_encodings.forEach(function (encoding) {
11 for (var len = 1; len <= 5; ++len) {
12 test(function() {
13 var encoded = new TextEncoder(encoding).encode(string);
14
15 var out = '';
16 var decoder = new TextDecoder(encoding);
17 for (var i = 0; i < encoded.length; i += len) {
18 var sub = [];
19 for (var j = i; j < encoded.length && j < i + len; ++j)
20 sub.push(encoded[j]);
21 out += decoder.decode(new Uint8Array(sub), {stream: true});
22 }
23 out += decoder.decode();
24 assert_equals(out, string);
25 }, 'Streaming decode: ' + encoding + ', ' + len + ' byte window');
26 }
27});
28
29</script>