




Ensure hit test cache works in correct scenarios of scrolling, dom and style changes.

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

PASS successfullyParsed is true

TEST COMPLETE

PASS successfullyParsed is true

TEST COMPLETE

Hit test main div
---------------------
PASS document.elementFromPoint(60,60) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 60, 60, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0
PASS document.elementFromPoint(60,60) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 60, 60, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 1

Hit test fixed div after scroll
---------------------
PASS document.elementFromPoint(12,12) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 12, 12, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0
PASS document.elementFromPoint(12,12) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 12, 12, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0
PASS document.lastHitNode is document.elementFromPoint(12, 12)

Hit test after main frame scroll
---------------------
PASS document.elementFromPoint(60,75) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 60, 75, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0
PASS document.elementFromPoint(60,25) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 60, 25, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0
PASS document.lastHitNode is document.elementFromPoint(60, 25)

Hit test after style change
---------------------
PASS document.elementFromPoint(12,12) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 12, 12, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0
PASS document.elementFromPoint(12,12) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 12, 12, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0

Hit test after dom manipulation
---------------------
PASS document.elementFromPoint(12,12) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 12, 12, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0
PASS document.elementFromPoint(12,12) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 12, 12, false, false)
PASS hitTestCountDelta() is 2
PASS hitTestCacheHitsDelta() is 0

Hit test iframe; ensuring child co-ordinates are not in parent cache
---------------------
PASS internals.elementFromPoint(document, 25, 80, false, true) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 25, 80, false, true)
PASS internals.elementFromPoint(document, 15, 40, false, true) is internals.clearHitTestCache(document); internals.elementFromPoint(document, 15, 40, false, true)
PASS successfullyParsed is true

TEST COMPLETE


