| <html> |
| <head> |
| <script src="../resources/js-test.js"></script> |
| <script src="../resources/gesture-util.js"></script> |
| <style> |
| #plugin { |
| width: 150px; |
| height: 150px; |
| touch-action: none; |
| background-color: coral; |
| transform: rotate(90deg); |
| } |
| </style> |
| </head> |
| |
| <body onload="runTest();"> |
| <embed id="plugin" type="application/x-webkit-test-webplugin" accepts-touch="raw" print-event-details="true"></embed> |
| <script> |
| jsTestIsAsync = true; |
| |
| // Without an event handler, the touch events will be dropped before ever |
| // reaching Blink. |
| document.getElementById("plugin").addEventListener('touchstart', () => {}); |
| |
| function touchTapAndMove(xPosition, yPosition, xPosition1, yPosition1) { |
| if (window.eventSender) { |
| eventSender.addTouchPoint(xPosition, yPosition); |
| eventSender.touchStart(); |
| eventSender.updateTouchPoint(0, xPosition1, yPosition1); |
| eventSender.touchMove(); |
| eventSender.releaseTouchPoint(0); |
| eventSender.touchEnd(); |
| } |
| } |
| |
| function mouseMoveAndClick(xPosition, yPosition, xPosition1, yPosition1) { |
| return new Promise(function(resolve, reject) { |
| if (window.chrome && chrome.gpuBenchmarking) { |
| chrome.gpuBenchmarking.pointerActionSequence( [ |
| {source: 'mouse', |
| actions: [ |
| { name: 'pointerMove', x: xPosition, y: yPosition }, |
| { name: 'pointerDown', x: xPosition, y: yPosition }, |
| { name: 'pause', duration: 10 }, |
| { name: 'pointerMove', x: xPosition1, y: yPosition1 }, |
| { name: 'pointerUp' } |
| ]}], resolve); |
| } else { |
| reject(); |
| } |
| }); |
| } |
| |
| async function runTest() { |
| if (!window.testRunner || !window.eventSender) { |
| document.write("This test requires DumpRenderTree."); |
| } else { |
| testRunner.dumpAsText(); |
| |
| // Test touch events. |
| var positionX = plugin.offsetLeft + plugin.offsetWidth - 10; |
| var positionY = plugin.offsetTop + 10; |
| touchTapAndMove(positionX, positionY, positionX - 5, positionY + 10); |
| |
| // Test mouse events. |
| await mouseMoveAndClick(positionX, positionY, positionX - 5, positionY + 10); |
| |
| // Test mouse wheel scroll. |
| var scroll_position = {x: positionX, y: positionY}; |
| await wheelTick(1, 0, scroll_position); |
| |
| // Test gesture events. |
| await touchTapOn(positionX, positionY); |
| } |
| finishJSTest(); |
| } |
| </script> |
| </body> |
| </html> |