blob: f07cb5b7bbf86a9e060d201903445262444396bb [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>Testing XMLHttpRequest.getReponseHeader behavior</title>
<script src="/js-test-resources/js-test-pre.js"></script>
<script type="text/javascript">
description("Test the required behavior of XMLHttpRequest.getResponseHeader()");
window.jsTestIsAsync = true;
var savedHeader = null;
var headerName = "Content-Type";
var nullTests = [ "SeT-COoKie",
"sEt-coOkIE2",
"xxx-mytest-headerabc",
null,
"Content-Type:" ];
var xhr = new XMLHttpRequest();
var headerValue;
function testGetResponseHeader(xhr, headerName, expectNull) {
shouldNotThrow("{state: " + xhr.readyState + "}; headerValue = xhr.getResponseHeader('" + headerName + "');");
if (expectNull)
shouldBeNull("headerValue");
else
shouldBeNonNull("headerValue");
return headerValue;
}
var result;
xhr.onreadystatechange = function() {
var rState = this.readyState;
result = testGetResponseHeader(this, headerName, rState <= XMLHttpRequest.OPENED);
if (result) {
if (savedHeader)
shouldBe("result", "savedHeader");
savedHeader = result;
for (var i = 0; i < nullTests.length; ++i)
testGetResponseHeader(this, nullTests[i], true);
} else {
if (rState > XMLHttpRequest.OPENED)
testFailed("In ready state " + rState + ", unexpected null value for '" + headerName + "'.");
else if (result !== null)
testFailed("In ready state " + rState + ", expected null for '" + headerName + ", got: " + JSON.stringify(result) + ".");
else
testPassed("Header '" + headerName + "' is null in ready state " + rState + ".");
}
if (rState == XMLHttpRequest.DONE)
finishJSTest();
}
function runTest() {
// Test for readyState = 0
testGetResponseHeader(xhr, headerName, true);
shouldNotThrow('xhr.open("GET", "resources/1251.html", true);');
// Test for readyState = 1
testGetResponseHeader(xhr, headerName, true);
shouldNotThrow("xhr.send(null);");
}
runTest();
</script>
<script src="/js-test-resources/js-test-post.js"></script>
</head>
</html>