summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/browser/head_sessions.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/test/browser/head_sessions.js')
-rw-r--r--browser/components/extensions/test/browser/head_sessions.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/browser/components/extensions/test/browser/head_sessions.js b/browser/components/extensions/test/browser/head_sessions.js
new file mode 100644
index 0000000000..db58c128c6
--- /dev/null
+++ b/browser/components/extensions/test/browser/head_sessions.js
@@ -0,0 +1,64 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+/* exported recordInitialTimestamps onlyNewItemsFilter checkRecentlyClosed */
+
+let initialTimestamps = [];
+
+function recordInitialTimestamps(timestamps) {
+ initialTimestamps = timestamps;
+}
+
+function onlyNewItemsFilter(item) {
+ return !initialTimestamps.includes(item.lastModified);
+}
+
+function checkWindow(window) {
+ for (let prop of ["focused", "incognito", "alwaysOnTop"]) {
+ is(window[prop], false, `closed window has the expected value for ${prop}`);
+ }
+ for (let prop of ["state", "type"]) {
+ is(
+ window[prop],
+ "normal",
+ `closed window has the expected value for ${prop}`
+ );
+ }
+}
+
+function checkTab(tab, windowId, incognito) {
+ for (let prop of ["highlighted", "active", "pinned"]) {
+ is(tab[prop], false, `closed tab has the expected value for ${prop}`);
+ }
+ is(tab.windowId, windowId, "closed tab has the expected value for windowId");
+ is(
+ tab.incognito,
+ incognito,
+ "closed tab has the expected value for incognito"
+ );
+}
+
+function checkRecentlyClosed(
+ recentlyClosed,
+ expectedCount,
+ windowId,
+ incognito = false
+) {
+ let sessionIds = new Set();
+ is(
+ recentlyClosed.length,
+ expectedCount,
+ "the expected number of closed tabs/windows was found"
+ );
+ for (let item of recentlyClosed) {
+ if (item.window) {
+ sessionIds.add(item.window.sessionId);
+ checkWindow(item.window);
+ } else if (item.tab) {
+ sessionIds.add(item.tab.sessionId);
+ checkTab(item.tab, windowId, incognito);
+ }
+ }
+ is(sessionIds.size, expectedCount, "each item has a unique sessionId");
+}