chromium/third_party/blink/web_tests/fast/events/touch/gesture/gesture-tap-paragraph-end.html

<!DOCTYPE HTML>
<script src="../../../../resources/js-test.js"></script>
<style>
</style>
<p id=target>Tap to the<br><span id=span>right:</span></p>
<div id=console></div>
<script>
var event;
function eventLogger(e) {
    debug("Received " + e.type + " on " + (e.target.id || e.target.nodeName));
    event = e;
    shouldBeEqualToString("event.target.id", "target");
    shouldBeEqualToString("document.elementFromPoint(event.clientX, event.clientY).id", "target");
}

description("Verifies that tapping in the whitespace at the end of a paragraph sends mouse events properly to the paragraph node (even though there are no text line boxes here).  http://crbug.com/398205");

// Tap at the far right edge of a paragraph.
var rect = target.getBoundingClientRect();
var point = {
    x: rect.right - 50,
    y: rect.bottom - 5 
};

// This should be inside the paragraph but outside the span
shouldBeGreaterThan("point.x", "span.getBoundingClientRect().right");
shouldBeEqualToString("document.elementFromPoint(point.x, point.y).id", "target");

document.addEventListener('mousemove', eventLogger);
document.addEventListener('mousedown', eventLogger);
document.addEventListener('mouseup', eventLogger);
document.addEventListener('click', eventLogger);

if (window.eventSender) {
    debug("Sending GestureTapDown");
    eventSender.gestureTapDown(point.x, point.y, 30, 30);

    debug("Sending GestureShowPress");
    eventSender.gestureShowPress(point.x, point.y, 30, 30);

    debug("Sending GestureTap");
    eventSender.gestureTap(point.x, point.y, 1, 30, 30);
} else {
    debug("This test requires eventSender");
}
</script>