diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/popovers/popover-attribute-all-elements.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/popovers/popover-attribute-all-elements.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/popovers/popover-attribute-all-elements.html b/testing/web-platform/tests/html/semantics/popovers/popover-attribute-all-elements.html new file mode 100644 index 0000000000..5a536f026e --- /dev/null +++ b/testing/web-platform/tests/html/semantics/popovers/popover-attribute-all-elements.html @@ -0,0 +1,47 @@ +<!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"> +<meta name="timeout" content="long"> +<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> +<script src="../../resources/common.js"></script> + +<body> +<script> +setup({ explicit_done: true }); +window.onload = () => { + // Loop through all HTML elements that render a box by default: + let elementsThatDontRender = ['area', 'audio','base','br','datalist','dialog','embed','head','link','meta','noscript','optgroup','option','param','rp','script','slot','style','template','title','wbr']; + const elements = HTML5_ELEMENTS.filter(el => !elementsThatDontRender.includes(el)); + elements.forEach(tag => { + test((t) => { + const element = document.createElement(tag); + element.setAttribute('popover','auto'); + document.body.appendChild(element); + t.add_cleanup(() => element.remove()); + assertIsFunctionalPopover(element, true); + }, `A <${tag} popover> element should behave as a popover.`); + test((t) => { + const element = document.createElement(tag); + document.body.appendChild(element); + t.add_cleanup(() => element.remove()); + assertNotAPopover(element); + }, `A <${tag}> element should *not* behave as a popover.`); + }); + elementsThatDontRender.forEach(tag => { + test((t) => { + const element = document.createElement(tag); + element.setAttribute('popover','auto'); + document.body.appendChild(element); + t.add_cleanup(() => element.remove()); + assertIsFunctionalPopover(element, false); + }, `A <${tag} popover> element should not be rendered.`); + }); + done(); +}; +</script> |