Part 2: Add tests for the propagation of focusin and focusout events through a disabled form-associated custom element.
Differential Revision: https://phabricator.services.mozilla.com/D173176
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1818287
gecko-commit: a4ec639e1547c3d1e670b112dc1fcccbe1f8d0bf
gecko-reviewers: edgar
diff --git a/custom-elements/form-associated/disabled-delegatesFocus.html b/custom-elements/form-associated/disabled-delegatesFocus.html
index f92cc52..3f2b765 100644
--- a/custom-elements/form-associated/disabled-delegatesFocus.html
+++ b/custom-elements/form-associated/disabled-delegatesFocus.html
@@ -36,10 +36,21 @@
</form>
<script>
+ let focusinPropagated = false;
+ let focusoutPropagated = false;
+
+ const form = document.querySelector("form");
+ form.addEventListener("focusin", () => focusinPropagated = true);
+ form.addEventListener("focusout", () => focusoutPropagated = true);
+
test(() => {
const element = document.querySelector("custom-control");
element.focus();
assert_true(element.eventFired, "Focus event fired on custom control");
+ assert_true(focusinPropagated, "FocusIn event propagated through control");
+
+ element.blur();
+ assert_true(focusoutPropagated, "FocusOut event propagated through control");
}, "Focus events fire on disabled form-associated custom elements with delegatesFocus");
</script>