| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../../../resources/js-test.js"></script> | 2 <title>Encoding API: Streaming decode</title> |
| 3 <script src="../../../resources/testharness.js"></script> |
| 4 <script src="../../../resources/testharnessreport.js"></script> |
| 3 <script src="resources/shared.js"></script> | 5 <script src="resources/shared.js"></script> |
| 4 <script> | 6 <script> |
| 5 | 7 |
| 6 description("Test streaming decoding using the Encoding API."); | 8 var string = '\\x00123ABCabc\\x80\\xFF\\u0100\\u1000\\uFFFD\\uD800\\uDC00\\uDBFF
\\uDFFF'; |
| 7 | |
| 8 evalAndLog("string = '\\x00123ABCabc\\x80\\xFF\\u0100\\u1000\\uFFFD\\uD800\\uDC0
0\\uDBFF\\uDFFF'"); | |
| 9 | 9 |
| 10 utf_encodings.forEach(function (encoding) { | 10 utf_encodings.forEach(function (encoding) { |
| 11 debug(""); | 11 for (var len = 1; len <= 5; ++len) { |
| 12 evalAndLog("encoded = new TextEncoder('" + encoding + "').encode(string)"); | 12 test(function() { |
| 13 var encoded = new TextEncoder(encoding).encode(string); |
| 13 | 14 |
| 14 for (var len = 1; len <= 5; ++len) { | 15 var out = ''; |
| 15 evalAndLog("out = ''"); | 16 var decoder = new TextDecoder(encoding); |
| 16 evalAndLog("decoder = new TextDecoder('" + encoding + "')"); | 17 for (var i = 0; i < encoded.length; i += len) { |
| 17 for (var i = 0; i < encoded.length; i += len) { | 18 var sub = []; |
| 18 var sub = []; | 19 for (var j = i; j < encoded.length && j < i + len; ++j) |
| 19 for (var j = i; j < encoded.length && j < i + len; ++j) { | 20 sub.push(encoded[j]); |
| 20 sub.push(encoded[j]); | 21 out += decoder.decode(new Uint8Array(sub), {stream: true}); |
| 21 } | 22 } |
| 22 evalAndLog("out += decoder.decode(new Uint8Array(" + JSON.stringify(
sub) + "), {stream: true})"); | 23 out += decoder.decode(); |
| 23 } | 24 assert_equals(out, string); |
| 24 evalAndLog("out += decoder.decode()"); | 25 }, 'Streaming decode: ' + encoding + ', ' + len + ' byte window'); |
| 25 shouldBeEqualToString("out", string); | |
| 26 } | 26 } |
| 27 }); | 27 }); |
| 28 | 28 |
| 29 </script> | 29 </script> |
| OLD | NEW |