diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /devtools/client/jsonview/test/browser_jsonview_expand_collapse.js | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/jsonview/test/browser_jsonview_expand_collapse.js')
-rw-r--r-- | devtools/client/jsonview/test/browser_jsonview_expand_collapse.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/devtools/client/jsonview/test/browser_jsonview_expand_collapse.js b/devtools/client/jsonview/test/browser_jsonview_expand_collapse.js new file mode 100644 index 0000000000..ed1d468626 --- /dev/null +++ b/devtools/client/jsonview/test/browser_jsonview_expand_collapse.js @@ -0,0 +1,61 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +XPCOMUtils.defineLazyGetter(this, "jsonViewStrings", () => { + return Services.strings.createBundle( + "chrome://devtools/locale/jsonview.properties" + ); +}); + +const TEST_JSON_URL = URL_ROOT + "array_json.json"; +const EXPAND_THRESHOLD = 100 * 1024; + +add_task(async function() { + info("Test expand/collapse small JSON started"); + + await addJsonViewTab(TEST_JSON_URL); + + /* Initial sanity check */ + const countBefore = await getElementCount(".treeRow"); + is(countBefore, 6, "There must be six rows"); + + /* Test the "Collapse All" button */ + let selector = ".jsonPanelBox .toolbar button.collapse"; + await clickJsonNode(selector); + let countAfter = await getElementCount(".treeRow"); + is(countAfter, 3, "There must be three rows"); + + /* Test the "Expand All" button */ + selector = ".jsonPanelBox .toolbar button.expand"; + is( + await getElementText(selector), + jsonViewStrings.GetStringFromName("jsonViewer.ExpandAll"), + "Expand button doesn't warn that the action will be slow" + ); + await clickJsonNode(selector); + countAfter = await getElementCount(".treeRow"); + is(countAfter, 6, "There must be six expanded rows"); +}); + +add_task(async function() { + info("Test expand button for big JSON started"); + + const json = JSON.stringify({ + data: Array(1e5) + .fill() + .map(x => "hoot"), + status: "ok", + }); + ok( + json.length > EXPAND_THRESHOLD, + "The generated JSON must be larger than 100kB" + ); + await addJsonViewTab("data:application/json," + json); + is( + await getElementText(".jsonPanelBox .toolbar button.expand"), + jsonViewStrings.GetStringFromName("jsonViewer.ExpandAllSlow"), + "Expand button warns that the action will be slow" + ); +}); |