blob: e0452b800a3c58c6a4e161750864bbb5b3b2edc8 [file] [log] [blame]
<html>
<head>
<script>
// Helpers.
function log(message) {
document.getElementById("console").innerHTML += message + "<br>";
}
// Start and end.
function startTest() {
if (window.testRunner) {
testRunner.clearAllApplicationCaches();
testRunner.dumpApplicationCacheDelegateCallbacks();
testRunner.disallowIncreaseForApplicationCacheQuota();
if (window.internals)
internals.setApplicationCacheOriginQuota(20*1024);
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
addFirstIFrame();
}
function finishTest() {
if (window.testRunner)
testRunner.notifyDone();
}
// Stages.
function addIFrameWithContinuation(src, continuation) {
window.onmessage = continuation;
var iframe = document.createElement("iframe");
iframe.src = src;
document.body.appendChild(iframe);
}
function addFirstIFrame() {
// Expected to succeed.
addIFrameWithContinuation("resources/quota-origin-iframe-1.html", function(event) {
log(event.data);
addSecondIFrame();
});
}
function addSecondIFrame() {
// Expected to fail, then increase the quota.
addIFrameWithContinuation("resources/quota-origin-iframe-2.html", function(event) {
log(event.data);
if (window.internals)
internals.setApplicationCacheOriginQuota(100*1024);
addThirdIFrame();
});
}
function addThirdIFrame() {
// Expected to succeed.
addIFrameWithContinuation("resources/quota-origin-iframe-3.html", function(event) {
log(event.data);
finishTest();
});
}
</script>
</head>
<body onload="startTest()">
<p>This test checks that per-origin application cache quotas are enforced.</p>
<p>
This test sets the quota for the origin to 20kb, and attempts to fill
it up with 2 iframes that are 13kb each. The application cache download
process should fail on the 2nd iframe and the UI Delegate should be
informed of the exceeded quota. Increasing the size to 40kb. A 3rd
iframe is added, which should succeed.
</p>
<pre id="console"></pre>
</body>
</html>