diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-disconnected.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-disconnected.html | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-disconnected.html b/testing/web-platform/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-disconnected.html new file mode 100644 index 0000000000..bf621b640b --- /dev/null +++ b/testing/web-platform/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-disconnected.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html> +<head> +<title>Test focusing steps when dialog is disconnected</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +</head> +<body> +<input> +<script> +test(function() { + const outerInput = document.querySelector("input"); + outerInput.focus(); + assert_equals(document.activeElement, outerInput, + "Focus should be on element we just focused"); + + const dialog = document.createElement("dialog"); + assert_false(dialog.open, "Dialog should initially be closed"); + assert_false(dialog.hasAttribute('open'), "Dialog should initially be closed"); + + const innerInput = document.createElement("input"); + innerInput.autofocus = true; + dialog.append(innerInput); + + dialog.show(); + this.add_cleanup(() => { dialog.close(); }); + assert_true(dialog.open, "Disconnected dialog can still be open"); + + + assert_equals(document.activeElement, outerInput, "Focusing steps should not change focus"); +}, "dialog.show(): focusing steps should not change focus on disconnected <dialog>"); + +test(function() { + assert_throws_dom("InvalidStateError", () => { + document.createElement("dialog").showModal(); + }); +}, "dialog.showModal() should throw on disconnected <dialog>"); +</script> +</body> +</html> |