| OLD | NEW |
| (Empty) | |
| 1 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto
r-protocol-test.js"></script> |
| 2 <script> |
| 3 window.addEventListener("keydown", logEvent); |
| 4 window.addEventListener("mousedown", logEvent); |
| 5 window.addEventListener("touchstart", logEvent); |
| 6 |
| 7 var receivedTimestamps = []; |
| 8 |
| 9 function logEvent(event) |
| 10 { |
| 11 log("-----Event-----"); |
| 12 log("type: " + event.type); |
| 13 receivedTimestamps.push(event.timeStamp); |
| 14 } |
| 15 |
| 16 function verifyTimestamps() |
| 17 { |
| 18 log("-----Verify-----"); |
| 19 log("Received " + receivedTimestamps.length + " timestamps"); |
| 20 |
| 21 // Event.timeStamp values are in milliseconds |
| 22 var expectedOffsets = [0, 5000, 10000, 15000, 20000, 25000]; |
| 23 var receivedOffsets = receivedTimestamps.map(function(timestamp) { |
| 24 return timestamp - receivedTimestamps[0]; |
| 25 }); |
| 26 for (var i = 0; i < receivedOffsets.length; ++i) { |
| 27 if (isNear(receivedOffsets[i], expectedOffsets[i])) |
| 28 log("timeStamps offsets is as expected."); |
| 29 else |
| 30 log("timeStamp offset is expected " + expectedOffsets[i] + " but it
is:" + receivedOffsets[i]); |
| 31 } |
| 32 |
| 33 function isNear(a, b) { |
| 34 var epsilon = 0.5; |
| 35 return Math.abs(b - a) < epsilon; |
| 36 } |
| 37 |
| 38 } |
| 39 |
| 40 function test() |
| 41 { |
| 42 // We send epoch timestamp but expect to receive high-res timestamps |
| 43 var baseEpochTimestamp = Date.now() / 1000; // in seconds |
| 44 var sentTimestamps = [0, 5, 10, 15, 20, 25].map(function(offset) { |
| 45 return baseEpochTimestamp + offset; |
| 46 }); |
| 47 |
| 48 var commands = [{ |
| 49 value: "Input.dispatchKeyEvent", |
| 50 event: { |
| 51 "type": "rawKeyDown", |
| 52 "timestamp": sentTimestamps[0] |
| 53 } |
| 54 }, { |
| 55 value: "Input.dispatchKeyEvent", |
| 56 event: { |
| 57 "type": "rawKeyDown", |
| 58 "timestamp": sentTimestamps[1] |
| 59 } |
| 60 }, { |
| 61 value: "Input.dispatchMouseEvent", |
| 62 event: { |
| 63 "type": "mousePressed", |
| 64 "timestamp": sentTimestamps[2], |
| 65 "button": "left", |
| 66 "clickCount": 1, |
| 67 "x": 100, |
| 68 "y": 200 |
| 69 } |
| 70 }, { |
| 71 value: "Input.dispatchMouseEvent", |
| 72 event: { |
| 73 "type": "mousePressed", |
| 74 "timestamp": sentTimestamps[3], |
| 75 "button": "left", |
| 76 "clickCount": 1, |
| 77 "x": 100, |
| 78 "y": 200 |
| 79 } |
| 80 }, { |
| 81 value: "Input.dispatchTouchEvent", |
| 82 event: { |
| 83 "type": "touchStart", |
| 84 "timestamp": sentTimestamps[4], |
| 85 "touchPoints": [{ |
| 86 "state": "touchPressed", |
| 87 "x": 100, |
| 88 "y": 200 |
| 89 }] |
| 90 } |
| 91 }, { |
| 92 value: "Input.dispatchTouchEvent", |
| 93 event: { |
| 94 "type": "touchStart", |
| 95 "timestamp": sentTimestamps[5], |
| 96 "touchPoints": [{ |
| 97 "state": "touchPressed", |
| 98 "x": 100, |
| 99 "y": 100 |
| 100 }] |
| 101 |
| 102 } |
| 103 }]; |
| 104 |
| 105 for (var i = 0; i < commands.length; i++) |
| 106 InspectorTest.sendCommand(commands[i].value, commands[i].event, checkRes
ponse.bind(undefined, i == commands.length - 1)); |
| 107 |
| 108 function checkResponse(isLastCommand, msg) |
| 109 { |
| 110 if (msg.error) |
| 111 InspectorTest.log("Error: " + msg.error.message); |
| 112 if (isLastCommand) { |
| 113 InspectorTest.sendCommandOrDie("Runtime.evaluate", { |
| 114 expression: 'verifyTimestamps()' |
| 115 }, function() { |
| 116 InspectorTest.completeTest(); |
| 117 }); |
| 118 } |
| 119 } |
| 120 } |
| 121 </script> |
| 122 |
| 123 <body onload="runTest()"> |
| 124 </body> |
| OLD | NEW |