46 lines
1.6 KiB
HTML
46 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<meta charset=utf-8 />
|
|
<title>Event Timing: eventCounts.</title>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script src=/resources/testdriver.js></script>
|
|
<script src=/resources/testdriver-vendor.js></script>
|
|
<div id='div'>Click me</div>
|
|
<button id='button'>Click me</button>
|
|
<script>
|
|
promise_test( t => {
|
|
assert_implements(window.EventCounts, "Event Counts isn't supported");
|
|
function testClicks(expectedCount, resolve) {
|
|
const clickCount = performance.eventCounts.get('click');
|
|
if (clickCount < expectedCount) {
|
|
t.step_timeout(function() {
|
|
testClicks(expectedCount, resolve);
|
|
}, 5);
|
|
return;
|
|
}
|
|
assert_equals(clickCount, expectedCount,'Incorrect click count.');
|
|
assert_equals(performance.eventCounts.get('mousedown'), expectedCount, 'Incorrect mousedown count');
|
|
assert_equals(performance.eventCounts.get('mouseup'), expectedCount, 'Incorrect mouseup count.');
|
|
resolve();
|
|
}
|
|
function promiseClicks(expectedCount) {
|
|
return new Promise(resolve => {
|
|
testClicks(expectedCount, resolve)
|
|
});
|
|
}
|
|
|
|
return test_driver.click(document.getElementById('div')).then(() => {
|
|
return promiseClicks(1);
|
|
}).then(() => {
|
|
return test_driver.click(document.getElementById('button'));
|
|
}).then(() => {
|
|
return promiseClicks(2);
|
|
}).then(() => {
|
|
return test_driver.click(document.getElementById('div'));
|
|
}).then(() => {
|
|
return promiseClicks(3);
|
|
});
|
|
})
|
|
</script>
|
|
</html>
|