Tests for tooLong flag with <textarea> elements.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

No maxlength and no value
PASS textarea.validity.tooLong is false


Non-dirty value
PASS textarea.value.length is 5
PASS textarea.validity.tooLong is false
PASS textarea.value.length is 6
PASS textarea.validity.tooLong is false


Dirty value and longer than maxLength
PASS textarea.value.length is 4
PASS textarea.validity.tooLong is true
PASS textarea.validity.tooLong is false


Sets a value via DOM property
PASS textarea.validity.tooLong is false


Disabling makes the control valid
PASS textarea.validity.tooLong is true
PASS textarea.disabled = true; textarea.validity.tooLong is false
PASS textarea.disabled = false; textarea.validity.tooLong is true


Grapheme length is not greater than maxLength though character length is greater
PASS textarea.validity.tooLong is false
PASS textarea.value.length is 3
PASS textarea.validity.tooLong is true


A value set by resetting a form doesn't make tooLong true.
PASS textarea.validity.tooLong is true
PASS textarea.value is "abcdef"
PASS textarea.validity.tooLong is false


A value set by a child node change doesn't make tooLong true.
PASS textarea.validity.tooLong is false
PASS textarea.value is "abcdef"
PASS textarea.validity.tooLong is false


minlength and maxlength together
PASS textarea.validity.tooLong is true
PASS textarea.validity.tooShort is false
PASS textarea.validity.tooLong is false
PASS textarea.validity.tooShort is false
PASS textarea.validity.tooLong is false
PASS textarea.validity.tooShort is true


minlength and maxlength clashing
PASS textarea.validity.tooLong is true
PASS textarea.validity.tooShort is false
PASS textarea.validity.tooLong is true
PASS textarea.validity.tooShort is true
PASS textarea.validity.tooLong is false
PASS textarea.validity.tooShort is true
PASS textarea.validity.tooLong is false
PASS textarea.validity.tooShort is false
PASS successfullyParsed is true

TEST COMPLETE

