gecko-dev/testing/web-platform/tests/user-timing/user-timing-tojson.html

45 строки
1.4 KiB
HTML

<!doctype html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
const keys = [
'name',
'entryType',
'startTime',
'duration',
];
test(() => {
performance.mark('a');
const markEntries = performance.getEntriesByType('mark');
assert_equals(1, markEntries.length);
const markEntry = markEntries[0];
assert_equals(markEntry.entryType, 'mark');
assert_equals(typeof(markEntry.toJSON), 'function');
const markJSON = markEntry.toJSON();
assert_equals(typeof(markJSON), 'object');
for (const key of keys) {
assert_equals(markJSON[key], markEntry[key], `PerformanceMark ${key} entry does not match its toJSON value`);
}
}, 'Test toJSON() in PerformanceMark');
test(() => {
performance.measure('m');
const measureEntries = performance.getEntriesByType('measure');
assert_equals(1, measureEntries.length);
const measureEntry = measureEntries[0];
assert_equals(measureEntry.entryType, 'measure');
assert_equals(typeof(measureEntry.toJSON), 'function');
const measureJSON = measureEntry.toJSON();
assert_equals(typeof(measureJSON), 'object');
for (const key of keys) {
assert_equals(measureJSON[key], measureEntry[key], `PerformanceMeasure ${key} entry does not match its toJSON value`);
}
}, 'Test toJSON() in PerformanceMeasure');
</script>
</body>
</html>