storage_key.window.js (1715B)
1 ["localStorage", "sessionStorage"].forEach(function(name) { 2 test(function() { 3 var storage = window[name]; 4 storage.clear(); 5 6 storage.setItem("name", "user1"); 7 storage.setItem("age", "20"); 8 storage.setItem("a", "1"); 9 storage.setItem("b", "2"); 10 11 var keys = ["name", "age", "a", "b"]; 12 function doTest(index) { 13 test(function() { 14 var key = storage.key(index); 15 assert_not_equals(key, null); 16 assert_true(keys.indexOf(key) >= 0, 17 "Unexpected key " + key + " found."); 18 }, name + ".key(" + index + ") should return the right thing."); 19 } 20 for (var i = 0; i < keys.length; ++i) { 21 doTest(i); 22 doTest(i + 0x100000000); 23 } 24 25 test(function() { 26 assert_equals(storage.key(-1), null, "storage.key(-1)"); 27 assert_equals(storage.key(4), null, "storage.key(4)"); 28 }, name + ".key() should return null for out-of-range arguments."); 29 }, name + ".key"); 30 31 test(function() { 32 var get_keys = function(s) { 33 var keys = []; 34 for (var i = 0; i < s.length; ++i) { 35 keys.push(s.key(i)); 36 } 37 return keys; 38 }; 39 var storage = window[name]; 40 storage.clear(); 41 42 storage.setItem("name", "user1"); 43 storage.setItem("age", "20"); 44 storage.setItem("a", "1"); 45 storage.setItem("b", "2"); 46 47 var expected_keys = get_keys(storage); 48 storage.setItem("name", "user2"); 49 assert_array_equals(get_keys(storage), expected_keys); 50 }, name + ".key with value changes"); 51 });