<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1286509 --> <head> <meta charset="utf-8"> <title>Test for Bug 1286509</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1286509">Mozilla Bug 1286509</a> <p id="display"></p> <div id="content"> <input type="range" id="test_input" min="0" max="10" value="5"> </div> <pre id="test"> <script type="application/javascript"> /** Test for Bug 1286509 **/ SimpleTest.waitForExplicitFinish(); var expectedEventSequence = ['keydown', 'change', 'keyup']; var eventCounts = {}; var expectedEventIdx = 0; function test() { var range = document.getElementById("test_input"); range.focus(); expectedEventSequence.forEach((eventName) => { eventCounts[eventName] = 0; range.addEventListener(eventName, (e) => { ++eventCounts[eventName]; is(expectedEventSequence[expectedEventIdx], e.type, "Events sequence should be keydown, change, keyup"); expectedEventIdx = (expectedEventIdx + 1) % 3; }, false); }); synthesizeKey("VK_UP", {}); synthesizeKey("VK_DOWN", {}); synthesizeKey("VK_LEFT", {}); synthesizeKey("VK_RIGHT", {}); is(eventCounts['change'], 4, "Expect key up/down/left/right should trigger range input to fire change events"); SimpleTest.finish(); } addLoadEvent(test); </script> </pre> </body> </html>