summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/event-timing/interactionid-click.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/event-timing/interactionid-click.html')
-rw-r--r--testing/web-platform/tests/event-timing/interactionid-click.html42
1 files changed, 42 insertions, 0 deletions
diff --git a/testing/web-platform/tests/event-timing/interactionid-click.html b/testing/web-platform/tests/event-timing/interactionid-click.html
new file mode 100644
index 0000000000..1506e31e1d
--- /dev/null
+++ b/testing/web-platform/tests/event-timing/interactionid-click.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<meta charset=utf-8 />
+<title>Event Timing: interactionId-click.</title>
+<button id='button'>Click me.</button>
+<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 src=resources/event-timing-test-utils.js></script>
+<script>
+ let observedEntries = [];
+ let map = new Map();
+
+ function eventsForCheck(entry) {
+ if (entry.name === 'pointerdown' || entry.name === 'pointerup' || entry.name === 'click'
+ || entry.name === 'mousedown' || entry.name === 'mouseup') {
+ map.set(entry.name, entry.interactionId);
+ return true;
+ }
+ return false;
+ }
+ async_test(function(t) {
+ assert_implements(window.PerformanceEventTiming, 'Event Timing is not supported.');
+
+ addListenersAndClick(document.getElementById('button')).then(() => {
+ new PerformanceObserver(t.step_func(entryList => {
+ observedEntries = observedEntries.concat(entryList.getEntries().filter(eventsForCheck));
+ if (observedEntries.length < 5)
+ return;
+ assert_equals(map.get('mousedown'), 0, 'Should not have a interactionId');
+ assert_equals(map.get('mouseup'), 0, 'Should not have a interactionId');
+ assert_greater_than(map.get('pointerdown'), 0, 'Should have a non-trivial interactionId');
+ assert_equals(map.get('pointerdown'), map.get('pointerup'), 'Pointerdown and pointerup should have the same interactionId');
+ assert_equals(map.get('pointerdown'), map.get('click'), 'Pointerdown and click should have the same interactionId');
+ t.done();
+ })).observe({ type: 'event', buffered: true });
+ });
+
+ }, "Event Timing: compare event timing interactionId.");
+</script>
+</html>