<!DOCTYPE html><metacharset="utf-8"><title>TestDriver actions: two touch points with one moving one pause</title><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script><scriptsrc="/resources/testdriver.js"></script><scriptsrc="/resources/testdriver-actions.js"></script><scriptsrc="/resources/testdriver-vendor.js"></script><scriptsrc="touchEvents.js"></script><style>div#test1{position:fixed;touch-action:none;top:0;left:0;width:100px;height:100px;background-color:blue;}</style><divid="test1"></div><script>promise_test(asynct=>{consttest1=document.getElementById("test1");constevents=[];addPointerEventListeners(t,test1,events);constactions=newtest_driver.Actions().addPointer("touchPointer1","touch").addPointer("touchPointer2","touch").pointerMove(0,0,{origin:test1,sourceName:"touchPointer1"}).pointerMove(10,0,{origin:test1,sourceName:"touchPointer2"}).pointerDown({sourceName:"touchPointer1"}).pointerDown({sourceName:"touchPointer2"}).pointerMove(0,10,{origin:test1,sourceName:"touchPointer1"}).pointerUp({sourceName:"touchPointer1"}).pointerUp({sourceName:"touchPointer2"});awaitactions.send()eventEquals(events[0],{type:"pointerdown",pointerId:2,clientX:50,clientY:50});eventEquals(events[1],{type:"pointerdown",pointerId:3,clientX:60,clientY:50});// Allow one or two pointermove eventsletindex=3;constmoveEvents=[events[2]];if(events[3].type==="pointermove"){index+=1;moveEvents.push(events[3]);}for(consteventofmoveEvents){if(event.pointerId===2){eventEquals(event,{type:"pointermove",clientX:50,clientY:60});}else{eventEquals(event,{type:"pointermove",pointerId:3,clientX:60,clientY:50});}}letremainingEvents=events.slice(index);assert_equals(remainingEvents.length,2);eventEquals(remainingEvents[0],{type:"pointerup",pointerId:2,clientX:50,clientY:60});eventEquals(remainingEvents[1],{type:"pointerup",pointerId:3,clientX:60,clientY:50});});</script>