| <!DOCTYPE html> |
| <title>Encoding API: unsupported encodings</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="resources/decoding-helpers.js"></script> |
| <script> |
| |
| // Attempting to decode '<' as UTF-7 (+AD4) ends up as '+AD4'. |
| ['UTF-7', 'utf-7'].forEach(label => { |
| decode_test(label, '+AD4', 'U+002B/U+0041/U+0044/U+0034', |
| `${label} should not be supported`); |
| }); |
| |
| // UTF-32 will be detected as UTF-16LE if leading BOM, or windows-1252 otherwise. |
| ['UTF-32', 'utf-32', 'UTF-32LE', 'utf-32le'].forEach(label => { |
| decode_test(label, |
| '%FF%FE%00%00%41%00%00%00%42%00%00%00', |
| 'U+0000/U+0041/U+0000/U+0042/U+0000', |
| `${label} with BOM should decode as UTF-16LE`); |
| |
| decode_test(label, |
| '%41%00%00%00%42%00%00%00', |
| 'U+0041/U+0000/U+0000/U+0000/U+0042/U+0000/U+0000/U+0000', |
| `${label} with no BOM should decode as windows-1252`);; |
| }); |
| ['UTF-32be', 'utf-32be'].forEach(label => { |
| decode_test(label, |
| '%00%00%00%41%00%00%00%42', |
| 'U+0000/U+0000/U+0000/U+0041/U+0000/U+0000/U+0000/U+0042', |
| `${label} with no BOM should decode as windows-1252`); |
| |
| decode_test(label, |
| '%00%00%FE%FF%00%00%00%41%00%00%00%42', |
| 'U+0000/U+0000/U+00FE/U+00FF/U+0000/U+0000/U+0000/U+0041/U+0000/U+0000/U+0000/U+0042', |
| `${label} with BOM should decode as windows-1252`); |
| }); |
| </script> |