The test verifies if the spelling markers remain if a whitespace is added before or after the misspelled word. 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(expectedMisspelledPosition, 8) became true

execMoveSelectionBackwardByWordCommand()
typeCharacterCommand(' ')
PASS internals.hasSpellingMarker(expectedMisspelledPosition, 8) became true

execMoveSelectionBackwardByCharacterCommand()
typeCharacterCommand(' ')
PASS internals.hasSpellingMarker(expectedMisspelledPosition, 8) became true

PASS successfullyParsed is true

TEST COMPLETE

