| <!doctype html> |
| <script src="/js-test-resources/js-test.js"></script> |
| <script> |
| window.jsTestIsAsync = true; |
| description('BOM can override the encoding when decoding the response in ' + |
| 'responseText.'); |
| |
| xhr = new XMLHttpRequest; |
| xhr.open('GET', 'resources/bom-utf-8.php'); |
| xhr.onreadystatechange = function() { |
| if (xhr.readyState != xhr.DONE) { return; } |
| // A string with utf-8 BOM is decoded as utf-8. |
| shouldBeEqualToString('xhr.responseText', |
| '\u4e09\u6751\u304b\u306a\u5b50'); |
| xhr2 = new XMLHttpRequest; |
| xhr2.open('GET', 'resources/bom-utf-16be.php'); |
| xhr2.onreadystatechange = function() { |
| if (xhr2.readyState != xhr2.DONE) { return; } |
| // A string with utf-16be BOM is decoded as utf-16be. |
| shouldBeEqualToString('xhr2.responseText', |
| '\u4e09\u6751\u304b\u306a\u5b50'); |
| xhr3 = new XMLHttpRequest; |
| xhr3.open('GET', 'resources/bom-utf-16le.php'); |
| xhr3.onreadystatechange = function() { |
| if (xhr3.readyState != xhr3.DONE) { return; } |
| // A string with utf-16le BOM is decoded as utf-16le. |
| shouldBeEqualToString('xhr3.responseText', |
| '\u4e09\u6751\u304b\u306a\u5b50'); |
| finishJSTest(); |
| }; |
| xhr3.send(); |
| }; |
| xhr2.send(); |
| }; |
| xhr.send(); |
| </script> |