summaryrefslogtreecommitdiffstats
path: root/devtools/client/storage/test/browser_storage_delete_tree.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /devtools/client/storage/test/browser_storage_delete_tree.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/storage/test/browser_storage_delete_tree.js')
-rw-r--r--devtools/client/storage/test/browser_storage_delete_tree.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/devtools/client/storage/test/browser_storage_delete_tree.js b/devtools/client/storage/test/browser_storage_delete_tree.js
new file mode 100644
index 0000000000..047536acd7
--- /dev/null
+++ b/devtools/client/storage/test/browser_storage_delete_tree.js
@@ -0,0 +1,93 @@
+/* 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/. */
+
+"use strict";
+
+// Test deleting all storage items from the tree.
+
+add_task(async function () {
+ // storage-listings.html explicitly mixes secure and insecure frames.
+ // We should not enforce https for tests using this page.
+ await pushPref("dom.security.https_first", false);
+
+ await openTabAndSetupStorage(MAIN_DOMAIN + "storage-listings.html");
+
+ const contextMenu =
+ gPanelWindow.document.getElementById("storage-tree-popup");
+ const menuDeleteAllItem = contextMenu.querySelector(
+ "#storage-tree-popup-delete-all"
+ );
+
+ info("test state before delete");
+ await checkState([
+ [
+ ["cookies", "http://test1.example.org"],
+ [
+ getCookieId("c1", "test1.example.org", "/browser"),
+ getCookieId("cs2", ".example.org", "/"),
+ getCookieId("c3", "test1.example.org", "/"),
+ getCookieId("c4", ".example.org", "/"),
+ getCookieId("uc1", ".example.org", "/"),
+ getCookieId("uc2", ".example.org", "/"),
+ ],
+ ],
+ [
+ ["localStorage", "http://test1.example.org"],
+ ["key", "ls1", "ls2"],
+ ],
+ [
+ ["sessionStorage", "http://test1.example.org"],
+ ["key", "ss1"],
+ ],
+ [
+ ["indexedDB", "http://test1.example.org", "idb1 (default)", "obj1"],
+ [1, 2, 3],
+ ],
+ [
+ ["Cache", "http://test1.example.org", "plop"],
+ [
+ MAIN_DOMAIN + "404_cached_file.js",
+ MAIN_DOMAIN + "browser_storage_basic.js",
+ ],
+ ],
+ ]);
+
+ info("do the delete");
+ const deleteHosts = [
+ ["cookies", "http://test1.example.org"],
+ ["localStorage", "http://test1.example.org"],
+ ["sessionStorage", "http://test1.example.org"],
+ ["indexedDB", "http://test1.example.org", "idb1 (default)", "obj1"],
+ ["Cache", "http://test1.example.org", "plop"],
+ ];
+
+ for (const store of deleteHosts) {
+ const storeName = store.join(" > ");
+
+ await selectTreeItem(store);
+
+ const eventName =
+ "store-objects-" + (store[0] == "cookies" ? "edit" : "cleared");
+ const eventWait = gUI.once(eventName);
+
+ const selector = `[data-id='${JSON.stringify(store)}'] > .tree-widget-item`;
+ const target = gPanelWindow.document.querySelector(selector);
+ ok(target, `tree item found in ${storeName}`);
+ await waitForContextMenu(contextMenu, target, () => {
+ info(`Opened tree context menu in ${storeName}`);
+ contextMenu.activateItem(menuDeleteAllItem);
+ });
+
+ await eventWait;
+ }
+
+ info("test state after delete");
+ await checkState([
+ [["cookies", "http://test1.example.org"], []],
+ [["localStorage", "http://test1.example.org"], []],
+ [["sessionStorage", "http://test1.example.org"], []],
+ [["indexedDB", "http://test1.example.org", "idb1 (default)", "obj1"], []],
+ [["Cache", "http://test1.example.org", "plop"], []],
+ ]);
+});