chromium/third_party/blink/web_tests/fast/forms/range/range-keyboard-oninput-event.html

<html>
<head>
<script src="../../../resources/js-test.js"></script>
</head>
<body>
<input type="range" id="slider" oninput="log(event)" onchange="log(event)"  min=0 max=100 value=50>
<script>
    description('Test that for each keyboard event both input and change event are dispatched');
    var changeEventCounter = 0;
    var lastChangeEventCounter = changeEventCounter;
    var inputEventCounter = 0;
    var lastInputEventCounter = inputEventCounter;

    function log(event) {
        if (event.type == 'input')
           inputEventCounter++;
        if (event.type == 'change')
            changeEventCounter++;
    }

    function testInput() {
        var slider = document.getElementById('slider');
        if (window.testRunner) {
            // slider drag
            slider.focus();
            debug('Move left');
            eventSender.keyDown('ArrowLeft');
            shouldBeGreaterThanOrEqual('inputEventCounter' , 'lastInputEventCounter + 1');
            shouldBeGreaterThanOrEqual('changeEventCounter', 'lastChangeEventCounter + 1');
            debug('Move right');
            lastInputEventCounter = inputEventCounter;
            lastChangeEventCounter = changeEventCounter;
            eventSender.keyDown('ArrowRight');
            shouldBeGreaterThanOrEqual('inputEventCounter' , 'lastInputEventCounter + 1');
            shouldBeGreaterThanOrEqual('changeEventCounter', 'lastChangeEventCounter + 1');
        }
    }
    testInput();
</script>
</body>
</html>