| Index: third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html
|
| diff --git a/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html b/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..29bcac73ca6398b2806d59e672e82b22e967fd63
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html
|
| @@ -0,0 +1,132 @@
|
| +<script src='../../../../../resources/js-test.js'></script>
|
| +<style>
|
| +iframe {
|
| + width: 300px;
|
| + height: 300px;
|
| + top: 100px;
|
| + left: 50px;
|
| + border: 0;
|
| + position: absolute;
|
| + background: green;
|
| +}
|
| +#outerFrame {
|
| + width: 500px;
|
| + height: 500px;
|
| + background: blue;
|
| +}
|
| +</style>
|
| +
|
| +<div id='outerFrame'>
|
| +<iframe id='innerFrameElement' srcdoc="
|
| + <body id='innerFrame' style='height:500px; width: 500px; padding: 0; margin: 0;'>
|
| + <script>
|
| + top.document.testEventList.forEach(function(eventName) {
|
| + document.documentElement.addEventListener(eventName, function(event) {
|
| + top.document.events.push(event);
|
| + });
|
| + });
|
| + </script>
|
| + </body>">
|
| +</iframe>
|
| +</div>
|
| +
|
| +<div id='console'></div>
|
| +
|
| +<script>
|
| +var outerFrameX = 20;
|
| +var outerFrameY = 20;
|
| +var innerFrameX = 200;
|
| +var innerFrameY = 200;
|
| +
|
| +document.testEventList = ['pointerup', 'pointerdown', 'pointermove', 'gotpointercapture', 'lostpointercapture', 'pointercancel',
|
| + 'touchstart', 'touchmove', 'touchend'];
|
| +document.testEventList.forEach(function(eventName) {
|
| + document.getElementById('outerFrame').addEventListener(eventName, function(event) {
|
| + document.events.push(event);
|
| + });
|
| +});
|
| +
|
| +var attributes = [
|
| + 'target'
|
| +];
|
| +
|
| +document.events = [];
|
| +
|
| +function testScenario(firstFingerInitFrame, secondFingerInitFrame) {
|
| + var firstFingerX1 = firstFingerInitFrame == "innerFrame" ? innerFrameX : outerFrameX;
|
| + var firstFingerY1 = firstFingerInitFrame == "innerFrame" ? innerFrameY : outerFrameY;
|
| + var firstFingerX2 = firstFingerInitFrame == "outerFrame" ? innerFrameX : outerFrameX;
|
| + var firstFingerY2 = firstFingerInitFrame == "outerFrame" ? innerFrameY : outerFrameY;
|
| + var secondFingerX1 = secondFingerInitFrame == "innerFrame" ? innerFrameX : outerFrameX;
|
| + var secondFingerY1 = secondFingerInitFrame == "innerFrame" ? innerFrameY : outerFrameY;
|
| + var secondFingerX2 = secondFingerInitFrame == "outerFrame" ? innerFrameX : outerFrameX;
|
| + var secondFingerY2 = secondFingerInitFrame == "outerFrame" ? innerFrameY : outerFrameY;
|
| + var firstFingerFinalFrame = (firstFingerInitFrame == 'innerFrame') ? 'outerFrame' : 'innerFrame';
|
| + var secondFingerFinalFrame = (secondFingerInitFrame == 'innerFrame') ? 'outerFrame' : 'innerFrame';
|
| +
|
| + debug('==== Finger1 in ' + firstFingerInitFrame + ' and Finger2 in ' + secondFingerInitFrame + ' ====');
|
| + debug('*** Put first finger down in ' + firstFingerInitFrame + ' and move ***');
|
| + eventSender.addTouchPoint(firstFingerX1, firstFingerY1);
|
| + eventSender.touchStart();
|
| + eventSender.updateTouchPoint(0, firstFingerX1, firstFingerY1);
|
| + eventSender.touchMove();
|
| + dumpEvents();
|
| +
|
| + debug('*** Put second finger in ' + secondFingerInitFrame + ' and move ***');
|
| + eventSender.addTouchPoint(secondFingerX1, secondFingerY1);
|
| + eventSender.touchStart();
|
| + eventSender.updateTouchPoint(1, secondFingerX1, secondFingerY1);
|
| + eventSender.touchMove();
|
| + dumpEvents();
|
| +
|
| + debug('*** Move first finger to ' + firstFingerFinalFrame + ' ***');
|
| + eventSender.updateTouchPoint(0, firstFingerX2, firstFingerY2);
|
| + eventSender.touchMove();
|
| + dumpEvents();
|
| +
|
| + debug('*** Move second finger to ' + secondFingerFinalFrame + ' ***');
|
| + eventSender.updateTouchPoint(1, secondFingerX2, secondFingerY2);
|
| + eventSender.touchMove();
|
| + dumpEvents();
|
| +
|
| + debug('*** Releasing fingers ***');
|
| + eventSender.releaseTouchPoint(0);
|
| + eventSender.releaseTouchPoint(1);
|
| + eventSender.touchEnd();
|
| + dumpEvents();
|
| +}
|
| +
|
| +function runTests() {
|
| + testScenario('innerFrame', 'outerFrame');
|
| + testScenario('outerFrame', 'innerFrame');
|
| + testScenario('innerFrame', 'innerFrame');
|
| + testScenario('outerFrame', 'outerFrame');
|
| + testRunner.notifyDone();
|
| +}
|
| +
|
| +function dumpEvents()
|
| +{
|
| + document.events.forEach(function(event) {
|
| + if (event.type.includes('pointer')) {
|
| + debug(event.target.id + ' recieved ' + event.type + ' with id=' + event.pointerId);
|
| + } else if (event.type.startsWith('touch')) {
|
| + debug(event.type + ' is recieved with changedTouches.length=' + event.changedTouches.length + ':');
|
| + for(var i=0; i<event.changedTouches.length; i++) {
|
| + debug(' Touch with id=' + event.changedTouches[i].identifier + ' with target = ' + event.changedTouches[i].target.id);
|
| + }
|
| + }
|
| + });
|
| + debug('');
|
| + document.events = [];
|
| +}
|
| +
|
| +if (window.eventSender) {
|
| + testRunner.waitUntilDone();
|
| + window.onload = runTests;
|
| +} else
|
| + debug('This test requires eventSender');
|
| +
|
| +description("This test verifies touch and corresponding pointerevent targets inside and outside the iframe.");
|
| +
|
| +</script>
|
| +
|
|
|