| <!DOCTYPE html> |
| <html lang="en-GB"> |
| <head> |
| <meta charset="utf-8"/> |
| <title>Big5 decoding errors</title> |
| <meta name="timeout" content="long"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"> |
| <link rel="help" href="https://encoding.spec.whatwg.org/#big5"> |
| <meta name="assert" content="The browser decodes characters that are not recognised from the big5 encoding as replacement characters."> |
| <style> |
| iframe { display:none } |
| </style> |
| </head> |
| |
| <body onload="showNodes();"> |
| |
| <iframe src="big5_errors.html" name="scriptWindow" id="scrwin"></iframe> |
| |
| <div id="log"></div> |
| |
| <script> |
| var tests = []; |
| |
| function iframeRef(frameRef) { |
| return frameRef.contentWindow |
| ? frameRef.contentWindow.document |
| : frameRef.contentDocument; |
| } |
| |
| function showNodes() { |
| var iframe = iframeRef(document.getElementById("scrwin")); |
| nodes = iframe.querySelectorAll("span"); |
| |
| t = -1; |
| t++; |
| tests[t] = async_test("lead not 0x00 and no more bytes: AB"); |
| t++; |
| tests[t] = async_test("lead not 0x00 and no more bytes: AB B5 AB"); |
| t++; |
| tests[t] = async_test("lead not 0x00 and no more bytes: AB AB AB"); |
| |
| t++; |
| tests[t] = async_test("lead byte outside 0x81-0xFE: FF"); |
| t++; |
| tests[t] = async_test("lead byte outside 0x81-0xFE: AB AB FF"); |
| |
| t++; |
| tests[t] = async_test("trail byte outside 0x41-0xFE: AB 31"); |
| t++; |
| tests[t] = async_test("trail byte outside 0x41-0xFE: AB FF"); |
| |
| t++; |
| tests[t] = async_test("pointer is null: C8 F2"); |
| |
| t = -1; |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "�"); |
| }); |
| tests[t].done(); |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "奏�"); |
| }); |
| tests[t].done(); |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "垂�"); |
| }); |
| tests[t].done(); |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "�"); |
| }); |
| tests[t].done(); |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "奏�"); |
| }); |
| tests[t].done(); |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "�1"); |
| }); |
| tests[t].done(); |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "�"); |
| }); |
| tests[t].done(); |
| t++; |
| tests[t].step(function() { |
| assert_equals(nodes[t].textContent, "�"); |
| }); |
| tests[t].done(); |
| } |
| </script> |
| |
| </body> |
| </html> |