This test performs some simple check on the formnovalidate attribute.

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


PASS i.hasAttribute('formNoValidate') is false
PASS i.getAttribute('formNoValidate') is null
PASS i.formNoValidate is false
PASS b.hasAttribute('formNoValidate') is false
PASS b.getAttribute('formNoValidate') is null
PASS b.formNoValidate is false
PASS i.hasAttribute('formNoValidate') is true
PASS i.getAttribute('formNoValidate') is ''
PASS i.formNoValidate is true
PASS b.hasAttribute('formNoValidate') is true
PASS b.getAttribute('formNoValidate') is ''
PASS b.formNoValidate is true
PASS i.hasAttribute('formNoValidate') is false
PASS i.getAttribute('formNoValidate') is null
PASS i.formNoValidate is false
PASS b.hasAttribute('formNoValidate') is false
PASS b.getAttribute('formNoValidate') is null
PASS b.formNoValidate is false
PASS i2.formNoValidate is false
PASS i2.hasAttribute('formNoValidate') is true
PASS i2.getAttribute('formNoValidate') is ''
PASS i2.formNoValidate is true
PASS successfullyParsed is true

TEST COMPLETE

