XMLHttpRequest has the wrong fallback encoding
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / encoding / unsupported-encodings.any.js
1 // META: title=Encoding API: unsupported encodings
2 // META: script=resources/decoding-helpers.js
3
4 // Attempting to decode '<' as UTF-7 (+AD4) ends up as '+AD4'.
5 ['UTF-7', 'utf-7'].forEach(label => {
6   decode_test(label, '+AD4', 'U+002B/U+0041/U+0044/U+0034',
7               `${label} should not be supported`);
8 });
9
10 // UTF-32 will be detected as UTF-16LE if leading BOM, or UTF-8 otherwise (due to XMLHttpRequest).
11 ['UTF-32', 'utf-32', 'UTF-32LE', 'utf-32le'].forEach(label => {
12   decode_test(label,
13               '%FF%FE%00%00%41%00%00%00%42%00%00%00',
14               'U+0000/U+0041/U+0000/U+0042/U+0000',
15               `${label} with BOM should decode as UTF-16LE`);
16
17   decode_test(label,
18               '%41%00%00%00%42%00%00%C2%80',
19               'U+0041/U+0000/U+0000/U+0000/U+0042/U+0000/U+0000/U+0080',
20               `${label} with no BOM should decode as UTF-8`);;
21 });
22 ['UTF-32be', 'utf-32be'].forEach(label => {
23   decode_test(label,
24             '%00%00%00%41%00%00%00%42%C2%80',
25             'U+0000/U+0000/U+0000/U+0041/U+0000/U+0000/U+0000/U+0042/U+0080',
26             `${label} with no BOM should decode as UTF-8`);
27
28   decode_test(label,
29               '%00%00%FE%FF%00%00%00%41%00%C2%80%42',
30               'U+0000/U+0000/U+FFFD/U+FFFD/U+0000/U+0000/U+0000/U+0041/U+0000/U+0080/U+0042',
31               `${label} with BOM should decode as UTF-8`);
32 });