touch-target.js revision dcc8cf2e65d1aa555cce12431a16547e66b469ee
1var div1 = document.createElement("div"); 2div1.id = "targetA"; 3div1.style.width = "100px"; 4div1.style.height = "100px"; 5div1.style.backgroundColor = "blue"; 6 7var div2 = document.createElement("div"); 8div2.id = "targetB"; 9div2.style.width = "100px"; 10div2.style.height = "100px"; 11div2.style.backgroundColor = "green"; 12 13var touchStartCount = 0; 14var touchMoveCount = 0; 15 16document.getElementById('targetsDiv').appendChild(div1); 17document.getElementById('targetsDiv').appendChild(document.createElement('br')); 18document.getElementById('targetsDiv').appendChild(div2); 19 20function touchStartHandler() 21{ 22 shouldBeEqualToString('event.type', 'touchstart'); 23 switch (touchStartCount) { 24 case 0: 25 shouldBeEqualToString('event.touches[0].target.id', div1.id); 26 shouldBeEqualToString('event.touches[1].target.id', div2.id); 27 break; 28 case 1: 29 shouldBeEqualToString('event.touches[0].target.id', div2.id); 30 shouldBeEqualToString('event.touches[1].target.id', div1.id); 31 break; 32 } 33 34 touchStartCount++; 35} 36 37function touchMoveHandler() 38{ 39 shouldBeEqualToString('event.type', 'touchmove'); 40 switch (touchMoveCount) { 41 case 0: 42 case 1: 43 shouldBeEqualToString('event.touches[0].target.id', div1.id); 44 shouldBeEqualToString('event.touches[1].target.id', div2.id); 45 break; 46 case 2: 47 shouldBeEqualToString('event.touches[0].target.id', div2.id); 48 shouldBeEqualToString('event.touches[1].target.id', div1.id); 49 break; 50 } 51 52 if (++touchMoveCount == 3) 53 { 54 successfullyParsed = true; 55 layoutTestController.notifyDone(); 56 isSuccessfullyParsed(); 57 } 58} 59 60div1.addEventListener("touchstart", touchStartHandler, false); 61div1.addEventListener("touchmove", touchMoveHandler, false); 62 63div2.addEventListener("touchstart", touchStartHandler, false); 64div2.addEventListener("touchmove", touchMoveHandler, false); 65 66description("Tests that the target of touches match the element where the event originated, not where the touch is currently occurring."); 67 68if (window.layoutTestController) { 69 layoutTestController.waitUntilDone(); 70} 71 72if (window.eventSender) { 73 eventSender.clearTouchPoints(); 74 eventSender.addTouchPoint(50, 150); 75 eventSender.addTouchPoint(50, 250); 76 eventSender.touchStart(); 77 78 eventSender.updateTouchPoint(0, 50, 250); 79 eventSender.updateTouchPoint(1, 50, 150); 80 eventSender.touchMove(); 81 82 eventSender.updateTouchPoint(0, 1000, 1000); 83 eventSender.updateTouchPoint(1, 1000, 1000); 84 eventSender.touchMove(); 85 86 eventSender.releaseTouchPoint(0); 87 eventSender.touchEnd(); 88 89 eventSender.addTouchPoint(50,150); 90 eventSender.touchStart(); 91 92 eventSender.updateTouchPoint(0, 500, 500); 93 eventSender.updateTouchPoint(1, 500, 500); 94 eventSender.touchMove(); 95} else 96 debug('This test requires DRT.'); 97 98