summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/xpcshell/test_sessionDataHelpers.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /devtools/server/tests/xpcshell/test_sessionDataHelpers.js
parentInitial commit. (diff)
downloadfirefox-esr-upstream.tar.xz
firefox-esr-upstream.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/server/tests/xpcshell/test_sessionDataHelpers.js')
-rw-r--r--devtools/server/tests/xpcshell/test_sessionDataHelpers.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/devtools/server/tests/xpcshell/test_sessionDataHelpers.js b/devtools/server/tests/xpcshell/test_sessionDataHelpers.js
new file mode 100644
index 0000000000..847311811f
--- /dev/null
+++ b/devtools/server/tests/xpcshell/test_sessionDataHelpers.js
@@ -0,0 +1,79 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Test SessionDataHelpers.
+ */
+
+"use strict";
+
+const { SessionDataHelpers } = ChromeUtils.import(
+ "resource://devtools/server/actors/watcher/SessionDataHelpers.jsm"
+);
+const { SUPPORTED_DATA } = SessionDataHelpers;
+const { TARGETS } = SUPPORTED_DATA;
+
+function run_test() {
+ const sessionData = {
+ [TARGETS]: [],
+ };
+
+ SessionDataHelpers.addSessionDataEntry(sessionData, TARGETS, [
+ "frame",
+ "worker",
+ ]);
+ deepEqual(
+ sessionData[TARGETS],
+ ["frame", "worker"],
+ "the two elements were added"
+ );
+
+ SessionDataHelpers.addSessionDataEntry(sessionData, TARGETS, ["frame"]);
+ deepEqual(
+ sessionData[TARGETS],
+ ["frame", "worker"],
+ "addSessionDataEntry ignore duplicates"
+ );
+
+ SessionDataHelpers.addSessionDataEntry(sessionData, TARGETS, ["process"]);
+ deepEqual(
+ sessionData[TARGETS],
+ ["frame", "worker", "process"],
+ "the third element is added"
+ );
+
+ let removed = SessionDataHelpers.removeSessionDataEntry(
+ sessionData,
+ TARGETS,
+ ["process"]
+ );
+ ok(removed, "removedSessionDataEntry returned true as it removed an element");
+ deepEqual(
+ sessionData[TARGETS],
+ ["frame", "worker"],
+ "the element has been remove"
+ );
+
+ removed = SessionDataHelpers.removeSessionDataEntry(sessionData, TARGETS, [
+ "not-existing",
+ ]);
+ ok(
+ !removed,
+ "removedSessionDataEntry returned false as no element has been removed"
+ );
+ deepEqual(
+ sessionData[TARGETS],
+ ["frame", "worker"],
+ "no change made to the array"
+ );
+
+ removed = SessionDataHelpers.removeSessionDataEntry(sessionData, TARGETS, [
+ "frame",
+ "worker",
+ ]);
+ ok(
+ removed,
+ "removedSessionDataEntry returned true as elements have been removed"
+ );
+ deepEqual(sessionData[TARGETS], [], "all elements were removed");
+}