Index: LayoutTests/fast/forms/ValidityState-tooLong-input.html |
diff --git a/LayoutTests/fast/forms/ValidityState-tooLong-input.html b/LayoutTests/fast/forms/ValidityState-tooLong-input.html |
index 8a54fc51efc1fef691ce85688e32131388c9f46c..d46221330d19c615794393bb14a4a477cd616b91 100644 |
--- a/LayoutTests/fast/forms/ValidityState-tooLong-input.html |
+++ b/LayoutTests/fast/forms/ValidityState-tooLong-input.html |
@@ -48,11 +48,20 @@ input.value = 'abcde'; |
shouldBeFalse('input.validity.tooLong'); |
debug(''); |
-debug('Disabled'); |
-input.disabled = true; |
-shouldBeFalse('input.validity.tooLong'); |
-input.disabled = false; |
+debug('Disabling makes the control valid'); |
+input.focus(); |
+input.setSelectionRange(5, 5); // Move the cursor at the end. |
+document.execCommand('delete'); |
+shouldBeTrue('input.validity.tooLong'); |
+shouldBeFalse('input.disabled = true; input.validity.tooLong'); |
+shouldBeTrue('input.disabled = false; input.validity.tooLong'); |
+// FIXME: The grapheme test below doesn't do its job because initial value is |
+// always valid. After making a modificaton to trigger validity check, one can |
+// see that the test would fail, which possibly reveals a code issue. |
+// https://code.google.com/p/chromium/issues/detail?id=421727 |
+// Once this is figured out, implement a similar test in |
+// ValidityState-tooShort-input.html |
debug(''); |
debug('Grapheme length is not greater than maxLength though character length is greater'); |
// fancyX should be treated as 1 grapheme. |
@@ -75,6 +84,46 @@ input.setSelectionRange(5, 5); |
document.execCommand('delete'); |
shouldBeTrue('input.validity.tooLong'); |
shouldBeFalse('input.type = "number"; input.validity.tooLong'); |
+input.type = "text"; |
+ |
+debug(''); |
+debug('minlength and maxlength together'); |
+input.maxLength = 3; |
+input.minLength = 3; |
+input.value = 'abcde'; |
+input.focus(); |
+input.setSelectionRange(5, 5); |
+document.execCommand('delete'); |
+shouldBeTrue('input.validity.tooLong'); |
+shouldBeFalse('input.validity.tooShort'); |
+document.execCommand('delete'); |
+shouldBeFalse('input.validity.tooLong'); |
+shouldBeFalse('input.validity.tooShort'); |
+document.execCommand('delete'); |
+shouldBeFalse('input.validity.tooLong'); |
+shouldBeTrue('input.validity.tooShort'); |
+ |
+debug(''); |
+debug('minlength and maxlength clashing'); |
+input.setAttribute('maxlength', '2'); |
+input.setAttribute('minlength', '4'); |
+input.value = 'abcde'; |
+input.focus(); |
+input.setSelectionRange(5, 5); |
+document.execCommand('delete'); |
+shouldBeTrue('input.validity.tooLong'); |
+shouldBeFalse('input.validity.tooShort'); |
+document.execCommand('delete'); |
+shouldBeTrue('input.validity.tooLong'); |
+shouldBeTrue('input.validity.tooShort'); |
+document.execCommand('delete'); |
+shouldBeFalse('input.validity.tooLong'); |
+shouldBeTrue('input.validity.tooShort'); |
+document.execCommand('delete'); |
+document.execCommand('delete'); |
+shouldBeFalse('input.validity.tooLong'); |
+shouldBeFalse('input.validity.tooShort'); |
+ |
</script> |
</body> |
</html> |