OLD | NEW |
| (Empty) |
1 <!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 | |
8 var string = '\x00123ABCabc\x80\xFF\u0100\u1000\uFFFD\uD800\uDC00\uDBFF\uDFFF'; | |
9 var octets = { | |
10 'utf-16le': [0x00,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x41,0x00,0x42,0x00, | |
11 0x43,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x80,0x00,0xFF,0x00, | |
12 0x00,0x01,0x00,0x10,0xFD,0xFF,0x00,0xD8,0x00,0xDC,0xFF,0xDB, | |
13 0xFF,0xDF], | |
14 'utf-16be': [0x00,0x00,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x41,0x00,0x42, | |
15 0x00,0x43,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x80,0x00,0xFF, | |
16 0x01,0x00,0x10,0x00,0xFF,0xFD,0xD8,0x00,0xDC,0x00,0xDB,0xFF, | |
17 0xDF,0xFF] | |
18 }; | |
19 | |
20 utf_encodings.forEach(function (encoding) { | |
21 for (var len = 1; len <= 5; ++len) { | |
22 test(function() { | |
23 var encoded = octets[encoding] || | |
24 new TextEncoder(encoding).encode(string); | |
25 | |
26 var out = ''; | |
27 var decoder = new TextDecoder(encoding); | |
28 for (var i = 0; i < encoded.length; i += len) { | |
29 var sub = []; | |
30 for (var j = i; j < encoded.length && j < i + len; ++j) | |
31 sub.push(encoded[j]); | |
32 out += decoder.decode(new Uint8Array(sub), {stream: true}); | |
33 } | |
34 out += decoder.decode(); | |
35 assert_equals(out, string); | |
36 }, 'Streaming decode: ' + encoding + ', ' + len + ' byte window'); | |
37 } | |
38 }); | |
39 | |
40 </script> | |
OLD | NEW |