Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Hittest for the vertical mode needs updating after fixing this: Text does not get truncated properly in vertical writing mode when overflow:hidden and text-overflow:ellipsis are set

PASS document.elementFromPoint(inputLeft + 10, inputTop).id is 'right-floating-input'
PASS document.elementFromPoint(inputLeft - 10, inputTop).id is 'container-ltr'
PASS document.elementFromPoint(inputRight - 10, inputTop).id is 'left-floating-input'
PASS document.elementFromPoint(inputRight + 10, inputTop).id is 'container-rtl'
PASS document.elementFromPoint(inputRight - 10, inputTop).id is 'container-vertical-rl'
PASS document.elementFromPoint(inputRight, inputTop - 10).id is 'container-vertical-rl'
PASS successfullyParsed is true

TEST COMPLETE

