popover-toggle-source.html (3392B)
1 <!DOCTYPE html> 2 <link rel=author href="mailto:jarhar@chromium.org"> 3 <link rel=help href="https://github.com/whatwg/html/issues/9111"> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="resources/toggle-event-source-test.js"></script> 7 8 <button id=popoversource popovertarget=popover>popovertarget source</button> 9 <button id=commandsource commandfor=popover command=show-popover>command source</button> 10 <div id=popover popover=auto> 11 popover 12 <button id=popoversourcehide popovertarget=popover>popovertarget source</button> 13 <button id=commandsourcehide commandfor=popover command=hide-popover>command source</button> 14 </div> 15 16 <script> 17 const popoversource = document.getElementById('popoversource'); 18 const popoversourcehide = document.getElementById('popoversourcehide'); 19 const commandsource = document.getElementById('commandsource'); 20 const commandsourcehide = document.getElementById('commandsourcehide'); 21 const popover = document.getElementById('popover'); 22 23 let beforetoggleEvent = null; 24 let toggleEvent = null; 25 popover.addEventListener('beforetoggle', event => beforetoggleEvent = event); 26 popover.addEventListener('toggle', event => toggleEvent = event); 27 28 createToggleEventSourceTest({ 29 description: 'ToggleEvent.source on popover elements: showPopover() without source.', 30 target: popover, 31 openFunc: async () => popover.showPopover(), 32 closeFunc: async () => popover.hidePopover(), 33 openSource: null, 34 closeSource: null 35 }); 36 37 createToggleEventSourceTest({ 38 description: 'ToggleEvent.source on popover elements: showPopover() with source.', 39 target: popover, 40 openFunc: async () => popover.showPopover({source: popoversource}), 41 closeFunc: async () => popover.hidePopover(), 42 openSource: popoversource, 43 closeSource: null 44 }); 45 46 createToggleEventSourceTest({ 47 description: 'ToggleEvent.source on popover elements: Calling click() on a popovertarget button.', 48 target: popover, 49 openFunc: async () => popoversource.click(), 50 closeFunc: async () => popoversourcehide.click(), 51 openSource: popoversource, 52 closeSource: popoversourcehide 53 }); 54 55 createToggleEventSourceTest({ 56 description: 'ToggleEvent.source on popover elements: Calling click() on a command button.', 57 target: popover, 58 openFunc: async () => commandsource.click(), 59 closeFunc: async () => commandsourcehide.click(), 60 openSource: commandsource, 61 closeSource: commandsourcehide 62 }); 63 64 createToggleEventSourceTest({ 65 description: 'ToggleEvent.source on popover elements: showPopover() then popovertarget button.', 66 target: popover, 67 openFunc: async () => popover.showPopover(), 68 closeFunc: async () => popoversourcehide.click(), 69 openSource: null, 70 closeSource: popoversourcehide 71 }); 72 73 createToggleEventSourceTest({ 74 description: 'ToggleEvent.source on popover elements: showPopover(invoker) then popovertarget button.', 75 target: popover, 76 openFunc: async () => popover.showPopover({source: popoversource}), 77 closeFunc: async () => popoversourcehide.click(), 78 openSource: popoversource, 79 closeSource: popoversourcehide 80 }); 81 82 createToggleEventSourceTest({ 83 description: 'ToggleEvent.source on popover elements: popovertarget button then hidePopover().', 84 target: popover, 85 openFunc: async () => popoversource.click(), 86 closeFunc: async () => popover.hidePopover(), 87 openSource: popoversource, 88 closeSource: null 89 }); 90 </script>