Bug 1624710 [wpt PR 22424] - Add a test for unexpected activation triggered during space keydown driven focus management, a=testonly
authorMu-An 慕安 <muan@github.com>
Tue, 28 Apr 2020 11:33:21 +0000
changeset 527523 bc8c1032a6b280da60d0d9de02d8186e8a72a2cc
parent 527522 fbd868c8613c7e913785d57e9c2c6728c869a967
child 527524 2879b3b4921729562dc05ac6416a1a0b20d50aac
push id37368
push userbtara@mozilla.com
push dateFri, 01 May 2020 21:45:51 +0000
treeherdermozilla-central@0f9c5a59e45d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1624710, 22424
milestone77.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1624710 [wpt PR 22424] - Add a test for unexpected activation triggered during space keydown driven focus management, a=testonly Automatic update from web-platform-tests Add a test for unexpected activation triggered during space keydown driven focus management (#22424) Relevant spec: https://w3c.github.io/uievents/#event-flow-activation This is targeting a Firefox bug where when forwarding focus on space and enter keydown events, a unexpected click event is triggered on the forward target. Here's a demo page for the buggy behavior:https://html-is.glitch.me/firefox-space-focus.html This test case only cover the Space key case where Firefox is the outlier. -- wpt-commits: cc87c188abc5c88460d24379e69d540372f0c683 wpt-pr: 22424
testing/web-platform/tests/uievents/order-of-events/focus-events/focus-management-expectations.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/uievents/order-of-events/focus-events/focus-management-expectations.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8">
+  <title>Focus management event expectations</title>
+  <link rel="author" title="Mu-An Chiou" href="https://muan.co">
+  <link rel="help" href="https://w3c.github.io/uievents/#event-flow-activation">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script src="/resources/testdriver.js"></script>
+  <script src="/resources/testdriver-actions.js"></script>
+  <script src="/resources/testdriver-vendor.js"></script>
+</head>
+
+<body>
+  <button type="button" id="fromEl">Focus management from button</button>
+  <button type="button" id="toEl">To button</button>
+  <button type="button" id="EndTestEl">End test button</button>
+</body>
+
+<script>
+  const from = document.getElementById("fromEl")
+  const to = document.getElementById("toEl")
+  const endTest = document.getElementById("EndTestEl")
+
+  from.addEventListener("keydown", function (event) {
+    if (event.key === " ") to.focus()
+  })
+
+  async_test(function (t) {
+    let buttonFocused = false
+    to.addEventListener("click", t.unreached_func("Button should not be clicked"))
+    to.addEventListener("focus", () => buttonFocused = true)
+    endTest.addEventListener('click', () => {
+      assert_true(buttonFocused, "Button should be focused")
+      t.step_timeout(() => t.done(), 200)
+    })
+
+    // execute test
+    from.focus()
+    new test_driver.Actions().keyDown("\ue00d").keyUp("\ue00d").send().then(() =>
+      new test_driver.click(endTest)
+    )
+  }, "Keydown to focus should not trigger activation")
+</script>
+
+</html>
\ No newline at end of file