diff options
Diffstat (limited to 'testing/web-platform/tests/navigation-timing/test_timing_reload.html')
-rw-r--r-- | testing/web-platform/tests/navigation-timing/test_timing_reload.html | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/testing/web-platform/tests/navigation-timing/test_timing_reload.html b/testing/web-platform/tests/navigation-timing/test_timing_reload.html new file mode 100644 index 000000000..57d2dcebe --- /dev/null +++ b/testing/web-platform/tests/navigation-timing/test_timing_reload.html @@ -0,0 +1,90 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <title>window.performance.timing attributes after a reloaded navigation</title> + <link rel="author" title="Microsoft" href="http://www.microsoft.com/" /> + <link rel="help" href="http://www.w3.org/TR/navigation-timing/#sec-navigation-timing-interface"/> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="resources/webperftestharness.js"></script> + <script> + setup({explicit_done: true}); + + // explicitly test the namespace before we start testing + test_namespace('navigation'); + + var reload_frame; + var initial_timing; + + function onload_test() + { + reload_frame = document.getElementById("frameContext"); + + if (reload_frame.contentWindow.performance === undefined) + { + // avoid script errors + done(); + return; + } + + reload_frame.onload = do_test; + + // save frame's initial timings + initial_timing = {}; + var timing = reload_frame.contentWindow.performance.timing; + + for (var i = 0; i < timingAttributes.length; ++i) + { + var property = timingAttributes[i]; + initial_timing[property] = timing[property]; + } + + setTimeout("reload_the_frame();", 100); + } + + function reload_the_frame() + { + reload_frame.contentWindow.location.reload(true); + } + + function do_test() + { + reload_frame.onload = ""; + + // ensure the frame reloaded + test_equals(reload_frame.contentWindow.performance.navigation.type, + performanceNamespace.navigation.TYPE_RELOAD, + "window.performance.navigation.type == TYPE_RELOAD", {help:"http://www.w3.org/TR/navigation-timing/#sec-navigation-info-interface"}); + + // ensure reload timings changed + var timing = reload_frame.contentWindow.performance.timing; + for (var i = 0; i < timingAttributes.length; ++i) + { + var property = timingAttributes[i]; + + // ignore any timings that were zero initially + if (initial_timing[property] !== 0) + { + test_not_equals(timing[property], initial_timing[property], + property + " is different after the reload."); + } + } + + done(); + } + </script> + </head> + <body onload="onload_test();"> + <h1>Description</h1> + <p>This test validates that the window.performance.timing attributes change when a page is reloaded.</p> + + <p>This page should be loaded with a green background frame below. The frame will be automatically reloaded + and then verified that the window.performance.timing attributes have been updated to the new reloaded navigation timings.</p> + + <div id="log"></div> + <br /> + <iframe id="frameContext" src="resources/blank_page_green.html" style="width: 250px; height: 250px;"></iframe> + + </body> +</html> |