interactionid-click.html (1838B)
1 <!DOCTYPE html> 2 <html> 3 <meta charset=utf-8 /> 4 <title>Event Timing: interactionId-click.</title> 5 <button id='button'>Click me.</button> 6 <script src=/resources/testharness.js></script> 7 <script src=/resources/testharnessreport.js></script> 8 <script src=/resources/testdriver.js></script> 9 <script src=/resources/testdriver-vendor.js></script> 10 <script src=resources/event-timing-test-utils.js></script> 11 <script> 12 let observedEntries = []; 13 let map = new Map(); 14 15 function eventsForCheck(entry) { 16 if (entry.name === 'pointerdown' || entry.name === 'pointerup' || entry.name === 'click' 17 || entry.name === 'mousedown' || entry.name === 'mouseup') { 18 map.set(entry.name, entry.interactionId); 19 return true; 20 } 21 return false; 22 } 23 async_test(function(t) { 24 assert_implements(window.PerformanceEventTiming, 'Event Timing is not supported.'); 25 26 addListenersAndClick(document.getElementById('button')).then(() => { 27 new PerformanceObserver(t.step_func(entryList => { 28 observedEntries = observedEntries.concat(entryList.getEntries().filter(eventsForCheck)); 29 if (observedEntries.length < 5) 30 return; 31 assert_equals(map.get('mousedown'), 0, 'Should not have a interactionId'); 32 assert_equals(map.get('mouseup'), 0, 'Should not have a interactionId'); 33 assert_greater_than(map.get('pointerdown'), 0, 'Should have a non-trivial interactionId'); 34 assert_equals(map.get('pointerdown'), map.get('pointerup'), 'Pointerdown and pointerup should have the same interactionId'); 35 assert_equals(map.get('pointerdown'), map.get('click'), 'Pointerdown and click should have the same interactionId'); 36 t.done(); 37 })).observe({ type: 'event', buffered: true }); 38 }); 39 40 }, "Event Timing: compare event timing interactionId."); 41 </script> 42 </html>