From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../test/browser_rules_selector-highlighter_01.js | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 devtools/client/inspector/rules/test/browser_rules_selector-highlighter_01.js (limited to 'devtools/client/inspector/rules/test/browser_rules_selector-highlighter_01.js') diff --git a/devtools/client/inspector/rules/test/browser_rules_selector-highlighter_01.js b/devtools/client/inspector/rules/test/browser_rules_selector-highlighter_01.js new file mode 100644 index 0000000000..f83a6f08ea --- /dev/null +++ b/devtools/client/inspector/rules/test/browser_rules_selector-highlighter_01.js @@ -0,0 +1,86 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test that the selector highlighter is created when clicking on a selector +// icon in the rule view. + +const TEST_URI = ` + + Test the selector highlighter +`; + +add_task(async function () { + await addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)); + const { inspector, view } = await openRuleView(); + const { waitForHighlighterTypeShown, waitForHighlighterTypeHidden } = + getHighlighterTestHelpers(inspector); + + const activeHighlighter = inspector.highlighters.getActiveHighlighter( + inspector.highlighters.TYPES.SELECTOR + ); + ok(!activeHighlighter, "No selector highlighter is active"); + + info("Clicking on a selector icon"); + let data = await clickSelectorIcon(view, "body, p, td"); + + ok(data.highlighter, "The selector highlighter instance was created"); + ok(data.isShown, "The selector highlighter was shown"); + + info("Click on the same icon to disable highlighter"); + data = await clickSelectorIcon(view, "body, p, td"); + ok(!data.isShown, "The highlighter is not visible anymore"); + + info("Check that the selector highlighter can be toggled from the keyboard"); + const ruleEl = getRuleViewRule(view, "body, p, td", 0); + const selectorContainerEl = ruleEl.querySelector( + ".ruleview-selectors-container" + ); + const selectorHighlighterIcon = ruleEl.querySelector( + ".ruleview-selectorhighlighter" + ); + is( + selectorHighlighterIcon.getAttribute("aria-pressed"), + "false", + "selector highlighter icon is not pressed by default" + ); + selectorContainerEl.focus(); + EventUtils.synthesizeKey("VK_TAB", {}, selectorContainerEl.ownerGlobal); + await waitFor( + () => + selectorContainerEl.ownerDocument.activeElement === + selectorHighlighterIcon + ); + ok(true, "selector highlighter button can be focused"); + + const onHighlighterShown = waitForHighlighterTypeShown( + inspector.highlighters.TYPES.SELECTOR + ); + EventUtils.synthesizeKey("VK_RETURN", {}, selectorContainerEl.ownerGlobal); + data = await onHighlighterShown; + + ok(true, "The selector highlighter was shown from the keyboard"); + ok(data.highlighter, "The selector highlighter instance was created"); + + await waitFor( + () => selectorHighlighterIcon.getAttribute("aria-pressed") === "true" + ); + ok(true, "selector highlighter icon is pressed"); + + const onHighlighterHidden = waitForHighlighterTypeHidden( + inspector.highlighters.TYPES.SELECTOR + ); + EventUtils.synthesizeKey("VK_RETURN", {}, selectorContainerEl.ownerGlobal); + await onHighlighterHidden; + ok(true, "The selector highlighter was hidden from the keyboard"); + is( + selectorHighlighterIcon.getAttribute("aria-pressed"), + "false", + "selector highlighter icon is no longer pressed" + ); +}); -- cgit v1.2.3