<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="resources/link-highlight-style.css">
<script src="resources/link-highlight-helper.js"></script>
<script>
function runTest() {
    useMockHighlight();

    var clientRect = document.getElementById('targetLink').getBoundingClientRect();
    x = (clientRect.left + clientRect.right) / 2;
    y = (clientRect.top + clientRect.bottom) / 2;
    if (window.testRunner)
        testRunner.waitUntilDone();

    if (window.eventSender) {
        eventSender.gestureShowPress(x, y);
        window.setTimeout(function() { testRunner.notifyDone(); }, 0);
    } else {
        debug("This test requires DumpRenderTree.");
    }
}
</script>
</head>
<body onload="runTest();">
<div style="will-change: transform; position: relative; left: 10; top: 40">
<a class="opaqueHighlight" href="" id="targetLink">Target Link.</a>
</div>
<div style="position: relative; left: 10; top: 70">
This test is successful if "Target Link" above is covered in a green rectangle with square corners.
</div>
</body>
</html>
