This test performs some simple check on the noValidate attribute.

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


PASS f.hasAttribute('noValidate') is false
PASS f.getAttribute('noValidate') is null
PASS f.noValidate is false
PASS f.hasAttribute('noValidate') is true
PASS f.getAttribute('noValidate') is ''
PASS f.noValidate is true
PASS f.hasAttribute('noValidate') is false
PASS f.getAttribute('noValidate') is null
PASS f.noValidate is false
PASS f2.hasAttribute('noValidate') is true
PASS f2.getAttribute('noValidate') is ''
PASS f2.noValidate is true
PASS f2.noValidate is false
PASS f2.hasAttribute('noValidate') is true
PASS f2.getAttribute('noValidate') is ''
PASS f2.noValidate is true
PASS successfullyParsed is true

TEST COMPLETE

