diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/css/selectors/open-closed-pseudo.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/selectors/open-closed-pseudo.html')
-rw-r--r-- | testing/web-platform/tests/css/selectors/open-closed-pseudo.html | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/selectors/open-closed-pseudo.html b/testing/web-platform/tests/css/selectors/open-closed-pseudo.html new file mode 100644 index 0000000000..9301fd2f41 --- /dev/null +++ b/testing/web-platform/tests/css/selectors/open-closed-pseudo.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<link rel=author href="mailto:jarhar@chromium.org"> +<link rel=help href="https://drafts.csswg.org/selectors-4/#open-state"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<dialog>dialog</dialog> + +<details>details</details> + +<select> + <option>one</option> +</select> + +<script> +test(() => { + const dialog = document.querySelector('dialog'); + assert_true(dialog.matches(':closed'), + ':closed should match when the dialog is closed.'); + assert_false(dialog.matches(':open'), + ':open should not match when the dialog is closed.'); + + dialog.show(); + assert_false(dialog.matches(':closed'), + ':closed should not match after dialog.open().'); + assert_true(dialog.matches(':open'), + ':open should match after dialog.open().'); + + dialog.close(); + dialog.showModal(); + assert_false(dialog.matches(':closed'), + ':closed should not match after dialog.showModal().'); + assert_true(dialog.matches(':open'), + ':open should match after dialog.showModal().'); + + dialog.close(); +}, 'The dialog element should support :open and :closed.'); + +test(() => { + const details = document.querySelector('details'); + assert_true(details.matches(':closed'), + ':closed should match when the details is closed.'); + assert_false(details.matches(':open'), + ':open should not match when the details is closed.'); + + details.open = true; + assert_false(details.matches(':closed'), + ':closed should not match when the details is open.'); + assert_true(details.matches(':open'), + ':open should match when the details is open.'); +}, 'The details element should support :open and :closed.'); + +promise_test(async () => { + const select = document.querySelector('select'); + assert_true(select.matches(':closed'), + ':closed should match when the select is closed.'); + assert_false(select.matches(':open'), + ':open should not match when the select is closed.'); + + await test_driver.click(select); + await new Promise(requestAnimationFrame); + assert_false(select.matches(':closed'), + ':closed should not match when the select is open.'); + assert_true(select.matches(':open'), + ':open should match when the select is open.'); +}, 'The select element should support :open and :closed.'); +</script> |