summaryrefslogtreecommitdiffstats
path: root/dom/base/test/test_focus_scrollable_input.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/test_focus_scrollable_input.html')
-rw-r--r--dom/base/test/test_focus_scrollable_input.html56
1 files changed, 56 insertions, 0 deletions
diff --git a/dom/base/test/test_focus_scrollable_input.html b/dom/base/test/test_focus_scrollable_input.html
new file mode 100644
index 0000000000..ca48f3a263
--- /dev/null
+++ b/dom/base/test/test_focus_scrollable_input.html
@@ -0,0 +1,56 @@
+<!doctype html>
+<title>Test for bug 1617342</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<script src="/tests/SimpleTest/EventUtils.js"></script>
+<style>
+ input {
+ /* Make them small enough that any value overflows */
+ height: 10px;
+ width: 10px;
+ box-sizing: border-box;
+ font: 16px/1 monospace;
+ }
+</style>
+<input type="text" id="start" value="aaaaaaaaaa">
+
+<input type="text" value="aaaaaaaaaa">
+<input type="number" value="1111">
+<input type="search" value="aaaaaaa">
+<input type="url" value="https://fooooooooooo">
+
+<input type="text" id="end" value="aaaaaaaaaa">
+<script>
+ SimpleTest.waitForExplicitFinish();
+ SimpleTest.waitForFocus(async function() {
+ // Enable Full Keyboard Access emulation on Mac.
+ if (navigator.platform.indexOf("Mac") === 0) {
+ await SpecialPowers.pushPrefEnv({"set": [["accessibility.tabfocus", 7]]});
+ }
+
+ const start = document.getElementById("start");
+
+ start.focus();
+
+ const end = document.getElementById("end");
+
+ is(document.activeElement, start, "Focus moved sanely");
+
+ let lastActiveElement = start;
+ let stack = [start];
+
+ do {
+ synthesizeKey("KEY_Tab");
+ isnot(document.activeElement, lastActiveElement, "Focus should've moved once per tab keypress");
+ lastActiveElement = document.activeElement;
+ stack.push(lastActiveElement);
+ } while (document.activeElement != end)
+
+ do {
+ let previous = stack.pop();
+ is(document.activeElement, previous, "Focus should've moved backwards as expected");
+ synthesizeKey("KEY_Tab", {shiftKey: true});
+ } while (stack.length);
+
+ SimpleTest.finish();
+ });
+</script>