summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/event-timing/event-click-counts.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/event-timing/event-click-counts.html')
-rw-r--r--testing/web-platform/tests/event-timing/event-click-counts.html46
1 files changed, 46 insertions, 0 deletions
diff --git a/testing/web-platform/tests/event-timing/event-click-counts.html b/testing/web-platform/tests/event-timing/event-click-counts.html
new file mode 100644
index 0000000000..6c6563b958
--- /dev/null
+++ b/testing/web-platform/tests/event-timing/event-click-counts.html
@@ -0,0 +1,46 @@
+<!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>