diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /devtools/client/inspector/markup/test/browser_markup_pagesize_01.js | |
parent | Initial commit. (diff) | |
download | firefox-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/inspector/markup/test/browser_markup_pagesize_01.js')
-rw-r--r-- | devtools/client/inspector/markup/test/browser_markup_pagesize_01.js | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/devtools/client/inspector/markup/test/browser_markup_pagesize_01.js b/devtools/client/inspector/markup/test/browser_markup_pagesize_01.js new file mode 100644 index 0000000000..1700c9a433 --- /dev/null +++ b/devtools/client/inspector/markup/test/browser_markup_pagesize_01.js @@ -0,0 +1,91 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Tests that the markup view loads only as many nodes as specified by the +// devtools.markup.pagesize preference. + +Services.prefs.setIntPref("devtools.markup.pagesize", 5); + +const TEST_URL = URL_ROOT + "doc_markup_pagesize_01.html"; +const TEST_DATA = [ + { + desc: "Select the last item", + selector: "#z", + expected: "*more*vwxyz", + }, + { + desc: "Select the first item", + selector: "#a", + expected: "abcde*more*", + }, + { + desc: "Select the last item", + selector: "#z", + expected: "*more*vwxyz", + }, + { + desc: "Select an already-visible item", + selector: "#v", + // Because "v" was already visible, we shouldn't have loaded + // a different page. + expected: "*more*vwxyz", + }, + { + desc: "Verify childrenDirty reloads the page", + selector: "#w", + forceReload: true, + // But now that we don't already have a loaded page, selecting + // w should center around w. + expected: "*more*uvwxy*more*", + }, +]; + +add_task(async function () { + const { inspector } = await openInspectorForURL(TEST_URL); + + info("Start iterating through the test data"); + for (const step of TEST_DATA) { + info("Start test: " + step.desc); + + if (step.forceReload) { + await forceReload(inspector); + } + info("Selecting the node that corresponds to " + step.selector); + await selectNode(step.selector, inspector); + + info("Checking that the right nodes are shwon"); + await assertChildren(step.expected, inspector); + } + + info("Checking that clicking the more button loads everything"); + await clickShowMoreNodes(inspector); + await inspector.markup._waitForChildren(); + await assertChildren("abcdefghijklmnopqrstuvwxyz", inspector); +}); + +async function assertChildren(expected, inspector) { + const container = await getContainerForSelector("body", inspector); + let found = ""; + for (const child of container.children.children) { + if (child.classList.contains("more-nodes")) { + found += "*more*"; + } else { + found += child.container.node.getAttribute("id"); + } + } + is(found, expected, "Got the expected children."); +} + +async function forceReload(inspector) { + const container = await getContainerForSelector("body", inspector); + container.childrenDirty = true; +} + +async function clickShowMoreNodes(inspector) { + const container = await getContainerForSelector("body", inspector); + const button = container.elt.querySelector("button"); + const win = button.ownerDocument.defaultView; + EventUtils.sendMouseEvent({ type: "click" }, button, win); +} |