67 lines
1.5 KiB
HTML
67 lines
1.5 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script>
|
|
description("Test the DOM Storage quota code.");
|
|
|
|
function testQuota(storageString)
|
|
{
|
|
storage = eval(storageString);
|
|
if (!storage) {
|
|
testFailed(storageString + " DOES NOT exist");
|
|
return;
|
|
}
|
|
|
|
debug("Testing " + storageString);
|
|
|
|
evalAndLog("storage.clear()");
|
|
shouldBe("storage.length", "0");
|
|
|
|
debug("Creating 'data' which contains 64K of data");
|
|
data = "\u03BB";
|
|
for (var i=0; i<16; i++)
|
|
data += data;
|
|
shouldBe("data.length", "65536");
|
|
|
|
debug("Putting 'data' into 39 " + storageString + " buckets.");
|
|
for (var i=0; i<39; i++)
|
|
storage[i] = data;
|
|
|
|
debug("Putting 'data' into another bucket.h");
|
|
try {
|
|
storage[39] = data;
|
|
testFailed("Did not hit quota error.");
|
|
} catch (e) {
|
|
testPassed("Hit exception as expected");
|
|
}
|
|
|
|
debug("Verify that data was never inserted.");
|
|
shouldBeNull("storage.getItem(39)");
|
|
|
|
debug("Removing bucket 38.");
|
|
storage.removeItem('38');
|
|
|
|
debug("Adding 'Hello!' into a new bucket.");
|
|
try {
|
|
storage['foo'] = "Hello!";
|
|
testPassed("Insertion worked.");
|
|
} catch (e) {
|
|
testFailed("Exception: " + e);
|
|
}
|
|
}
|
|
|
|
testQuota("sessionStorage");
|
|
debug("");
|
|
debug("");
|
|
testQuota("localStorage");
|
|
|
|
window.successfullyParsed = true;
|
|
isSuccessfullyParsed();
|
|
</script>
|
|
</body>
|
|
</html>
|