diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /devtools/client/webconsole/test/browser/browser_webconsole_console_group_open_no_scroll.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.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/client/webconsole/test/browser/browser_webconsole_console_group_open_no_scroll.js')
-rw-r--r-- | devtools/client/webconsole/test/browser/browser_webconsole_console_group_open_no_scroll.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser/browser_webconsole_console_group_open_no_scroll.js b/devtools/client/webconsole/test/browser/browser_webconsole_console_group_open_no_scroll.js new file mode 100644 index 0000000000..c60a7a6303 --- /dev/null +++ b/devtools/client/webconsole/test/browser/browser_webconsole_console_group_open_no_scroll.js @@ -0,0 +1,67 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Check that opening a group does not scroll the console output. + +const TEST_URI = `data:text/html,<!DOCTYPE html><meta charset=utf8><script> + Array.from({length: 100}, (_, i) => console.log("log-"+i)); + console.groupCollapsed("GROUP"); + console.log("in group"); +</script>`; + +add_task(async function () { + const hud = await openNewTabAndConsole(TEST_URI); + const outputScroller = hud.ui.outputScroller; + + // Let's wait until the first message and the group are displayed. + await waitFor(() => findConsoleAPIMessage(hud, "log-0")); + const groupMessage = await waitFor(() => findConsoleAPIMessage(hud, "GROUP")); + + is(hasVerticalOverflow(outputScroller), true, "output node overflows"); + is( + isScrolledToBottom(outputScroller), + true, + "output node is scrolled to the bottom" + ); + + info("Expand the group"); + groupMessage.querySelector(".arrow").click(); + await waitFor(() => findConsoleAPIMessage(hud, "in group")); + + is(hasVerticalOverflow(outputScroller), true, "output node overflows"); + is( + isScrolledToBottom(outputScroller), + false, + "output node isn't scrolled to the bottom anymore" + ); + + info("Scroll to bottom"); + outputScroller.scrollTop = outputScroller.scrollHeight; + await new Promise(r => + window.requestAnimationFrame(() => TestUtils.executeSoon(r)) + ); + + is( + isScrolledToBottom(outputScroller), + true, + "output node is scrolled to the bottom" + ); + + info( + "Check that adding a message on an open group when scrolled to bottom scrolls " + + "to bottom" + ); + const onNewMessage = waitForMessageByType(hud, "new-message", ".console-api"); + SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () { + content.console.group("GROUP-2"); + content.console.log("new-message"); + }); + await onNewMessage; + is( + isScrolledToBottom(outputScroller), + true, + "output node is scrolled to the bottom after adding message in group" + ); +}); |