pointerevent_mouseevent_key_pressed.html (2129B)
1 <!DOCTYPE html> 2 <title>Pointer events correctly show the modifier keys pressed</title> 3 <link rel="author" title="Google" href="http://www.google.com/" /> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testdriver.js"></script> 7 <script src="/resources/testdriver-vendor.js"></script> 8 <script src="/resources/testdriver-actions.js"></script> 9 <script type="text/javascript" src="../pointerevent_support.js"></script> 10 <style> 11 #target { 12 width: 100px; 13 height: 100px; 14 } 15 </style> 16 <body> 17 <div id="target"></div> 18 </body> 19 <script> 20 "use strict"; 21 22 const target = document.getElementById("target"); 23 24 const Modifiers = { 25 "Shift" : '\uE008', 26 "Control" : '\uE009', 27 "Alt" : '\uE00A', 28 "Meta" : '\uE03D' 29 }; 30 31 function testModifierList(modifier_list) { 32 promise_test(async test => { 33 let pointermove_promise = getEvent("pointermove", target, test); 34 35 let actions = new test_driver.Actions(); 36 for (let modifier of modifier_list) { 37 actions = actions.keyDown(Modifiers[modifier]); 38 } 39 // Move the pointer off the center of "target" in case the pointer was 40 // hovering at that position before the test started. 41 actions = actions.pointerMove(0, 0, {origin:target}) 42 .pointerMove(10, 10, {origin:target}); 43 for (let modifier of modifier_list) { 44 actions = actions.keyUp(Modifiers[modifier]); 45 } 46 47 await actions.send(); 48 let pointermove_event = await pointermove_promise; 49 50 for (let modifier of Object.keys(Modifiers)) { 51 let actual = pointermove_event.getModifierState(modifier); 52 let expected = modifier_list.includes(modifier); 53 assert_equals(actual, expected, `getModifierState(${modifier})`); 54 } 55 }, `Pointer events correctly show ${modifier_list.join()} pressed`); 56 } 57 58 window.onload = () => { 59 testModifierList(["Alt"]); 60 testModifierList(["Control"]); 61 testModifierList(["Meta"]); 62 testModifierList(["Shift"]); 63 testModifierList(["Alt", "Control", "Meta", "Shift"]); 64 } 65 </script>