summaryrefslogtreecommitdiffstats
path: root/devtools/client/storage/test/browser_storage_localstorage_rapid_add_remove.js
blob: 56636903bb92371fe82c2fb81b71906ac5066a3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

// Basic test to check the rapid adding and removing of localStorage entries.

"use strict";

add_task(async function () {
  await openTabAndSetupStorage(MAIN_DOMAIN_SECURED + "storage-blank.html");
  await selectTreeItem(["localStorage", "https://test1.example.org"]);

  ok(isTableEmpty(), "Table empty on init");

  for (let i = 0; i < 10; i++) {
    await addRemove(`test${i}`);
  }
});

async function addRemove(name) {
  await SpecialPowers.spawn(gBrowser.selectedBrowser, [name], innerName => {
    content.localStorage.setItem(innerName, "true");
    content.localStorage.removeItem(innerName);
  });

  info("Waiting for store objects to be changed");
  await gUI.once("store-objects-edit");

  ok(isTableEmpty(), `Table empty after rapid add/remove of "${name}"`);
}