gecko-dev/testing/web-platform/tests/encoding/textdecoder-streaming.any.js
Leo Balter 1f0cfc2bbe Bug 1475129 [wpt PR 11930] - Reformat Encoding tests, a=testonly
Automatic update from web-platform-testsMoving some encoding files from .html to .any.js

--
Generalized test

--
converted some encoding tests to use any.js

--

wpt-commits: e44b8b3dae4f0f0c874ef0b2a89290d0dd32dcdd, 12b30f56e3dddb896d343a6b6331cd25d3740e1d, dfa045c04225bbd6c1d7b6c1512f446948c12deb
wpt-pr: 11930
2018-07-24 21:46:21 +00:00

36 lines
1.6 KiB
JavaScript

// META: title=Encoding API: Streaming decode
// META: script=resources/encodings.js
var string = '\x00123ABCabc\x80\xFF\u0100\u1000\uFFFD\uD800\uDC00\uDBFF\uDFFF';
var octets = {
'utf-8': [0x00,0x31,0x32,0x33,0x41,0x42,0x43,0x61,0x62,0x63,0xc2,0x80,
0xc3,0xbf,0xc4,0x80,0xe1,0x80,0x80,0xef,0xbf,0xbd,0xf0,0x90,
0x80,0x80,0xf4,0x8f,0xbf,0xbf],
'utf-16le': [0x00,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x41,0x00,0x42,0x00,
0x43,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x80,0x00,0xFF,0x00,
0x00,0x01,0x00,0x10,0xFD,0xFF,0x00,0xD8,0x00,0xDC,0xFF,0xDB,
0xFF,0xDF],
'utf-16be': [0x00,0x00,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x41,0x00,0x42,
0x00,0x43,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x80,0x00,0xFF,
0x01,0x00,0x10,0x00,0xFF,0xFD,0xD8,0x00,0xDC,0x00,0xDB,0xFF,
0xDF,0xFF]
};
Object.keys(octets).forEach(function(encoding) {
for (var len = 1; len <= 5; ++len) {
test(function() {
var encoded = octets[encoding];
var out = '';
var decoder = new TextDecoder(encoding);
for (var i = 0; i < encoded.length; i += len) {
var sub = [];
for (var j = i; j < encoded.length && j < i + len; ++j)
sub.push(encoded[j]);
out += decoder.decode(new Uint8Array(sub), {stream: true});
}
out += decoder.decode();
assert_equals(out, string);
}, 'Streaming decode: ' + encoding + ', ' + len + ' byte window');
}
});