<html>
<script src="../../resources/js-test-pre.js"></script>
<body style="min-height: 5000px"> 
<span id="elt">&nbsp;</span>

<script>
description('Checks that clicking on scrollbar works when tickmarks are added.');
onload = function()
{
    if (window.testRunner)
        testRunner.dumpAsText();
    var range = document.createRange();
    var elt = document.getElementById('elt');
    range.selectNodeContents(elt);
    if (window.internals) {
        window.internals.addTextMatchMarker(range, true);
    }
    if (window.testRunner)
        testRunner.displayAndTrackRepaints();
    if (window.eventSender) {
        eventSender.mouseMoveTo(window.innerWidth - 1, window.innerHeight - 1);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }
}

onscroll = function()
{
    testPassed('did scroll');
    finishJSTest();
}

var jsTestIsAsync = true;
</script>

<script src="../../resources/js-test-post.js"></script>

</body>
</html>
