diff options
Diffstat (limited to 'testing/web-platform/tests/performance-timeline/po-observe.html')
-rw-r--r-- | testing/web-platform/tests/performance-timeline/po-observe.html | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/testing/web-platform/tests/performance-timeline/po-observe.html b/testing/web-platform/tests/performance-timeline/po-observe.html new file mode 100644 index 000000000..84edea84e --- /dev/null +++ b/testing/web-platform/tests/performance-timeline/po-observe.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>PerformanceObservers: observe</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="performanceobservers.js"></script> +<h1>PerformanceObservers: observe</h1> +<div id="log"></div> +<script> + test(function () { + var obs = new PerformanceObserver(function () { return true; }); + assert_throws(new TypeError(), function () { + obs.observe({}); + }); + assert_throws(new TypeError(), function () { + obs.observe({entryType: []}); + }); + }, "no entryTypes throws a TypeError"); + test(function () { + var obs = new PerformanceObserver(function () { return true; }); + assert_throws(new TypeError(), function () { + obs.observe({entryTypes: "mark"}); + }); + assert_throws(new TypeError(), function () { + obs.observe({entryTypes: []}); + }); + assert_throws(new TypeError(), function () { + obs.observe({entryTypes: ["this-cannot-match-an-entryType"]}); + }); + assert_throws(new TypeError(), function () { + obs.observe({entryTypes: ["marks","navigate", "resources"]}); + }); + }, "Empty sequence entryTypes throws a TypeError"); + + test(function () { + var obs = new PerformanceObserver(function () { return true; }); + obs.observe({entryTypes: ["mark","this-cannot-match-an-entryType"]}); + obs.observe({entryTypes: ["this-cannot-match-an-entryType","mark"]}); + obs.observe({entryTypes: ["mark"], others: true}); + }, "Filter unsupported entryType entryType names within the entryTypes sequence"); + + async_test(function (t) { + var observer = new PerformanceObserver( + t.step_func(function (entryList, obs) { + assert_equals(observer, obs, "observer is second parameter"); + checkEntries(entryList.getEntries(), + [{ entryType: "measure", name: "measure1"}]); + observer.disconnect(); + t.done(); + }) + ); + performance.clearMarks(); + observer.observe({entryTypes: ["mark"]}); + observer.observe({entryTypes: ["measure"]}); + performance.mark("mark1"); + performance.measure("measure1"); + }, "replace observer if already present"); +</script> |