diff options
Diffstat (limited to 'testing/web-platform/tests/long-animation-frame/tentative/loaf-toJSON.html')
-rw-r--r-- | testing/web-platform/tests/long-animation-frame/tentative/loaf-toJSON.html | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/testing/web-platform/tests/long-animation-frame/tentative/loaf-toJSON.html b/testing/web-platform/tests/long-animation-frame/tentative/loaf-toJSON.html new file mode 100644 index 0000000000..5b249e6972 --- /dev/null +++ b/testing/web-platform/tests/long-animation-frame/tentative/loaf-toJSON.html @@ -0,0 +1,46 @@ +<!doctype html> +<html> +<head> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +</head> +<body> +<script> + promise_test(async t => { + window.onload = () => { + // Trigger a long task. + const begin = window.performance.now(); + while (window.performance.now() < begin + 60); + }; + + assert_implements(window.PerformanceLongAnimationFrameTiming, 'Lon are not supported.'); + const entry = await new Promise(resolve => new PerformanceObserver( + t.step_func(entryList => { + const entries = entryList.getEntries(); + assert_greater_than_equal(entries.length, 1); + resolve(entries[0]); + })).observe({entryTypes: ["long-animation-frame"]})); + + assert_equals(typeof(entry.toJSON), 'function'); + const entryJSON = entry.toJSON(); + assert_equals(typeof(entryJSON), 'object'); + // Check attributes inheritted from PerformanceEntry. + const performanceEntryKeys = [ + 'name', + 'entryType', + 'startTime', + 'duration', + 'renderStart', + 'styleAndLayoutStart', + 'blockingTime', + 'firstUIEventTimestamp' + ]; + for (const key of performanceEntryKeys) { + assert_equals(entryJSON[key], entry[key], + `entry.toJSON().${key} should match entry.${key}`); + } + + }, 'Test toJSON() in PerformanceLongAnimationFrameTiming'); +</script> +</body> +</html> |