1
0
Fork 0
firefox/accessible/tests/browser/e10s/browser_treeupdate_whitespace.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

125 lines
3.7 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/* import-globals-from ../../mochitest/role.js */
loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
addAccessibleTask(
"e10s/doc_treeupdate_whitespace.html",
async function (browser, accDoc) {
let container1 = findAccessibleChildByID(accDoc, "container1");
let container2Parent = findAccessibleChildByID(accDoc, "container2-parent");
let tree = {
SECTION: [
{ GRAPHIC: [] },
{ TEXT_LEAF: [] },
{ GRAPHIC: [] },
{ TEXT_LEAF: [] },
{ GRAPHIC: [] },
],
};
testAccessibleTree(container1, tree);
let onReorder = waitForEvent(EVENT_REORDER, "container1");
// Remove img1 from container1
await invokeContentTask(browser, [], () => {
let doc = content.document;
doc.getElementById("container1").removeChild(doc.getElementById("img1"));
});
await onReorder;
tree = {
SECTION: [{ GRAPHIC: [] }, { TEXT_LEAF: [] }, { GRAPHIC: [] }],
};
testAccessibleTree(container1, tree);
tree = {
SECTION: [{ LINK: [] }, { LINK: [{ GRAPHIC: [] }] }],
};
testAccessibleTree(container2Parent, tree);
onReorder = waitForEvent(EVENT_REORDER, "container2-parent");
// Append an img with valid src to container2
await invokeContentTask(browser, [], () => {
let doc = content.document;
let img = doc.createElement("img");
img.setAttribute(
"src",
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
"http://example.com/a11y/accessible/tests/mochitest/moz.png"
);
doc.getElementById("container2").appendChild(img);
});
await onReorder;
tree = {
SECTION: [
{ LINK: [{ GRAPHIC: [] }] },
{ TEXT_LEAF: [] },
{ LINK: [{ GRAPHIC: [] }] },
],
};
testAccessibleTree(container2Parent, tree);
},
{ iframe: true, remoteIframe: true }
);
/**
* Test whitespace before hard and soft line breaks.
*/
addAccessibleTask(
`
<div id="hardContainer"><span>a</span> <span id="b" hidden>b</span></div>
<div id="softContainer" style="width: 1ch; font-family: monospace;">
<span>c</span> <span>d</span>
</div>
`,
async function testBeforeLineBreaks(browser, docAcc) {
const hardContainer = findAccessibleChildByID(docAcc, "hardContainer");
testAccessibleTree(hardContainer, {
role: ROLE_SECTION,
children: [{ role: ROLE_TEXT_LEAF, name: "a" }],
});
info("Showing b");
let reordered = waitForEvent(EVENT_REORDER, hardContainer);
await invokeContentTask(browser, [], () => {
content.document.getElementById("b").hidden = false;
});
await reordered;
testAccessibleTree(hardContainer, {
role: ROLE_SECTION,
children: [
{ role: ROLE_TEXT_LEAF, name: "a" },
{ role: ROLE_TEXT_LEAF, name: " " },
{ role: ROLE_TEXT_LEAF, name: "b" },
],
});
info("Hiding b");
reordered = waitForEvent(EVENT_REORDER, hardContainer);
await invokeContentTask(browser, [], () => {
content.document.getElementById("b").hidden = true;
});
await reordered;
testAccessibleTree(hardContainer, {
role: ROLE_SECTION,
children: [{ role: ROLE_TEXT_LEAF, name: "a" }],
});
const softContainer = findAccessibleChildByID(docAcc, "softContainer");
testAccessibleTree(softContainer, {
role: ROLE_SECTION,
children: [
{ role: ROLE_TEXT_LEAF, name: "c" },
{ role: ROLE_TEXT_LEAF, name: " " },
{ role: ROLE_TEXT_LEAF, name: "d" },
],
});
},
{ chrome: true, topLevel: true }
);