blob: bfc79fd629171606b5d5d9a4224522e4bb4137ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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>
|