summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/user-timing/measure-exceptions.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/user-timing/measure-exceptions.html')
-rw-r--r--testing/web-platform/tests/user-timing/measure-exceptions.html49
1 files changed, 49 insertions, 0 deletions
diff --git a/testing/web-platform/tests/user-timing/measure-exceptions.html b/testing/web-platform/tests/user-timing/measure-exceptions.html
new file mode 100644
index 0000000000..2836eaee2a
--- /dev/null
+++ b/testing/web-platform/tests/user-timing/measure-exceptions.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+<head>
+ This tests that 'performance.measure' throws exceptions with reasonable messages.
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+ window.performance.clearMarks();
+ window.performance.clearMeasures();
+
+ window.performance.mark('mark');
+
+ const eventMarks = [
+ 'unloadEventStart',
+ 'unloadEventEnd',
+ 'redirectStart',
+ 'redirectEnd',
+ 'secureConnectionStart',
+ 'domInteractive',
+ 'domContentLoadedEventStart',
+ 'domContentLoadedEventEnd',
+ 'domComplete',
+ 'loadEventStart',
+ 'loadEventEnd',
+ ];
+ eventMarks.forEach(function(name) {
+ test(()=>{
+ assert_throws_dom("InvalidAccessError", ()=>{
+ window.performance.measure("measuring", name, "mark");
+ }, "Should throw");
+ }, `Passing '${name}' as a mark to measure API should cause error when the mark is empty.`);
+ });
+
+ const args = [
+ 51.15, // Verify that number is parsed as string, not number.
+ "DoesNotExist", // Non-existant mark name should cause error.
+ ];
+ args.forEach(each => {
+ test(()=>{
+ assert_throws_dom("SyntaxError", ()=>{
+ window.performance.measure("measuring", each, "mark");
+ }, "Should throw");
+ }, `Passing ${each} as a mark to measure API should cause error.`);
+ });
+</script>
+</body>
+</html> \ No newline at end of file