diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/hr-time/performance-tojson.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/hr-time/performance-tojson.html')
-rw-r--r-- | testing/web-platform/tests/hr-time/performance-tojson.html | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/testing/web-platform/tests/hr-time/performance-tojson.html b/testing/web-platform/tests/hr-time/performance-tojson.html new file mode 100644 index 0000000000..fd8049cb9a --- /dev/null +++ b/testing/web-platform/tests/hr-time/performance-tojson.html @@ -0,0 +1,76 @@ +<!doctype html> +<html> +<head> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +</head> +<body> +<script> + +test(() => { + // Check Performance attributes. + assert_equals(typeof(performance.toJSON), 'function'); + const json = performance.toJSON(); + assert_equals(typeof(json), 'object'); + assert_equals(json.timeOrigin, performance.timeOrigin, + 'performance.toJSON().timeOrigin should match performance.timeOrigin'); + + // Check PerformanceTiming toJSON. + const jsonTiming = json.timing; + const timing = performance.timing; + assert_equals(typeof(timing.toJSON), 'function'); + const timingJSON = timing.toJSON(); + assert_equals(typeof(timingJSON), 'object'); + // Check PerformanceTiming attributes, from both: + // 1) |jsonTiming| from Performance. + // 2) |timingJSON| from PerformanceTiming. + const performanceTimingKeys = [ + 'navigationStart', + 'unloadEventStart', + 'unloadEventEnd', + 'redirectStart', + 'redirectEnd', + 'fetchStart', + 'domainLookupStart', + 'domainLookupEnd', + 'connectStart', + 'connectEnd', + 'secureConnectionStart', + 'requestStart', + 'responseStart', + 'responseEnd', + 'domLoading', + 'domInteractive', + 'domContentLoadedEventStart', + 'domContentLoadedEventEnd', + 'domComplete', + 'loadEventStart', + 'loadEventEnd' + ]; + for (const key of performanceTimingKeys) { + assert_equals(jsonTiming[key], timing[key], + `performance.toJSON().timing.${key} should match performance.timing.${key}`); + assert_equals(timingJSON[key], timing[key], + `performance.timing.toJSON().${key} should match performance.timing.${key}`); + } + + // Check PerformanceNavigation toJSON. + const jsonNavigation = json.navigation; + const navigation = performance.navigation; + assert_equals(typeof(navigation.toJSON), 'function'); + const navigationJSON = navigation.toJSON(); + assert_equals(typeof(navigationJSON), 'object'); + // Check PerformanceNavigation attributes, from both: + // 1) |jsonNavigation| from Performance. + // 2) |navigationJSON| from PerformanceNavigation. + let performanceNavigationKeys = ['type', 'redirectCount']; + for (const key of performanceNavigationKeys) { + assert_equals(jsonNavigation[key], navigation[key], + `performance.toJSON().navigation.${key} should match performance.navigation.${key}`); + assert_equals(navigationJSON[key], navigation[key], + `performance.navigation.toJSON().${key} should match performance.navigation.${key}`); + } +}, 'Test performance.toJSON()'); +</script> +</body> +</html>
\ No newline at end of file |