| <!DOCTYPE html> |
| |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <script type="text/javascript"> |
| 'use strict'; |
| |
| const testCases = { |
| 'mousedown': () => eventSender.mouseDown(), |
| 'keydown': () => eventSender.keyDown('x'), |
| 'touchstart': () => { |
| eventSender.addTouchPoint(1, 1); |
| eventSender.touchStart(); |
| }, |
| 'click': () => eventSender.gestureTap(1, 1), |
| 'contextmenu': () => eventSender.contextClick(), |
| 'wheel': () => eventSender.mouseScrollBy(0, -50), |
| }; |
| |
| for (let eventName in testCases) |
| createTest(eventName, testCases[eventName]); |
| |
| function createTest(eventName, dispatchEventFn) { |
| async_test(function(t) { |
| document.addEventListener(eventName, t.step_func(function(e) { |
| const platformTimestamp = eventSender.lastEventTimestamp(); // in seconds |
| const expectedTimestamp = Math.floor((internals.monotonicTimeToZeroBasedDocumentTime(platformTimestamp) * 1000) / 0.1) * 0.1; |
| // Use 0.100001 instead of 0.1 to deal with floating point |
| // comparison issues. |
| assert_approx_equals(e.timeStamp, expectedTimestamp, 0.100001); |
| t.done(); |
| })); |
| dispatchEventFn(); |
| }, "Event timestamp should be equal to the timestamp provided by the platform for " + eventName); |
| } |
| </script> |