91 lines
2.5 KiB
HTML
91 lines
2.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 some corner case DOM Storage values.");
|
|
|
|
function testKeyValue(key, value)
|
|
{
|
|
keyString = "storage['" + key + "']";
|
|
shouldBeEqualToString("typeof " + keyString, "string");
|
|
shouldBeEqualToString(keyString, value);
|
|
|
|
keyString = "storage." + key;
|
|
shouldBeEqualToString("typeof " + keyString, "string");
|
|
shouldBeEqualToString(keyString, value);
|
|
|
|
keyString = "storage.getItem('" + key + "')";
|
|
shouldBeEqualToString("typeof " + keyString, "string");
|
|
shouldBeEqualToString(keyString, value);
|
|
}
|
|
|
|
function test(storageString)
|
|
{
|
|
storage = eval(storageString);
|
|
if (!storage) {
|
|
testFailed(storageString + " DOES NOT exist");
|
|
return;
|
|
}
|
|
|
|
debug("Testing " + storageString);
|
|
|
|
evalAndLog("storage.clear()");
|
|
shouldBe("storage.length", "0");
|
|
|
|
debug("");
|
|
shouldBeEqualToString("typeof storage['foo']", "undefined");
|
|
shouldBeUndefined("storage['foo']");
|
|
shouldBeEqualToString("typeof storage.foo", "undefined");
|
|
shouldBeUndefined("storage.foo");
|
|
shouldBeEqualToString("typeof storage.getItem('foo')", "object");
|
|
shouldBeNull("storage.getItem('foo')");
|
|
|
|
debug("");
|
|
evalAndLog("storage.foo1 = null");
|
|
testKeyValue("foo1", "null");
|
|
evalAndLog("storage['foo2'] = null");
|
|
testKeyValue("foo2", "null");
|
|
evalAndLog("storage.setItem('foo3', null)");
|
|
testKeyValue("foo3", "null");
|
|
|
|
debug("");
|
|
evalAndLog("storage.foo4 = undefined");
|
|
testKeyValue("foo4", "undefined");
|
|
evalAndLog("storage['foo5'] = undefined");
|
|
testKeyValue("foo5", "undefined");
|
|
evalAndLog("storage.setItem('foo6', undefined)");
|
|
testKeyValue("foo6", "undefined");
|
|
|
|
debug("");
|
|
evalAndLog("storage.foo7 = 2");
|
|
testKeyValue("foo7", "2");
|
|
evalAndLog("storage['foo8'] = 2");
|
|
testKeyValue("foo8", "2");
|
|
evalAndLog("storage.setItem('foo9', 2)");
|
|
testKeyValue("foo9", "2");
|
|
|
|
debug("");
|
|
k = String.fromCharCode(255425) + String.fromCharCode(255) + String.fromCharCode(2554252321) + String.fromCharCode(0) + 'hello';
|
|
evalAndLog("storage.foo10 = k");
|
|
testKeyValue("foo10", k);
|
|
evalAndLog("storage['foo11'] = k");
|
|
testKeyValue("foo11", k);
|
|
evalAndLog("storage.setItem('foo12', k)");
|
|
testKeyValue("foo12", k);
|
|
}
|
|
|
|
test("sessionStorage");
|
|
debug("");
|
|
debug("");
|
|
test("localStorage");
|
|
|
|
window.successfullyParsed = true;
|
|
isSuccessfullyParsed();
|
|
</script>
|
|
</body>
|
|
</html>
|