Tests the spellcheck attribute.

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


PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is initialExpectation
PASS target.spellcheck is lastExpectation
PASS target.getAttribute('spellcheck') is lastAttributeExpectation
PASS target.spellcheck is true
FAIL target.getAttribute('spellcheck') should be true (of type string). Was null (of type object).
PASS target.spellcheck is false
PASS target.getAttribute('spellcheck') is 'false'
PASS target.spellcheck is true
PASS target.getAttribute('spellcheck') is 'true'
PASS target.spellcheck is true
PASS target.getAttribute('spellcheck') is 'TRUE'
PASS target.spellcheck is true
PASS target.getAttribute('spellcheck') is 'INVALID'
PASS successfullyParsed is true

TEST COMPLETE

