diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /dom/base/test/test_focus_scroll_padding_tab.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/base/test/test_focus_scroll_padding_tab.html')
-rw-r--r-- | dom/base/test/test_focus_scroll_padding_tab.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/dom/base/test/test_focus_scroll_padding_tab.html b/dom/base/test/test_focus_scroll_padding_tab.html new file mode 100644 index 0000000000..1d3b0d3e92 --- /dev/null +++ b/dom/base/test/test_focus_scroll_padding_tab.html @@ -0,0 +1,74 @@ +<!doctype html> +<title>Test for bug 1617342</title> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<script src="/tests/SimpleTest/EventUtils.js"></script> +<style> + :root { + scroll-padding: 100px 0; + } + body { + margin: 0; + } + #fixed-footer { + height: 100px; + position: fixed; + bottom: 0; + left: 0; + width: 100%; + background: green; + } + #fixed-header { + height: 100px; + position: fixed; + top: 0; + left: 0; + width: 100%; + background: green; + } + .almost-full-padding { + height: calc(100vh - 200px); + } + .padding { + height: 100vh; + } +</style> +<div id="fixed-header"></div> +<div class="padding"></div> +<input> +<div class="almost-full-padding"></div> +<input> +<div class="padding"></div> +<input id="end"> +<div class="padding"></div> +<div id="fixed-footer"></div> +<script> + SimpleTest.waitForExplicitFinish(); + SimpleTest.waitForFocus(async function() { + let stack = []; + let end = document.getElementById("end"); + + let lastActiveElement = document.activeElement; + + do { + synthesizeKey("KEY_Tab"); + is(document.activeElement.tagName, "INPUT", "Should focus inputs only, there's nothing else"); + isnot(document.activeElement, lastActiveElement, "Focus should've moved once per tab keypress"); + let rect = document.activeElement.getBoundingClientRect(); + ok(rect.top >= 100, "Should not be covered by top bar"); + ok(rect.bottom >= 100, "Should not be covered by bottom bar"); + lastActiveElement = document.activeElement; + stack.push(lastActiveElement); + } while (document.activeElement != end) + + do { + let previous = stack.pop(); + let rect = document.activeElement.getBoundingClientRect(); + ok(rect.top >= 100, "Should not be covered by top bar"); + ok(rect.bottom >= 100, "Should not be covered by bottom bar"); + is(document.activeElement, previous, "Focus should've moved backwards as expected"); + synthesizeKey("KEY_Tab", {shiftKey: true}); + } while (stack.length); + + SimpleTest.finish(); + }); +</script> |