| OLD | NEW |
| (Empty) | |
| 1 (async function(testRunner) { |
| 2 let {page, session, dp} = await testRunner.startBlank(``); |
| 3 |
| 4 await session.evaluate(` |
| 5 var logs = []; |
| 6 function log(text) { |
| 7 logs.push(text); |
| 8 } |
| 9 |
| 10 var expectedEventCount = -1; |
| 11 var eventCount = 0; |
| 12 var resolve; |
| 13 var gotEventsPromise = new Promise(f => resolve = f); |
| 14 |
| 15 function logEvent(event) { |
| 16 event.preventDefault(); |
| 17 log('-----Event-----'); |
| 18 log('type: ' + event.type); |
| 19 if (event.shiftKey) |
| 20 log('shiftKey'); |
| 21 log('----Touches----'); |
| 22 for (var i = 0; i < event.touches.length; i++) { |
| 23 var touch = event.touches[i]; |
| 24 log('id: ' + i); |
| 25 log('pageX: ' + touch.pageX); |
| 26 log('pageY: ' + touch.pageY); |
| 27 log('radiusX: ' + touch.radiusX); |
| 28 log('radiusY: ' + touch.radiusY); |
| 29 log('rotationAngle: ' + touch.rotationAngle); |
| 30 log('force: ' + touch.force); |
| 31 } |
| 32 eventCount++; |
| 33 if (eventCount === expectedEventCount) |
| 34 resolve(logs.join('\\n')); |
| 35 } |
| 36 |
| 37 window.addEventListener('touchstart', logEvent, {passive: false}); |
| 38 window.addEventListener('touchmove', logEvent, {passive: false}); |
| 39 window.addEventListener('touchend', logEvent); |
| 40 window.addEventListener('touchcancel', logEvent); |
| 41 `); |
| 42 |
| 43 var events = [ |
| 44 { |
| 45 // Should not produce any touch events. |
| 46 'type': 'mouseMoved', |
| 47 'button': 'none', |
| 48 'modifiers': 8, // shift |
| 49 'x': 50, |
| 50 'y': 150 |
| 51 }, |
| 52 { |
| 53 'type': 'mousePressed', |
| 54 'button': 'left', |
| 55 'clickCount': 1, |
| 56 'x': 100, |
| 57 'y': 200 |
| 58 }, |
| 59 { |
| 60 'type': 'mouseMoved', |
| 61 'button': 'left', |
| 62 'clickCount': 1, |
| 63 'x': 100, |
| 64 'y': 250 |
| 65 }, |
| 66 { |
| 67 'type': 'mouseReleased', |
| 68 'button': 'left', |
| 69 'clickCount': 1, |
| 70 'x': 100, |
| 71 'y': 250 |
| 72 }, |
| 73 { |
| 74 'type': 'mousePressed', |
| 75 'button': 'left', |
| 76 'clickCount': 1, |
| 77 'x': 100, |
| 78 'y': 200 |
| 79 } |
| 80 ]; |
| 81 |
| 82 await dp.Page.enable(); |
| 83 await dp.Page.setTouchEmulationEnabled({enabled: true}); |
| 84 |
| 85 // Moving mouse while not pressed does not generate touch events. |
| 86 await session.evaluate(`expectedEventCount = ${events.length - 1}`); |
| 87 |
| 88 var time = Number(new Date()) / 1000; |
| 89 for (var index = 0; index < events.length; index++) { |
| 90 var event = events[index]; |
| 91 event.timestamp = time + index * 100; |
| 92 var msg = await dp.Input.emulateTouchFromMouseEvent(event); |
| 93 if (msg.error) |
| 94 testRunner.log('Error: ' + msg.error.message); |
| 95 } |
| 96 |
| 97 testRunner.log(await session.evaluateAsync('gotEventsPromise')); |
| 98 testRunner.completeTest(); |
| 99 }) |
| OLD | NEW |