multiTouchPointsReleaseFirstPoint.html (1853B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>TestDriver actions: two touch points with one moving one pause</title> 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-actions.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 <script src="touchEvents.js"></script> 10 11 <style> 12 div#test1{ 13 position: fixed; 14 touch-action: none; 15 top: 0; 16 left: 0; 17 width: 100px; 18 height: 100px; 19 background-color: blue; 20 } 21 22 </style> 23 24 <div id="test1"> 25 </div> 26 27 <script> 28 promise_test(async t => { 29 let test1 = document.getElementById("test1"); 30 const events = []; 31 addPointerEventListeners(t, test1, events); 32 33 await new test_driver.Actions() 34 .addPointer("touchPointer1", "touch") 35 .addPointer("touchPointer2", "touch") 36 .pointerMove(0, 0, {origin: test1, sourceName: "touchPointer1"}) 37 .pointerMove(10, 0, {origin: test1, sourceName: "touchPointer2"}) 38 .pointerDown({sourceName: "touchPointer1"}) 39 .pointerDown({sourceName: "touchPointer2"}) 40 .pointerUp({sourceName: "touchPointer1"}) 41 .pointerMove(10, 10, {origin: test1, sourceName: "touchPointer2"}) 42 .pointerUp({sourceName: "touchPointer2"}) 43 .send(); 44 45 const expected = [{type: "pointerdown", pointerId: 2, clientX: 50, clientY: 50}, 46 {type: "pointerdown", pointerId: 3, clientX: 60, clientY: 50}, 47 {type: "pointerup", pointerId: 2}, 48 {type: "pointermove", pointerId: 3, clientX: 60, clientY:60}, 49 {type: "pointerup", pointerId: 3}]; 50 51 assert_equals(events.length, expected.length, "Expected number of events"); 52 for (let i=0; i<expected.length; i++) { 53 eventEquals(events[i], expected[i]); 54 } 55 }); 56 </script>