summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/selectors/invalidation/user-valid-user-invalid.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/css/selectors/invalidation/user-valid-user-invalid.html
parentInitial commit. (diff)
downloadfirefox-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/invalidation/user-valid-user-invalid.html')
-rw-r--r--testing/web-platform/tests/css/selectors/invalidation/user-valid-user-invalid.html57
1 files changed, 57 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/selectors/invalidation/user-valid-user-invalid.html b/testing/web-platform/tests/css/selectors/invalidation/user-valid-user-invalid.html
new file mode 100644
index 0000000000..bca20fc99c
--- /dev/null
+++ b/testing/web-platform/tests/css/selectors/invalidation/user-valid-user-invalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1477396">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1477392">
+<link rel=help href="https://drafts.csswg.org/selectors/#user-pseudos">
+<link rel=help href="https://html.spec.whatwg.org/#selector-user-valid">
+<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>
+
+<form>
+ <input type=email>
+ <input type=submit>
+</form>
+
+<style>
+input:user-valid {
+ color: rgb(0, 255, 0);
+}
+input:user-invalid {
+ background-color: rgb(255, 0, 0);
+}
+</style>
+
+<script>
+const green = 'rgb(0, 255, 0)';
+const red = 'rgb(255, 0, 0)';
+
+promise_test(async () => {
+ const emailInput = document.querySelector('input[type=email]');
+ assert_not_equals(getComputedStyle(emailInput).color, green,
+ 'Input should not initially match :user-valid.');
+ assert_not_equals(getComputedStyle(emailInput).backgroundColor, red,
+ 'Input should not initially match :user-invalid.');
+
+ emailInput.focus();
+ await test_driver.send_keys(emailInput, 'user');
+ assert_not_equals(getComputedStyle(emailInput).color, green,
+ ':user-valid should not match until after blurring.');
+ assert_not_equals(getComputedStyle(emailInput).backgroundColor, red,
+ ':user-invalid should not match until after blurring.');
+
+ emailInput.blur();
+ assert_not_equals(getComputedStyle(emailInput).color, green,
+ 'Invalid input should not match :user-valid.');
+ assert_equals(getComputedStyle(emailInput).backgroundColor, red,
+ 'Invalid input should match :user-invalid.');
+
+ emailInput.focus();
+ await test_driver.send_keys(emailInput, '@example.com');
+ assert_equals(getComputedStyle(emailInput).color, green,
+ 'Valid input should match :user-valid.');
+ assert_not_equals(getComputedStyle(emailInput).backgroundColor, red,
+ 'Valid input should not match :user-invalid.');
+}, ':user-valid and :user-invalid should invalidate after user input.');
+</script>