summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/event-timing/retrieve-firstInput.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/event-timing/retrieve-firstInput.html')
-rw-r--r--testing/web-platform/tests/event-timing/retrieve-firstInput.html36
1 files changed, 36 insertions, 0 deletions
diff --git a/testing/web-platform/tests/event-timing/retrieve-firstInput.html b/testing/web-platform/tests/event-timing/retrieve-firstInput.html
new file mode 100644
index 0000000000..c4536cb446
--- /dev/null
+++ b/testing/web-platform/tests/event-timing/retrieve-firstInput.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<meta charset=utf-8 />
+<title>Event Timing: first-input entry should be buffered even without observer</title>
+<button id='button'>Generate a 'click' event</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>
+ async_test(function(t) {
+ assert_implements(window.PerformanceEventTiming, 'Event Timing is not supported.');
+ function testEntries() {
+ // First callback is not ensured to have the entry.
+ if (performance.getEntriesByType('first-input').length === 0) {
+ t.step_timeout(testEntries, 10);
+ return;
+ }
+ assert_equals(performance.getEntriesByType('first-input').length, 1,
+ "There should be a first-input entry in the performance timeline");
+ const entry = performance.getEntriesByType('first-input')[0];
+ assert_equals(entry.name, 'pointerdown');
+ assert_equals(entry.entryType, 'first-input');
+ assert_greater_than_equal(entry.duration, 104,
+ "The first input was a long one.");
+ t.done();
+ }
+ clickAndBlockMain('button').then(wait).then(t.step_func(testEntries));
+ },
+ "Event Timing: check first-input after onload, observer, click, click."
+ );
+</script>
+</html>