| <!DOCTYPE html> | |
| <title>Character Decoding: UTF-32 (not supported)</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <body> | |
| <script> | |
| // Since UTF-32 is not supported, such content will be interpreted | |
| // as the default HTML encoding (windows-1252) unless it has a | |
| // leading little endian BOM (FF FE 00 00), in which case it will | |
| // be interpreted as UTF-16LE. | |
| const samples = [ | |
| {file: 'resources/utf-32-big-endian-bom.html', expected: 'windows-1252'}, | |
| {file: 'resources/utf-32-big-endian-bom.xml', expected: 'windows-1252'}, | |
| {file: 'resources/utf-32-big-endian-nobom.html', expected: 'windows-1252'}, | |
| {file: 'resources/utf-32-big-endian-nobom.xml', expected: 'windows-1252'}, | |
| {file: 'resources/utf-32-little-endian-bom.html', expected: 'UTF-16LE'}, | |
| {file: 'resources/utf-32-little-endian-bom.xml', expected: 'UTF-16LE'}, | |
| {file: 'resources/utf-32-little-endian-nobom.html', expected: 'windows-1252'}, | |
| {file: 'resources/utf-32-little-endian-nobom.xml', expected: 'windows-1252'} | |
| ]; | |
| samples.forEach(sample => async_test(t => { | |
| const iframe = document.createElement('iframe'); | |
| iframe.src = sample.file; | |
| iframe.onload = t.step_func(() => { | |
| assert_equals(iframe.contentDocument.characterSet, sample.expected); | |
| t.done(); | |
| }); | |
| document.body.appendChild(iframe); | |
| t.add_cleanup(() => iframe.remove()); | |
| }, `Expect ${sample.file} to parse as ${sample.expected}`)); | |
| </script> | |
| </body> |