multiTouchPointsWithPause.html (2278B)
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 29 promise_test(async t => { 30 const test1 = document.getElementById("test1"); 31 const events = []; 32 addPointerEventListeners(t, test1, events); 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 .pause(0, "pointer", {sourceName: "touchPointer1"}) 41 .pointerMove(0, 10, {origin: test1, sourceName: "touchPointer2"}) 42 .pointerUp({sourceName: "touchPointer1"}) 43 .pointerUp({sourceName: "touchPointer2"}) 44 .send(); 45 46 eventEquals(events[0], {type: "pointerdown", pointerId: 2, clientX: 50, clientY: 50}); 47 eventEquals(events[1], {type: "pointerdown", pointerId: 3, clientX: 60, clientY: 50}); 48 // Allow one or two pointermove events 49 let index = 3; 50 const moveEvents = [events[2]]; 51 if (events[3].type === "pointermove") { 52 index += 1; 53 moveEvents.push(events[3]); 54 } 55 for (const event of moveEvents) { 56 if (event.pointerId === 2) { 57 eventEquals(event, {type: "pointermove", clientX: 50, clientY: 50}); 58 } else { 59 eventEquals(event, {type: "pointermove", pointerId: 3, clientX: 50, clientY: 60}); 60 } 61 } 62 let remainingEvents = events.slice(index); 63 assert_equals(remainingEvents.length, 2); 64 eventEquals(remainingEvents[0], {type: "pointerup", pointerId: 2, clientX: 50, clientY: 50}); 65 eventEquals(remainingEvents[1], {type: "pointerup", pointerId: 3, clientX: 50, clientY: 60}); 66 }); 67 </script>