pointerevent_auxclick_is_a_pointerevent.html (3227B)
1 <!DOCTYPE HTML> 2 <title>auxclick is a PointerEvent</title> 3 <meta name="variant" content="?mouse"> 4 <meta name="variant" content="?pen"> 5 <!-- TODO: Does any platform support auxclick with touch? --> 6 <link rel="help" href="https://github.com/w3c/pointerevents/pull/317"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="/resources/testdriver.js"></script> 10 <script src="/resources/testdriver-actions.js"></script> 11 <script src="/resources/testdriver-vendor.js"></script> 12 <script src="pointerevent_support.js"></script> 13 14 <input id="target" style="margin: 20px"> 15 16 <script> 17 'use strict'; 18 const target = document.getElementById("target"); 19 const pointer_type = location.search.substring(1); 20 const test_pointer = pointer_type + "TestPointer"; 21 22 function assertAuxclickProperties(auxclick_event, pointerdown_event) { 23 assert_equals(auxclick_event.constructor, window.PointerEvent, 24 "auxclick should use a PointerEvent constructor"); 25 assert_true(auxclick_event instanceof PointerEvent, 26 "auxclick should be a PointerEvent"); 27 assert_not_equals(auxclick_event.pointerId, -1, 28 "auxclick.pointerId should not be -1"); 29 assert_equals(auxclick_event.pointerType, pointer_type, 30 "auxclick.pointerType should match test action pointerType"); 31 assert_equals(auxclick_event.composed, true, 32 "auxclick.composed should be true"); 33 34 if (pointerdown_event) { 35 assert_equals(auxclick_event.pointerId, pointerdown_event.pointerId, 36 "auxclick.pointerId should match pointerdown.pointerId"); 37 } 38 } 39 40 promise_test(async test => { 41 let actions = new test_driver.Actions(); 42 actions = actions 43 .addPointer(test_pointer, pointer_type) 44 .pointerMove(0,0, {origin:target, sourceName:test_pointer}) 45 .pointerDown({button:actions.ButtonType.MIDDLE, sourceName:test_pointer}) 46 .pointerUp({button:actions.ButtonType.MIDDLE, sourceName:test_pointer}); 47 let pointerdown_prevented = preventDefaultPointerdownOnce(target, test); 48 let pointerdown_promise = getEvent("pointerdown", target, test); 49 let auxclick_promise = getEvent("auxclick", target, test); 50 51 await actions.send(); 52 await pointerdown_prevented; 53 let pointerdown_event = await pointerdown_promise; 54 let auxclick_event = await auxclick_promise; 55 56 assertAuxclickProperties(auxclick_event, pointerdown_event); 57 }, "auxclick using " + pointer_type + " is a PointerEvent with correct properties"); 58 59 promise_test(async test => { 60 let actions = new test_driver.Actions(); 61 actions = actions 62 .addPointer(test_pointer, pointer_type) 63 .pointerMove(0,0, {origin:target, sourceName:test_pointer}) 64 .pointerDown({button:actions.ButtonType.MIDDLE, sourceName:test_pointer}) 65 .pointerUp({button:actions.ButtonType.MIDDLE, sourceName:test_pointer}); 66 let auxclick_promise = getEvent("auxclick", target, test); 67 68 await actions.send(); 69 let auxclick_event = await auxclick_promise; 70 71 assertAuxclickProperties(auxclick_event); 72 }, "auxclick using " + pointer_type + " is a PointerEvent with correct properties" 73 + " when no other PointerEvent listeners are present"); 74 </script>