tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 });