Tests for the validation APIs of output elements.

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


- Ensures whether the willValidate is defined and it always returns false.
PASS typeof output.willValidate is "boolean"
PASS output.willValidate is false
PASS output.willValidate is false
- Ensures validity is always "valid" and validationMessage() always returns an empty string.
PASS output.validationMessage is ""
PASS output.checkValidity() is true
PASS output.validationMessage is ""
PASS output.checkValidity() is true
PASS successfullyParsed is true

TEST COMPLETE
aValue
