| OLD | NEW |
| (Empty) | |
| 1 <script src='../../../../../resources/js-test.js'></script> |
| 2 <style> |
| 3 iframe { |
| 4 width: 300px; |
| 5 height: 300px; |
| 6 top: 100px; |
| 7 left: 50px; |
| 8 border: 0; |
| 9 position: absolute; |
| 10 background: green; |
| 11 } |
| 12 #outerFrame { |
| 13 width: 500px; |
| 14 height: 500px; |
| 15 background: blue; |
| 16 } |
| 17 </style> |
| 18 |
| 19 <div id='outerFrame'> |
| 20 <iframe id='innerFrameElement' srcdoc=" |
| 21 <body id='innerFrame' style='height:500px; width: 500px; padding: 0; margin: 0
;'> |
| 22 <script> |
| 23 top.document.testEventList.forEach(function(eventName) { |
| 24 document.documentElement.addEventListener(eventName, function(event) { |
| 25 top.document.events.push(event); |
| 26 }); |
| 27 }); |
| 28 </script> |
| 29 </body>"> |
| 30 </iframe> |
| 31 </div> |
| 32 |
| 33 <div id='console'></div> |
| 34 |
| 35 <script> |
| 36 var outerFrameX = 20; |
| 37 var outerFrameY = 20; |
| 38 var innerFrameX = 200; |
| 39 var innerFrameY = 200; |
| 40 |
| 41 document.testEventList = ['pointerup', 'pointerdown', 'pointermove', 'gotpointer
capture', 'lostpointercapture', 'pointercancel', |
| 42 'touchstart', 'touchmove', 'touchend']; |
| 43 document.testEventList.forEach(function(eventName) { |
| 44 document.getElementById('outerFrame').addEventListener(eventName, function(eve
nt) { |
| 45 document.events.push(event); |
| 46 }); |
| 47 }); |
| 48 |
| 49 var attributes = [ |
| 50 'target' |
| 51 ]; |
| 52 |
| 53 document.events = []; |
| 54 |
| 55 function testScenario(firstFingerInitFrame, secondFingerInitFrame) { |
| 56 var firstFingerX1 = firstFingerInitFrame == "innerFrame" ? innerFrameX : outer
FrameX; |
| 57 var firstFingerY1 = firstFingerInitFrame == "innerFrame" ? innerFrameY : outer
FrameY; |
| 58 var firstFingerX2 = firstFingerInitFrame == "outerFrame" ? innerFrameX : outer
FrameX; |
| 59 var firstFingerY2 = firstFingerInitFrame == "outerFrame" ? innerFrameY : outer
FrameY; |
| 60 var secondFingerX1 = secondFingerInitFrame == "innerFrame" ? innerFrameX : out
erFrameX; |
| 61 var secondFingerY1 = secondFingerInitFrame == "innerFrame" ? innerFrameY : out
erFrameY; |
| 62 var secondFingerX2 = secondFingerInitFrame == "outerFrame" ? innerFrameX : out
erFrameX; |
| 63 var secondFingerY2 = secondFingerInitFrame == "outerFrame" ? innerFrameY : out
erFrameY; |
| 64 var firstFingerFinalFrame = (firstFingerInitFrame == 'innerFrame') ? 'outerFra
me' : 'innerFrame'; |
| 65 var secondFingerFinalFrame = (secondFingerInitFrame == 'innerFrame') ? 'outerF
rame' : 'innerFrame'; |
| 66 |
| 67 debug('==== Finger1 in ' + firstFingerInitFrame + ' and Finger2 in ' + secondF
ingerInitFrame + ' ===='); |
| 68 debug('*** Put first finger down in ' + firstFingerInitFrame + ' and move ***'
); |
| 69 eventSender.addTouchPoint(firstFingerX1, firstFingerY1); |
| 70 eventSender.touchStart(); |
| 71 eventSender.updateTouchPoint(0, firstFingerX1, firstFingerY1); |
| 72 eventSender.touchMove(); |
| 73 dumpEvents(); |
| 74 |
| 75 debug('*** Put second finger in ' + secondFingerInitFrame + ' and move ***'); |
| 76 eventSender.addTouchPoint(secondFingerX1, secondFingerY1); |
| 77 eventSender.touchStart(); |
| 78 eventSender.updateTouchPoint(1, secondFingerX1, secondFingerY1); |
| 79 eventSender.touchMove(); |
| 80 dumpEvents(); |
| 81 |
| 82 debug('*** Move first finger to ' + firstFingerFinalFrame + ' ***'); |
| 83 eventSender.updateTouchPoint(0, firstFingerX2, firstFingerY2); |
| 84 eventSender.touchMove(); |
| 85 dumpEvents(); |
| 86 |
| 87 debug('*** Move second finger to ' + secondFingerFinalFrame + ' ***'); |
| 88 eventSender.updateTouchPoint(1, secondFingerX2, secondFingerY2); |
| 89 eventSender.touchMove(); |
| 90 dumpEvents(); |
| 91 |
| 92 debug('*** Releasing fingers ***'); |
| 93 eventSender.releaseTouchPoint(0); |
| 94 eventSender.releaseTouchPoint(1); |
| 95 eventSender.touchEnd(); |
| 96 dumpEvents(); |
| 97 } |
| 98 |
| 99 function runTests() { |
| 100 testScenario('innerFrame', 'outerFrame'); |
| 101 testScenario('outerFrame', 'innerFrame'); |
| 102 testScenario('innerFrame', 'innerFrame'); |
| 103 testScenario('outerFrame', 'outerFrame'); |
| 104 testRunner.notifyDone(); |
| 105 } |
| 106 |
| 107 function dumpEvents() |
| 108 { |
| 109 document.events.forEach(function(event) { |
| 110 if (event.type.includes('pointer')) { |
| 111 debug(event.target.id + ' recieved ' + event.type + ' with id=' + event.po
interId); |
| 112 } else if (event.type.startsWith('touch')) { |
| 113 debug(event.type + ' is recieved with changedTouches.length=' + event.chan
gedTouches.length + ':'); |
| 114 for(var i=0; i<event.changedTouches.length; i++) { |
| 115 debug(' Touch with id=' + event.changedTouches[i].identifier + ' with t
arget = ' + event.changedTouches[i].target.id); |
| 116 } |
| 117 } |
| 118 }); |
| 119 debug(''); |
| 120 document.events = []; |
| 121 } |
| 122 |
| 123 if (window.eventSender) { |
| 124 testRunner.waitUntilDone(); |
| 125 window.onload = runTests; |
| 126 } else |
| 127 debug('This test requires eventSender'); |
| 128 |
| 129 description("This test verifies touch and corresponding pointerevent targets ins
ide and outside the iframe."); |
| 130 |
| 131 </script> |
| 132 |
| OLD | NEW |