diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/css/selectors/user-valid.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/selectors/user-valid.html')
-rw-r--r-- | testing/web-platform/tests/css/selectors/user-valid.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/selectors/user-valid.html b/testing/web-platform/tests/css/selectors/user-valid.html new file mode 100644 index 0000000000..12b89282c3 --- /dev/null +++ b/testing/web-platform/tests/css/selectors/user-valid.html @@ -0,0 +1,55 @@ +<!doctype html> +<title>Support for the :user-valid pseudo-class</title> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="help" href="https://drafts.csswg.org/selectors/#user-pseudos"> +<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> + +<style> +input { + border: 2px solid black; +} + +input:user-valid { + border-color: green; +} + +input:user-invalid { + border-color: red; +} +</style> + +<input id="initially-valid" type="email"> + +<script> +promise_test(async () => { + const input = document.querySelector("#initially-valid"); + assert_true(input.validity.valid); + // The selector can't match because no interaction has happened. + assert_false(input.matches(':user-valid')); + + assert_false(input.matches(":user-valid"), "Initially does not match :user-valid"); + assert_false(input.matches(":user-invalid"), "Initially does not match :user-invalid"); + + await test_driver.click(input); + input.blur(); + + assert_false(input.matches(":user-valid"), "No change happened, still does not match :user-valid"); + assert_false(input.matches(":user-invalid"), "No change happened, still does not match :user-invalid"); + + await test_driver.click(input); + await test_driver.send_keys(input, "test@example.com"); + input.blur(); + + assert_true(input.matches(":user-valid"), "Typed a valid email, :user-valid now matches"); + assert_false(input.matches(":user-invalid"), "Typed a valid email, :user-invalid does not match"); + + input.required = true; + input.value = ""; + + assert_false(input.matches(":user-valid"), "Cleared required input, :user-valid no longer matches"); + assert_true(input.matches(":user-invalid"), "Cleared required input, :user-invalid now matches"); +}, ":user-valid selector should respond to user action"); +</script> |