<html>
    <head>
        <script>
            function log(msg)
            {
                var res = document.getElementById('res');
                res.innerHTML = res.innerHTML + msg + "<br>";
            }
            function test()
            {
                var slider = document.getElementById('slider');
                if (window.layoutTestController) {
                    layoutTestController.dumpAsText();
                    eventSender.mouseMoveTo(slider.offsetLeft + 7, slider.offsetTop + 7);
                    eventSender.mouseDown();
                    eventSender.mouseMoveTo(slider.offsetLeft + 50, slider.offsetTop + 50);
                    eventSender.mouseUp();
                }
            }
        </script>
    </head>
    <body onload="test()">
        This tests that slider controls get mousedown, mousemove, input, and mouseup events.<br>
        <input type="range" id="slider" onmousedown="log('mousedown')" onmouseup="log('mouseup')" onmousemove="log('mousemove')" oninput="log('input')" value=0>
        <div id="res"></div>
    </body>
</html>
