diff options
Diffstat (limited to 'testing/web-platform/tests/user-timing/measure_exceptions_navigation_timing.html')
-rw-r--r-- | testing/web-platform/tests/user-timing/measure_exceptions_navigation_timing.html | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/testing/web-platform/tests/user-timing/measure_exceptions_navigation_timing.html b/testing/web-platform/tests/user-timing/measure_exceptions_navigation_timing.html new file mode 100644 index 0000000000..b1868b2cb6 --- /dev/null +++ b/testing/web-platform/tests/user-timing/measure_exceptions_navigation_timing.html @@ -0,0 +1,70 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8" /> + <title>window.performance User Timing measure() method is throwing the proper exceptions</title> + <link rel="author" title="Microsoft" href="http://www.microsoft.com/" /> + <link rel="help" href="https://w3c.github.io/user-timing/#dom-performance-measure"/> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="resources/webperftestharness.js"></script> + + <script> +// test data +var zeroedNavTimingAtt = undefined; + +setup(function () { + // for testing the INVALID_ACCESS_ERR exception, find a navigation timing attribute with a value of zero + for (var i in timingAttributes) { + if (window.performance.timing[timingAttributes[i]] == 0) { + zeroedNavTimingAtt = timingAttributes[i]; + } + } + if (zeroedNavTimingAtt == undefined) { + throw new Error("A navigation timing attribute with a value of 0 was not found to test for the " + + "INVALID_ACCESS_ERR exception thrown by window.performance.measure().") + } +}); + +test(function () { + assert_throws_dom("InvalidAccessError", function () { + window.performance.measure("measure", zeroedNavTimingAtt); + }); +}, "window.performance.measure(\"measure\", \"" + zeroedNavTimingAtt + "\"), where \"" + + zeroedNavTimingAtt + "\" is a navigation timing attribute with a value of 0, throws a " + + "InvalidAccessError exception."); + +test(function () { + assert_throws_dom("InvalidAccessError", function () { + window.performance.measure("measure", zeroedNavTimingAtt, "responseEnd"); + }); +}, "window.performance.measure(\"measure\", \"" + zeroedNavTimingAtt + "\", " + + "\"responseEnd\"), where \"" + zeroedNavTimingAtt + "\" is a navigation timing " + + "attribute with a value of 0, throws a InvalidAccessError exception."); + +test(function () { + assert_throws_dom("InvalidAccessError", function () { + window.performance.measure("measure", "navigationStart", zeroedNavTimingAtt); + }); +}, "window.performance.measure(\"measure\", \"navigationStart\", \"" + zeroedNavTimingAtt + + "\"), where \"" + zeroedNavTimingAtt + "\" is a navigation timing attribute with a " + + "value of 0, throws a InvalidAccessError exception."); + +test(function () { + assert_throws_dom("InvalidAccessError", function () { + window.performance.measure("measure", zeroedNavTimingAtt, zeroedNavTimingAtt); + }); +}, "window.performance.measure(\"measure\", \"" + zeroedNavTimingAtt + "\", \"" + + zeroedNavTimingAtt + "\"), where \"" + zeroedNavTimingAtt + "\" is a navigation timing " + + "attribute with a value of 0, throws a InvalidAccessError exception."); + </script> + </head> + <body> + <h1>Description</h1> + <p><code>window.performance.measure()</code> method throws a InvalidAccessError + whenever a navigation timing attribute with a value of zero is provided as the startMark or endMark. + </p> + + <div id="log"></div> + </body> +</html> |