Tests if the spellchecker behavior change after the spellcheck attribute changed by the script.

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


PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS target.spellcheck is true
PASS internals.hasSpellingMarker(6, 2) became true
PASS target.spellcheck is false
PASS internals.hasSpellingMarker(6, 2) became false
PASS successfullyParsed is true

TEST COMPLETE

