Skip to content

Commit

Permalink
Re-import html/semantics/popovers WPT
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=253649

Reviewed by Tim Nguyen.

Based on web-platform-tests/wpt@4b6f100.

* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-attribute-all-elements-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-attribute-all-elements.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-attribute-basic-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-types-with-hints.tentative-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-types-with-hints.tentative.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/resources/popover-utils.js:
(assertPopoverVisibility):
(assertNotAPopover):
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/w3c-import.log:
* LayoutTests/tests-options.json:

Canonical link: https://commits.webkit.org/261454@main
  • Loading branch information
rwlbuis committed Mar 9, 2023
1 parent d92a59c commit 0a8e648
Show file tree
Hide file tree
Showing 9 changed files with 482 additions and 259 deletions.
@@ -0,0 +1,186 @@

PASS A <a popover> element should behave as a popover.
PASS A <a> element should *not* behave as a popover.
PASS A <abbr popover> element should behave as a popover.
PASS A <abbr> element should *not* behave as a popover.
PASS A <address popover> element should behave as a popover.
PASS A <address> element should *not* behave as a popover.
FAIL A <area popover> element should behave as a popover. assert_equals: After showPopover(), a popover should be visible: Expected this element to be visible expected true but got false
FAIL A <area> element should *not* behave as a popover. assert_equals: A non-popover should start out visible: Expected this element to be visible expected true but got false
PASS A <article popover> element should behave as a popover.
PASS A <article> element should *not* behave as a popover.
PASS A <aside popover> element should behave as a popover.
PASS A <aside> element should *not* behave as a popover.
PASS A <b popover> element should behave as a popover.
PASS A <b> element should *not* behave as a popover.
PASS A <bdi popover> element should behave as a popover.
PASS A <bdi> element should *not* behave as a popover.
PASS A <bdo popover> element should behave as a popover.
PASS A <bdo> element should *not* behave as a popover.
PASS A <blockquote popover> element should behave as a popover.
PASS A <blockquote> element should *not* behave as a popover.
PASS A <body popover> element should behave as a popover.
PASS A <body> element should *not* behave as a popover.
PASS A <button popover> element should behave as a popover.
PASS A <button> element should *not* behave as a popover.
PASS A <canvas popover> element should behave as a popover.
PASS A <canvas> element should *not* behave as a popover.
PASS A <caption popover> element should behave as a popover.
PASS A <caption> element should *not* behave as a popover.
PASS A <cite popover> element should behave as a popover.
PASS A <cite> element should *not* behave as a popover.
PASS A <code popover> element should behave as a popover.
PASS A <code> element should *not* behave as a popover.
PASS A <col popover> element should behave as a popover.
PASS A <col> element should *not* behave as a popover.
PASS A <colgroup popover> element should behave as a popover.
PASS A <colgroup> element should *not* behave as a popover.
PASS A <data popover> element should behave as a popover.
PASS A <data> element should *not* behave as a popover.
PASS A <dd popover> element should behave as a popover.
PASS A <dd> element should *not* behave as a popover.
PASS A <del popover> element should behave as a popover.
PASS A <del> element should *not* behave as a popover.
PASS A <details popover> element should behave as a popover.
PASS A <details> element should *not* behave as a popover.
PASS A <dfn popover> element should behave as a popover.
PASS A <dfn> element should *not* behave as a popover.
PASS A <div popover> element should behave as a popover.
PASS A <div> element should *not* behave as a popover.
PASS A <dl popover> element should behave as a popover.
PASS A <dl> element should *not* behave as a popover.
PASS A <dt popover> element should behave as a popover.
PASS A <dt> element should *not* behave as a popover.
PASS A <em popover> element should behave as a popover.
PASS A <em> element should *not* behave as a popover.
PASS A <fieldset popover> element should behave as a popover.
PASS A <fieldset> element should *not* behave as a popover.
PASS A <figcaption popover> element should behave as a popover.
PASS A <figcaption> element should *not* behave as a popover.
PASS A <figure popover> element should behave as a popover.
PASS A <figure> element should *not* behave as a popover.
PASS A <footer popover> element should behave as a popover.
PASS A <footer> element should *not* behave as a popover.
PASS A <form popover> element should behave as a popover.
PASS A <form> element should *not* behave as a popover.
PASS A <h1 popover> element should behave as a popover.
PASS A <h1> element should *not* behave as a popover.
PASS A <h2 popover> element should behave as a popover.
PASS A <h2> element should *not* behave as a popover.
PASS A <h3 popover> element should behave as a popover.
PASS A <h3> element should *not* behave as a popover.
PASS A <h4 popover> element should behave as a popover.
PASS A <h4> element should *not* behave as a popover.
PASS A <h5 popover> element should behave as a popover.
PASS A <h5> element should *not* behave as a popover.
PASS A <h6 popover> element should behave as a popover.
PASS A <h6> element should *not* behave as a popover.
PASS A <header popover> element should behave as a popover.
PASS A <header> element should *not* behave as a popover.
PASS A <hr popover> element should behave as a popover.
PASS A <hr> element should *not* behave as a popover.
PASS A <html popover> element should behave as a popover.
PASS A <html> element should *not* behave as a popover.
PASS A <i popover> element should behave as a popover.
PASS A <i> element should *not* behave as a popover.
PASS A <iframe popover> element should behave as a popover.
PASS A <iframe> element should *not* behave as a popover.
PASS A <img popover> element should behave as a popover.
PASS A <img> element should *not* behave as a popover.
PASS A <input popover> element should behave as a popover.
PASS A <input> element should *not* behave as a popover.
PASS A <ins popover> element should behave as a popover.
PASS A <ins> element should *not* behave as a popover.
PASS A <kbd popover> element should behave as a popover.
PASS A <kbd> element should *not* behave as a popover.
PASS A <label popover> element should behave as a popover.
PASS A <label> element should *not* behave as a popover.
PASS A <legend popover> element should behave as a popover.
PASS A <legend> element should *not* behave as a popover.
PASS A <li popover> element should behave as a popover.
PASS A <li> element should *not* behave as a popover.
PASS A <main popover> element should behave as a popover.
PASS A <main> element should *not* behave as a popover.
PASS A <map popover> element should behave as a popover.
PASS A <map> element should *not* behave as a popover.
PASS A <mark popover> element should behave as a popover.
PASS A <mark> element should *not* behave as a popover.
PASS A <menu popover> element should behave as a popover.
PASS A <menu> element should *not* behave as a popover.
PASS A <meter popover> element should behave as a popover.
PASS A <meter> element should *not* behave as a popover.
PASS A <nav popover> element should behave as a popover.
PASS A <nav> element should *not* behave as a popover.
PASS A <object popover> element should behave as a popover.
PASS A <object> element should *not* behave as a popover.
PASS A <ol popover> element should behave as a popover.
PASS A <ol> element should *not* behave as a popover.
FAIL A <optgroup popover> element should behave as a popover. assert_equals: After showPopover(), a popover should be visible: Expected this element to be visible expected true but got false
FAIL A <optgroup> element should *not* behave as a popover. assert_equals: A non-popover should start out visible: Expected this element to be visible expected true but got false
FAIL A <option popover> element should behave as a popover. assert_equals: After showPopover(), a popover should be visible: Expected this element to be visible expected true but got false
FAIL A <option> element should *not* behave as a popover. assert_equals: A non-popover should start out visible: Expected this element to be visible expected true but got false
PASS A <output popover> element should behave as a popover.
PASS A <output> element should *not* behave as a popover.
PASS A <p popover> element should behave as a popover.
PASS A <p> element should *not* behave as a popover.
PASS A <pre popover> element should behave as a popover.
PASS A <pre> element should *not* behave as a popover.
PASS A <progress popover> element should behave as a popover.
PASS A <progress> element should *not* behave as a popover.
PASS A <q popover> element should behave as a popover.
PASS A <q> element should *not* behave as a popover.
PASS A <rt popover> element should behave as a popover.
PASS A <rt> element should *not* behave as a popover.
PASS A <ruby popover> element should behave as a popover.
PASS A <ruby> element should *not* behave as a popover.
PASS A <s popover> element should behave as a popover.
PASS A <s> element should *not* behave as a popover.
PASS A <samp popover> element should behave as a popover.
PASS A <samp> element should *not* behave as a popover.
PASS A <section popover> element should behave as a popover.
PASS A <section> element should *not* behave as a popover.
PASS A <select popover> element should behave as a popover.
PASS A <select> element should *not* behave as a popover.
PASS A <small popover> element should behave as a popover.
PASS A <small> element should *not* behave as a popover.
PASS A <source popover> element should behave as a popover.
PASS A <source> element should *not* behave as a popover.
PASS A <span popover> element should behave as a popover.
PASS A <span> element should *not* behave as a popover.
PASS A <strong popover> element should behave as a popover.
PASS A <strong> element should *not* behave as a popover.
PASS A <sub popover> element should behave as a popover.
PASS A <sub> element should *not* behave as a popover.
PASS A <sup popover> element should behave as a popover.
PASS A <sup> element should *not* behave as a popover.
PASS A <summary popover> element should behave as a popover.
PASS A <summary> element should *not* behave as a popover.
PASS A <table popover> element should behave as a popover.
PASS A <table> element should *not* behave as a popover.
PASS A <tbody popover> element should behave as a popover.
PASS A <tbody> element should *not* behave as a popover.
PASS A <td popover> element should behave as a popover.
PASS A <td> element should *not* behave as a popover.
PASS A <textarea popover> element should behave as a popover.
PASS A <textarea> element should *not* behave as a popover.
PASS A <tfoot popover> element should behave as a popover.
PASS A <tfoot> element should *not* behave as a popover.
PASS A <th popover> element should behave as a popover.
PASS A <th> element should *not* behave as a popover.
PASS A <thead popover> element should behave as a popover.
PASS A <thead> element should *not* behave as a popover.
PASS A <time popover> element should behave as a popover.
PASS A <time> element should *not* behave as a popover.
PASS A <tr popover> element should behave as a popover.
PASS A <tr> element should *not* behave as a popover.
PASS A <track popover> element should behave as a popover.
PASS A <track> element should *not* behave as a popover.
PASS A <u popover> element should behave as a popover.
PASS A <u> element should *not* behave as a popover.
PASS A <ul popover> element should behave as a popover.
PASS A <ul> element should *not* behave as a popover.
PASS A <var popover> element should behave as a popover.
PASS A <var> element should *not* behave as a popover.
PASS A <video popover> element should behave as a popover.
PASS A <video> element should *not* behave as a popover.

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" href="mailto:masonf@chromium.org">
<link rel=help href="https://open-ui.org/components/popup.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 HTML5 elements that render a box by default:
let elementsThatDontRender = ['audio','base','br','datalist','dialog','embed','head','link','meta','noscript','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);
}, `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.`);
});

done();
};
</script>

0 comments on commit 0a8e648

Please sign in to comment.