<!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>
<script>
  test(() => {
    assert_implements(window.EventCounts, "Event Counts isn't supported");
    const eventTypes = [
        'auxclick',
        'click',
        'contextmenu',
        'dblclick',
        'mousedown',
        'mouseenter',
        'mouseleave',
        'mouseout',
        'mouseover',
        'mouseup',
        'pointerover',
        'pointerenter',
        'pointerdown',
        'pointerup',
        'pointercancel',
        'pointerout',
        'pointerleave',
        'gotpointercapture',
        'lostpointercapture',
        'touchstart',
        'touchend',
        'touchcancel',
        'keydown',
        'keypress',
        'keyup',
        'beforeinput',
        'input',
        'compositionstart',
        'compositionupdate',
        'compositionend',
        'dragstart',
        'dragend',
        'dragenter',
        'dragleave',
        'dragover',
        'drop'
    ];
    eventTypes.forEach(type => {
      assert_equals(performance.eventCounts.get(type), 0, 'There is a nonzero value for ' + type);
    })
    assert_equals(performance.eventCounts.size, eventTypes.length,
        'The size of performance.eventCounts is incorrect.');
  })
</script>
</html>
