blob: 21f3e394b87dc23c9dfda465ef7f4ff6231fb26b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
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 = "X";
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);
}
}
function testNoQuota(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 = "X";
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;
testPassed("Insertion worked.");
} catch (e) {
testFailed("Exception: " + e);
}
}
testNoQuota("sessionStorage");
debug("");
debug("");
testQuota("localStorage");
window.successfullyParsed = true;
isSuccessfullyParsed();
|