diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/popovers/popover-invoker-reset.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/popovers/popover-invoker-reset.html | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/popovers/popover-invoker-reset.html b/testing/web-platform/tests/html/semantics/popovers/popover-invoker-reset.html new file mode 100644 index 0000000000..bfc79fd629 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/popovers/popover-invoker-reset.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" href="mailto:masonf@chromium.org"> +<link rel=help href="https://open-ui.org/components/popover.research.explainer"> +<link rel=help href="https://github.com/whatwg/html/issues/9152"> +<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> +<script src="resources/popover-utils.js"></script> + +<div id=p1 popover>Popover 1 + <button popovertarget=p2>Button</button> +</div> +<div id=p2 popover>Popover 2</div> + +<script> + test((t) => { + p1.showPopover(); + assert_true(p1.matches(':popover-open')); + const invoker = p1.querySelector('button'); + p2.addEventListener('beforetoggle',(e) => { + assert_equals(e.newState,'open'); + e.preventDefault(); + },{once:true}); + invoker.click(); // Will be cancelled + assert_false(p2.matches(':popover-open')); + assert_true(p1.matches(':popover-open')); + p2.showPopover(); + assert_true(p2.matches(':popover-open')); + assert_false(p1.matches(':popover-open'),'invoker was not used to show p2, so p1 should close'); + },'Invoker gets reset appropriately'); +</script> |