blob: ecfcd25e57a062411e7117690ae05ae9cc7cd026 [file] [log] [blame]
<!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>