The test verifies if the misspelled underline remains when the caret is moved to the beginning, end and in middle of a word that is marked as misspelled. The test succeeds if the word 'meagesga' has red underline.

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


PASS internals.hasSpellingMarker(7,8) became true
execMoveSelectionBackwardByCharacterCommand()
PASS internals.hasSpellingMarker(7,8) became true
execMoveSelectionBackwardByWordCommand()
PASS internals.hasSpellingMarker(7,8) became true
execMoveSelectionForwardByCharacterCommand()
PASS internals.hasSpellingMarker(7,8) became true
PASS successfullyParsed is true

TEST COMPLETE

