Files
sousa-gecko/devtools/client/webconsole/test/browser/browser_webconsole_longstring.js
T
Alexandre Poirot 27ee6fdd0f Bug 1906125 - [devtools] Unify VirtualizedTree and Tree CSS and move SourcesTree specifics to Tree. r=devtools-reviewers,nchevobbe
- make them both use .theme-twisty to show an arrow icon.
- move some specifics stylings of SourcesTree to the base class.
- make SourcesTree use the arrow React component provided by Tree class.
- use .theme-twisty instead of .arrow (which already implements rotation and colors on expand). But it uses "open" instead of "expanded" classname.
  (VirtualizedTree was already using theme-twisty)

This impacts the Source Tree, ObjectInspector (console, debugger), Watch Expressions, memory panel (dominator view).

Differential Revision: https://phabricator.services.mozilla.com/D215637
2024-07-10 21:25:46 +00:00

50 lines
1.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Test that very long strings can be expanded and collapsed, and do not hang the browser.
"use strict";
const TEST_URI =
"data:text/html,<!DOCTYPE html><meta charset=utf8>Test LongString hang";
const LONGSTRING = `foobar${"a".repeat(
9000
)}foobaz${"abbababazomglolztest".repeat(100)}boom!`;
add_task(async function () {
const hud = await openNewTabAndConsole(TEST_URI);
info("Log a longString");
const onMessage = waitForMessageByType(
hud,
LONGSTRING.slice(0, 50),
".console-api"
);
SpecialPowers.spawn(gBrowser.selectedBrowser, [LONGSTRING], str => {
content.console.log(str);
});
const { node } = await onMessage;
const arrow = node.querySelector(".theme-twisty");
ok(arrow, "longString expand arrow is shown");
info("wait for long string expansion");
const onLongStringFullTextDisplayed = waitFor(() =>
findConsoleAPIMessage(hud, LONGSTRING)
);
arrow.click();
await onLongStringFullTextDisplayed;
ok(true, "The full text of the longString is displayed");
info("wait for long string collapse");
const onLongStringCollapsed = waitFor(
() => !findConsoleAPIMessage(hud, LONGSTRING)
);
arrow.click();
await onLongStringCollapsed;
ok(true, "The longString can be collapsed");
});