| <html> | |
| <head> | |
| <meta http-equiv="content-type" content="text/html;charset=utf-8"> | |
| <body> | |
| <p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=34653">bug 34653</a>: | |
| XMLHttpRequest should force to send content-type as charset equals UTF-8.</p> | |
| <div id=result1>FAIL: script didn't run to completion.</div> | |
| <div id=result2>FAIL: script didn't run to completion.</div> | |
| <div id=result3>FAIL: script didn't run to completion.</div> | |
| <div id=result4>FAIL: script didn't run to completion.</div> | |
| <script> | |
| function test1() { | |
| // Test when content-type is not set. | |
| req = new XMLHttpRequest; | |
| req.open("POST", "print-content-type.cgi", false); | |
| req.send(""); | |
| document.getElementById("result1").firstChild.data = "Test1 (setRequestHeader was not called):"; | |
| if (req.responseText == "application/xml\n") | |
| document.getElementById("result1").firstChild.data += " SUCCESS"; | |
| else | |
| document.getElementById("result1").firstChild.data += " FAILURE: '" + req.responseText + "'"; | |
| } | |
| function test2() { | |
| // Test when content-type is set without charset. | |
| req = new XMLHttpRequest; | |
| req.open("POST", "print-content-type.cgi", false); | |
| req.setRequestHeader("Content-Type", "application/xml"); | |
| req.send(""); | |
| document.getElementById("result2").firstChild.data = "Test2 (setRequestHeader was called without a charset):"; | |
| if (req.responseText == "application/xml\n") | |
| document.getElementById("result2").firstChild.data += " SUCCESS"; | |
| else | |
| document.getElementById("result2").firstChild.data += " FAILURE: '" + req.responseText + "'"; | |
| } | |
| function test3() { | |
| // Test when content-type is set with non-UTF-8 charset. | |
| req = new XMLHttpRequest; | |
| req.open("POST", "print-content-type.cgi", false); | |
| req.setRequestHeader("Content-Type", "application/xml; charset=KOI8-R"); | |
| req.send(""); | |
| document.getElementById("result3").firstChild.data = "Test3 (setRequestHeader was called with a non-UTF8 charset):"; | |
| if (req.responseText == "application/xml; charset=UTF-8\n") | |
| document.getElementById("result3").firstChild.data += " SUCCESS"; | |
| else | |
| document.getElementById("result3").firstChild.data += " FAILURE: '" + req.responseText + "'"; | |
| } | |
| function test4() { | |
| // Test when content-type is set with multiple charsets and other attributes. | |
| req = new XMLHttpRequest; | |
| req.open("POST", "print-content-type.cgi", false); | |
| req.setRequestHeader("Content-Type", "application/xml; charset=KOI8-R; charset=UTF-8; charset=iso-8859-1; KOI8-R"); | |
| req.send(""); | |
| document.getElementById("result4").firstChild.data = "Test4 (setRequestHeader was called with multiple charsets and other attributes):"; | |
| if (req.responseText == "application/xml; charset=UTF-8; charset=UTF-8; charset=UTF-8; KOI8-R\n") | |
| document.getElementById("result4").firstChild.data += " SUCCESS"; | |
| else | |
| document.getElementById("result4").firstChild.data += " FAILURE: '" + req.responseText + "'"; | |
| } | |
| if (window.testRunner) | |
| testRunner.dumpAsText(); | |
| test1(); | |
| test2(); | |
| test3(); | |
| test4(); | |
| </script> | |
| </body> | |
| </html> |