<html>
<head>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

function runTest()
{
    if (!window.eventSender)
        return;
    var area = document.getElementById('area');
    var x = area.offsetLeft + area.offsetWidth / 2;
    var y = area.offsetTop + area.offsetHeight / 2;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseScrollBy(0, 0);
}
</script>
</head>
<body onload="runTest()">
    <p id="description">Ensures that a mouse scrolling with (deltaX=0, deltaY=0) doesn't crash the browser.
    <p>Passes if doesn't crash.
    <div id="area" style="width:100px;height:100px">
    </div>
</body>
</html>
