This test ensures that modifying the selection by line boundary granularity (like home/end do) functions properly in an inline editable context.
You can run this test manually by placing the caret in the middle of the both of the shaded editable spans below and ensuring home/end (command left/right on Mac) moves the caret to the boundaries of the shaded area.

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


PASS Modify moving forward in adjacent, editable spans
PASS Modify moving backward in adjacent, editable spans
PASS Modify moving forward in editable span in non-editable content
PASS Modify moving backward in editable span in non-editable content
PASS successfullyParsed is true

TEST COMPLETE

