tor-browser

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

test_orderingAfterRemoveAdd.js (1487B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 add_task(async function testSteps() {
      7  const url = "http://example.com";
      8 
      9  info("Setting pref");
     10 
     11  Services.prefs.setBoolPref("dom.storage.snapshot_reusing", false);
     12 
     13  const items = [
     14    { key: "key01", value: "value01" },
     15    { key: "key02", value: "value02" },
     16    { key: "key03", value: "value03" },
     17    { key: "key04", value: "value04" },
     18    { key: "key05", value: "value05" },
     19  ];
     20 
     21  info("Getting storage");
     22 
     23  let storage = getLocalStorage(getPrincipal(url));
     24 
     25  // 1st snapshot
     26 
     27  info("Adding data");
     28 
     29  for (let item of items) {
     30    storage.setItem(item.key, item.value);
     31  }
     32 
     33  info("Returning to event loop");
     34 
     35  await returnToEventLoop();
     36 
     37  // 2nd snapshot
     38 
     39  // Remove first two items, add some new items and add the two items back.
     40 
     41  storage.removeItem("key01");
     42  storage.removeItem("key02");
     43 
     44  storage.setItem("key06", "value06");
     45  storage.setItem("key07", "value07");
     46  storage.setItem("key08", "value08");
     47 
     48  storage.setItem("key01", "value01");
     49  storage.setItem("key02", "value02");
     50 
     51  info("Saving key order");
     52 
     53  let savedKeys = Object.keys(storage);
     54 
     55  info("Returning to event loop");
     56 
     57  await returnToEventLoop();
     58 
     59  // 3rd snapshot
     60 
     61  info("Verifying key order");
     62 
     63  let keys = Object.keys(storage);
     64 
     65  is(keys.length, savedKeys.length);
     66 
     67  for (let i = 0; i < keys.length; i++) {
     68    is(keys[i], savedKeys[i], "Correct key");
     69  }
     70 });