blob: 7b2af3929b7f34bbda4e6f2ff42e9669ccd29728 [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>Testing XMLHttpRequest.getReponseHeader behavior</title>
<script src="/js-test-resources/js-test.js"></script>
<script type="text/javascript">
description("Test the required behavior of XMLHttpRequest.getAllResponseHeaders()");
window.jsTestIsAsync = true;
var xhr = new XMLHttpRequest();
var savedHeaders = null;
var headerValues;
function testGetAllResponseHeaders(xhr, expectEmpty) {
shouldNotThrow("{state: " + xhr.readyState + "}; headerValues = xhr.getAllResponseHeaders();");
if (expectEmpty && headerValues !== "")
testFailed("Expected the empty string, got: '" + headerValues + "'");
else
testPassed("headerValues is " + (!expectEmpty ? "not " : "") + "the empty string");
return headerValues;
}
var responseHeaders;
xhr.onreadystatechange = function() {
var rState = this.readyState;
responseHeaders = testGetAllResponseHeaders(this, rState <= XMLHttpRequest.OPENED);
if (responseHeaders) {
if (savedHeaders) {
shouldBe("responseHeaders", "savedHeaders");
} else {
if (/^Set-Cookie:|^Set-Cookie2:/im.test(responseHeaders)) {
testFailed("Did not expect to find a Set-Cookie{2} header, got: '" + responseHeaders + "'");
} else {
// Do not print list for automated tests to avoid false failures.
if (self.testRunner)
testPassed("Header values appears to be conforming.");
else
testPassed("Header values appears ok: " + JSON.stringify(headerValues));
}
}
savedHeaders = responseHeaders;
} else {
if (rState > XMLHttpRequest.OPENED)
testFailed("In ready state " + rState + ", unexpected empty value.");
else if (responseHeaders !== "")
testFailed("In ready state " + rState + ", expected the empty string, got: " + JSON.stringify(responseHeaders) + ".");
else
testPassed("getAllResponseHeaders() result is empty in ready state " + rState + ".");
}
if (rState == XMLHttpRequest.DONE)
finishJSTest();
}
function runTest() {
// Test for readyState = 0
testGetAllResponseHeaders(xhr, true);
shouldNotThrow('xhr.open("GET", "resources/1251.html", true);');
// Test for readyState = 1
testGetAllResponseHeaders(xhr, true);
shouldNotThrow("xhr.send(null);");
}
runTest();
</script>
</head>
</html>