blob: fe25dcaf439719c07ecc14bdb9734e723fa10fee [file] [log] [blame]
<p>Test that XMLHttpRequest doesn't return a wrong cached answer when there is a Vary header in response.</p>
<script src="/js-test-resources/js-test-pre.js"></script>
<script>
window.jsTestIsAsync = true;
if (location.protocol != "http:" || location.host != "127.0.0.1:8000")
debug("This test must be run from http://127.0.0.1:8000");
var testStep = 1;
function testCrossOrigin()
{
var req = new XMLHttpRequest;
req.open("get", "http://localhost:8000/cache/resources/xhr-vary-header-response.php");
req.onload=function() { receivedResponse(req.responseText) }
req.send();
}
function testSameOrigin()
{
frames[0].postMessage("", "http://localhost:8000");
}
function receivedResponse(text)
{
window.responseText = text;
switch (testStep) {
case 1:
shouldBe("responseText", "'Cross origin response'");
testStep++;
testSameOrigin();
break;
case 2:
shouldBe("responseText", "'Same origin response'");
testStep++;
testCrossOrigin();
break;
case 3:
shouldBe("responseText", "'Cross origin response'");
finishJSTest();
testStep++;
break;
default:
debug(responseText);
break;
}
delete window.responseText;
}
window.onmessage = function(msg) { receivedResponse(msg.data) }
window.onload = testCrossOrigin;
</script>
<button onclick="testCrossOrigin()">Make cross origin request</button>
<br>
<iframe src="http://localhost:8000/cache/resources/xhr-vary-header-subframe.html" frameborder=0 height=50></iframe>
<pre id=console></pre>
<script src="/js-test-resources/js-test-post.js"></script>