summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html')
-rw-r--r--testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html85
1 files changed, 85 insertions, 0 deletions
diff --git a/testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html b/testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html
new file mode 100644
index 0000000000..9eac7bd033
--- /dev/null
+++ b/testing/web-platform/tests/navigation-timing/test-timing-attributes-dependent-on-document-load.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8" />
+ <title>Navigation Timing 2 WPT</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script>
+ setup({ single_test: true });
+ var reload_frame;
+
+ // Array of navigation timing entries dependent on Document Load Timing.
+ var navTimingAttributes = [
+ 'fetchStart',
+ 'loadEventEnd',
+ 'loadEventStart',
+ 'redirectCount',
+ 'redirectEnd',
+ 'redirectStart',
+ 'responseEnd',
+ 'unloadEventEnd',
+ 'unloadEventStart',
+ ];
+
+ // Function to run the test when the page loads.
+ function onload_test() {
+ reload_frame = document.getElementById("frameContext");
+ reload_frame.onload = function() {
+ step_timeout(do_test, 0);
+ }
+ step_timeout(reload_the_frame, 0);
+ }
+
+ /*
+ Function to reload the iframe and observe values for navigation timing entries:
+ redirectStart, redirectEnd and redirectCount dependent on Document Load Timing.
+ */
+ function reload_the_frame() {
+ reload_frame.contentWindow.location.href =
+ "/common/redirect.py?location=/navigation-timing/resources/blank-page-green.html";
+ }
+
+ /*
+ Function to obtain navigation timing entries and,
+ check if the values are greater than 0.
+ */
+ function do_test() {
+ var nav_frame = document.getElementById("frameContext").contentWindow;
+ var pnt1 = nav_frame.performance.getEntriesByType("navigation")[0];
+ for (i in navTimingAttributes) {
+ assert_greater_than(pnt1[navTimingAttributes[i]], 0,
+ `Expected navigation timing entries: ${navTimingAttributes[i]} greater than 0`);
+ }
+ step_timeout(remove, 0);
+ done(); // Avoids scripting errors
+ }
+
+ /*
+ Function to remove the iframe from the parent body and,
+ check if the navigation timing entries of detached iframe are 0.
+ */
+ function remove() {
+ var nav_frame = document.getElementById("frameContext").contentWindow;
+ var pnt1 = nav_frame.performance.getEntriesByType("navigation")[0];
+ document.body.removeChild(document.getElementById("frameContext"));
+ for (i in navTimingAttributes) {
+ assert_equals(pnt1[navTimingAttributes[i]], 0,
+ `${navTimingAttributes[i]} dependent on Document Load Timing: returns 0`);
+ }
+ }
+ </script>
+</head>
+<body onload="onload_test();">
+ <h1>Description</h1>
+ <p>This test observes values of navigation timing entries,</p>
+ <p>dependent on Document Load Timing for a detached iframe.</p>
+ <br />
+ <p>This page should be loaded with a green background frame below,</p>
+ <p>which disappears after the iframe is detached.</p>
+ <br />
+ <iframe id="frameContext"
+ src="/navigation-timing/resources/blank-page-green.html"
+ style="width: 250px; height: 250px;"></iframe>
+</body>
+</html> \ No newline at end of file