104 lines
2.7 KiB
HTML
104 lines
2.7 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.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 id="console"></div>
|
|
|
|
<script>
|
|
description("Tests XMLHttpRequest 'document' 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 "document". 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 + ".");
|
|
}
|
|
|
|
// Check that .response is a Document
|
|
if (xhr.response.documentElement.tagName == 'doc')
|
|
testPassed("xhr.response is a Document.");
|
|
else
|
|
testFailed("xhr.response should be a Document.");
|
|
|
|
// .response is really just an alias to .responseXML when .responseType is set to "document".
|
|
// Make sure they're the same.
|
|
if (xhr.response == xhr.responseXML)
|
|
testPassed("xhr.response == xhr.responseXML.");
|
|
else
|
|
testFailed("xhr.response == xhr.responseXML.");
|
|
|
|
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 "document" before send() is called.
|
|
try {
|
|
xhr.responseType = "document";
|
|
if (xhr.responseType == "document")
|
|
testPassed("xhr.responseType has been correctly set to 'document'.");
|
|
} catch(e) {
|
|
testFailed("unable to set xhr.responseType to 'document' " + e + ".");
|
|
}
|
|
} catch(e) {
|
|
testFailed("Caught exception " + e + ".");
|
|
}
|
|
|
|
xhr.send(null);
|
|
window.jsTestIsAsync = true;
|
|
}
|
|
|
|
runTest();
|
|
|
|
</script>
|
|
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
|
|
</body>
|
|
</html>
|