<html>
<head>
<script src="../../resources/js-test.js"></script>
<style type="text/css">
.box {
display: box;
border: 1px solid black;
margin-bottom: 0.5em;
}
.boxheader {
font-weight: bold;
color: maroon;
}
pre {
margin-left: 2em;
}
</style>
</head>
<body>
<div id="description"></div>
<div class="box"><span class="boxheader">responseText</span>
<pre id="id1">@@No result@@</pre>
</div>
<br>
<div id="console"></div>
<script>
description("Tests XMLHttpRequest 'text' loading with the .responseType and .response attributes.");
var xhr = 0;
function load() {
testPassed('DONE LOADING');
testPassed('received response object of type : ' + typeof xhr.response + ".");
// Make sure exception is thrown if responseType is set too late in the loading process.
// .responseType was previously set to "text". Let's try setting it to "arraybuffer".
try {
xhr.responseType = "arraybuffer";
} catch(e) {
testPassed("exception correctly thrown when xhr.responseType is set to valid value too late in the loading process : " + e + ".");
}
// Get .responseText
document.getElementById("id1").firstChild.nodeValue = xhr.responseText;
// .response is really just an alias to .responseText when .responseType is set to "text".
// Make sure they're the same.
if (xhr.response == xhr.responseText)
testPassed("xhr.response == xhr.responseText.");
else
testFailed("xhr.response == xhr.responseText.");
xhr = null;
finishJSTest();
}
function runTest() {
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
xhr = new XMLHttpRequest();
xhr.onload = load;
xhr.open("GET", "resources/xmlhttprequest-get-data.xml", true);
try {
if ("responseType" in xhr)
testPassed("responseType property exists.");
else
testFailed("responseType property does not exist.");
if ("response" in xhr)
testPassed("response property exists.");
else
testFailed("response property does not exist.");
// Make sure we can set responseType to "text" before send() is called.
try {
xhr.responseType = "text";
if (xhr.responseType == "text")
testPassed("xhr.responseType has been correctly set to 'text'.");
} catch(e) {
testFailed("unable to set xhr.responseType to 'text' " + e + ".");
}
} catch(e) {
testFailed("Caught exception " + e + ".");
}
xhr.send(null);
window.jsTestIsAsync = true;
}
runTest();
</script>
</body>
</html>