diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/selectors/pseudo-classes/invalid-after-clone.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/selectors/pseudo-classes/invalid-after-clone.html | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/invalid-after-clone.html b/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/invalid-after-clone.html new file mode 100644 index 0000000000..92345602a8 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/invalid-after-clone.html @@ -0,0 +1,28 @@ +<!doctype html> +<meta charset="utf-8"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<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> +<input> +<textarea></textarea> +<script> +promise_test(async () => { + for (let tag of ["input", "textarea"]) { + let element = document.querySelector(tag); + await test_driver.send_keys(element, 'something'); + + assert_true(element.validity.valid, tag + ' should be valid'); + + element.maxLength = 0; + assert_true(element.matches(":invalid"), tag + ' should match :invalid'); + assert_false(element.validity.valid, tag + ' should be invalid'); + + let clone = element.cloneNode(true); + assert_true(clone.matches(":invalid"), tag + ' clone should match :invalid'); + assert_false(clone.validity.valid, tag + 'clone should be invalid'); + } +}, 'Cloned invalid inputs / textareas with interactive changes get their validity state copied correctly'); +</script> |