popover-attribute-all-elements.html (1997B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <link rel="author" href="mailto:masonf@chromium.org"> 4 <link rel=help href="https://open-ui.org/components/popover.research.explainer"> 5 <meta name="timeout" content="long"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="/resources/testdriver.js"></script> 9 <script src="/resources/testdriver-actions.js"></script> 10 <script src="/resources/testdriver-vendor.js"></script> 11 <script src="resources/popover-utils.js"></script> 12 <script src="../../resources/common.js"></script> 13 14 <body> 15 <script> 16 setup({ explicit_done: true }); 17 window.onload = () => { 18 // Loop through all HTML elements that render a box by default: 19 let elementsThatDontRender = ['area', 'audio','base','br','datalist','dialog','embed','head','link','meta','noscript','optgroup','option','param','rp','script','slot','style','template','title','wbr']; 20 const elements = HTML5_ELEMENTS.filter(el => !elementsThatDontRender.includes(el)); 21 elements.forEach(tag => { 22 test((t) => { 23 const element = document.createElement(tag); 24 element.setAttribute('popover','auto'); 25 document.body.appendChild(element); 26 t.add_cleanup(() => element.remove()); 27 assertIsFunctionalPopover(element, true); 28 }, `A <${tag} popover> element should behave as a popover.`); 29 test((t) => { 30 const element = document.createElement(tag); 31 document.body.appendChild(element); 32 t.add_cleanup(() => element.remove()); 33 assertNotAPopover(element); 34 }, `A <${tag}> element should *not* behave as a popover.`); 35 }); 36 elementsThatDontRender.forEach(tag => { 37 test((t) => { 38 const element = document.createElement(tag); 39 element.setAttribute('popover','auto'); 40 document.body.appendChild(element); 41 t.add_cleanup(() => element.remove()); 42 assertIsFunctionalPopover(element, false); 43 }, `A <${tag} popover> element should not be rendered.`); 44 }); 45 done(); 46 }; 47 </script>