summaryrefslogtreecommitdiffstats
path: root/devtools/client/accessibility/test/browser/browser_accessibility_context_menu_inspector.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /devtools/client/accessibility/test/browser/browser_accessibility_context_menu_inspector.js
parentInitial commit. (diff)
downloadfirefox-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/accessibility/test/browser/browser_accessibility_context_menu_inspector.js')
-rw-r--r--devtools/client/accessibility/test/browser/browser_accessibility_context_menu_inspector.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/devtools/client/accessibility/test/browser/browser_accessibility_context_menu_inspector.js b/devtools/client/accessibility/test/browser/browser_accessibility_context_menu_inspector.js
new file mode 100644
index 0000000000..03273a30c2
--- /dev/null
+++ b/devtools/client/accessibility/test/browser/browser_accessibility_context_menu_inspector.js
@@ -0,0 +1,104 @@
+/* Any copyright is dedicated to the Public Domain.
+http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+const TEST_URI = `
+ <h1 id="h1">header</h1>
+ <p id="p">paragraph</p>
+ <span id="span-1">text</span>
+ <span id="span-2">
+ IamaverylongtextwhichdoesntfitinInlineTextChildReallyIdontIamtoobig
+ </span>`;
+
+async function openContextMenuForNode({ toolbox }, selector) {
+ info("Selecting Inspector tab and opening a context menu");
+ const inspector = await toolbox.selectTool("inspector");
+
+ if (!selector) {
+ ok(inspector.selection.isBodyNode(), "Default selection is a body node.");
+ } else if (typeof selector === "string") {
+ await selectNode(selector, inspector, "test");
+ } else {
+ const updated = inspector.once("inspector-updated");
+ inspector.selection.setNodeFront(selector, { reason: "test" });
+ await updated;
+ }
+
+ return openContextMenuAndGetAllItems(inspector);
+}
+
+function checkShowA11YPropertiesNode(allMenuItems) {
+ const showA11YPropertiesNode = allMenuItems.find(
+ item => item.id === "node-menu-showaccessibilityproperties"
+ );
+ ok(
+ showA11YPropertiesNode,
+ "the popup menu now has a show accessibility properties item"
+ );
+ return showA11YPropertiesNode;
+}
+
+async function checkAccessibleObjectSelection(
+ { toolbox, panel },
+ menuItem,
+ isText
+) {
+ const inspector = await toolbox.getPanel("inspector");
+ info(
+ "Triggering 'Show Accessibility Properties' and waiting for " +
+ "accessibility panel to open"
+ );
+ const panelSelected = toolbox.once("accessibility-selected");
+ const objectSelected = panel.once("new-accessible-front-selected");
+ menuItem.click();
+ await panelSelected;
+ const selected = await objectSelected;
+
+ const expectedNode = isText
+ ? inspector.selection.nodeFront.inlineTextChild
+ : inspector.selection.nodeFront;
+ const expectedSelected =
+ await panel.accessibilityProxy.accessibilityFront.accessibleWalkerFront.getAccessibleFor(
+ expectedNode
+ );
+ is(selected, expectedSelected, "Accessible front selected correctly");
+
+ const doc = panel.panelWin.document;
+ const propertiesTree = doc.querySelector(".tree");
+ is(doc.activeElement, propertiesTree, "Properties list must be focused.");
+ ok(
+ isVisible(doc.querySelector(".treeTable .treeRow.selected")),
+ "Selected row is visible."
+ );
+}
+
+addA11YPanelTask(
+ "Test show accessibility properties context menu.",
+ TEST_URI,
+ async function testShowAccessibilityPropertiesContextMenu(env) {
+ // Load the inspector to ensure it to use in this test.
+ await env.toolbox.loadTool("inspector");
+
+ let allMenuItems = await openContextMenuForNode(env);
+ let showA11YPropertiesNode = checkShowA11YPropertiesNode(allMenuItems);
+
+ allMenuItems = await openContextMenuForNode(env, "#h1");
+ showA11YPropertiesNode = checkShowA11YPropertiesNode(allMenuItems);
+ await checkAccessibleObjectSelection(env, showA11YPropertiesNode);
+
+ allMenuItems = await openContextMenuForNode(env, "#span-1");
+ showA11YPropertiesNode = checkShowA11YPropertiesNode(allMenuItems);
+ await checkAccessibleObjectSelection(env, showA11YPropertiesNode, true);
+
+ allMenuItems = await openContextMenuForNode(env, "#span-2");
+ showA11YPropertiesNode = checkShowA11YPropertiesNode(allMenuItems);
+
+ const inspector = env.toolbox.getPanel("inspector");
+ const span2 = await getNodeFront("#span-2", inspector);
+ await inspector.markup.expandNode(span2);
+ const { nodes } = await inspector.walker.children(span2);
+ allMenuItems = await openContextMenuForNode(env, nodes[0]);
+ showA11YPropertiesNode = checkShowA11YPropertiesNode(allMenuItems);
+ await checkAccessibleObjectSelection(env, showA11YPropertiesNode, false);
+ }
+);