зеркало из https://github.com/mozilla/gecko-dev.git
76 строки
2.5 KiB
HTML
76 строки
2.5 KiB
HTML
<!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> |