diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /accessible/tests/browser/events/browser_alert.js | |
parent | Initial commit. (diff) | |
download | firefox-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 'accessible/tests/browser/events/browser_alert.js')
-rw-r--r-- | accessible/tests/browser/events/browser_alert.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/accessible/tests/browser/events/browser_alert.js b/accessible/tests/browser/events/browser_alert.js new file mode 100644 index 0000000000..f35a602fa3 --- /dev/null +++ b/accessible/tests/browser/events/browser_alert.js @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Test that alert events aren't fired when reflow happens but no actual + * insertion occurs. + */ +addAccessibleTask( + ` +<div id="alert" role="alert"> + <div id="content" hidden>content</div> +</div> + `, + async function (browser, docAcc) { + const alert = findAccessibleChildByID(docAcc, "alert"); + info("Showing content"); + await contentSpawnMutation( + browser, + { expected: [[EVENT_ALERT, alert]] }, + () => { + content.document.getElementById("content").hidden = false; + } + ); + info("Changing content display style and removing text"); + const content = findAccessibleChildByID(docAcc, "content"); + await contentSpawnMutation( + browser, + { + expected: [[EVENT_REORDER, content]], + unexpected: [[EVENT_ALERT, alert]], + }, + () => { + const node = content.document.getElementById("content"); + node.textContent = ""; + // This causes the node's layout frame to be reconstructed. This in + // turn causes a11y to queue it as an insertion in case there were + // changes. Because it already has an Accessible, This node is skipped + // when processing insertions, so we should not fire an alert event. + node.style.display = "flex"; + } + ); + }, + { chrome: true, topLevel: true, remoteIframe: true } +); |