Andrew Top | 61a8495 | 2019-04-30 15:07:33 -0700 | [diff] [blame^] | 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 | |
| 10 | utf_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> |