60 lines
1.9 KiB
HTML
60 lines
1.9 KiB
HTML
<!DOCTYPE HTML>
|
|
<meta charset=utf-8>
|
|
<title>WebStorage Test: Storage - key(index)</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<div id="log"></div>
|
|
<script>
|
|
["localStorage", "sessionStorage"].forEach(function(name) {
|
|
test(function() {
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
storage.setItem("name", "user1");
|
|
storage.setItem("age", "20");
|
|
storage.setItem("a", "1");
|
|
storage.setItem("b", "2");
|
|
|
|
var keys = ["name", "age", "a", "b"];
|
|
function doTest(index) {
|
|
test(function() {
|
|
var key = storage.key(index);
|
|
assert_not_equals(key, null);
|
|
assert_true(keys.indexOf(key) >= 0,
|
|
"Unexpected key " + key + " found.");
|
|
}, name + ".key(" + index + ") should return the right thing.");
|
|
}
|
|
for (var i = 0; i < keys.length; ++i) {
|
|
doTest(i);
|
|
doTest(i + 0x100000000);
|
|
}
|
|
|
|
test(function() {
|
|
assert_equals(storage.key(-1), null, "storage.key(-1)");
|
|
assert_equals(storage.key(4), null, "storage.key(4)");
|
|
}, name + ".key() should return null for out-of-range arguments.");
|
|
}, name + ".key");
|
|
|
|
test(function() {
|
|
var get_keys = function(s) {
|
|
var keys = [];
|
|
for (var i = 0; i < s.length; ++i) {
|
|
keys.push(s.key(i));
|
|
}
|
|
return keys;
|
|
};
|
|
var storage = window[name];
|
|
storage.clear();
|
|
|
|
storage.setItem("name", "user1");
|
|
storage.setItem("age", "20");
|
|
storage.setItem("a", "1");
|
|
storage.setItem("b", "2");
|
|
|
|
var expected_keys = get_keys(storage);
|
|
storage.setItem("name", "user2");
|
|
assert_array_equals(get_keys(storage), expected_keys);
|
|
}, name + ".key with value changes");
|
|
});
|
|
</script>
|