summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/browser/browser_webconsole_persist.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /devtools/client/webconsole/test/browser/browser_webconsole_persist.js
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/webconsole/test/browser/browser_webconsole_persist.js')
-rw-r--r--devtools/client/webconsole/test/browser/browser_webconsole_persist.js87
1 files changed, 87 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser/browser_webconsole_persist.js b/devtools/client/webconsole/test/browser/browser_webconsole_persist.js
new file mode 100644
index 0000000000..88b39db8f5
--- /dev/null
+++ b/devtools/client/webconsole/test/browser/browser_webconsole_persist.js
@@ -0,0 +1,87 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Check that message persistence works - bug 705921 / bug 1307881
+
+"use strict";
+
+const TEST_URI =
+ "http://example.com/browser/devtools/client/webconsole/" +
+ "test/browser/test-console.html";
+
+registerCleanupFunction(() => {
+ Services.prefs.clearUserPref("devtools.webconsole.persistlog");
+});
+
+add_task(async function() {
+ info("Testing that messages disappear on a refresh if logs aren't persisted");
+ const hud = await openNewTabAndConsole(TEST_URI);
+
+ const INITIAL_LOGS_NUMBER = 5;
+ await SpecialPowers.spawn(
+ gBrowser.selectedBrowser,
+ [INITIAL_LOGS_NUMBER],
+ count => {
+ content.wrappedJSObject.doLogs(count);
+ }
+ );
+ await waitFor(() => findMessages(hud, "").length === INITIAL_LOGS_NUMBER);
+ ok(true, "Messages showed up initially");
+
+ const onReloaded = hud.ui.once("reloaded");
+ await refreshTab();
+ await onReloaded;
+ await waitFor(() => findMessages(hud, "").length === 0);
+ ok(true, "Messages disappeared");
+
+ await closeToolbox();
+});
+
+add_task(async function() {
+ info("Testing that messages persist on a refresh if logs are persisted");
+
+ const hud = await openNewTabAndConsole(TEST_URI);
+
+ await toggleConsoleSetting(
+ hud,
+ ".webconsole-console-settings-menu-item-persistentLogs"
+ );
+
+ const INITIAL_LOGS_NUMBER = 5;
+ await SpecialPowers.spawn(
+ gBrowser.selectedBrowser,
+ [INITIAL_LOGS_NUMBER],
+ count => {
+ content.wrappedJSObject.doLogs(count);
+ }
+ );
+ await waitFor(() => findMessages(hud, "").length === INITIAL_LOGS_NUMBER);
+ ok(true, "Messages showed up initially");
+
+ const onNavigatedMessage = waitForMessage(hud, "Navigated to");
+ const onReloaded = hud.ui.once("reloaded");
+ refreshTab();
+ await onNavigatedMessage;
+ await onReloaded;
+
+ ok(true, "Navigation message appeared as expected");
+ is(
+ findMessages(hud, "").length,
+ INITIAL_LOGS_NUMBER + 1,
+ "Messages logged before navigation are still visible"
+ );
+
+ const {
+ visibleMessages,
+ messagesById,
+ } = hud.ui.wrapper.getStore().getState().messages;
+ const [commandId, resultId] = visibleMessages;
+ const commandMessage = messagesById.get(commandId).timeStamp;
+ const resultMessage = messagesById.get(resultId).timeStamp;
+
+ ok(
+ resultMessage > commandMessage && resultMessage < Date.now(),
+ "The result has a timestamp newer than the command and older than current time"
+ );
+ await closeToolbox();
+});