Index: third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c10c3bdb9c3183226c5a14c9dc5813256ee631ec |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/test_navigation_type_reload.html |
@@ -0,0 +1,108 @@ |
+<!DOCTYPE html> |
+<html> |
+ <head> |
+ <meta charset="utf-8" /> |
+ <title>window.performance.navigation.type with 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 startingTime; |
+ |
+ function deepCopy(p, c) |
+ { |
+ var c = c || {}; |
+ for (var i in p) |
+ { |
+ if (typeof p[i] === 'object') |
+ { |
+ c[i] = (p[i].constructor === Array) ? [] : {}; |
+ deepCopy(p[i], c[i]); |
+ } else c[i] = p[i]; |
+ } |
+ return c; |
+ } |
+ |
+ |
+ function onload_test() |
+ { |
+ reload_frame = document.getElementById("frameContext"); |
+ reload_frame.onload = function() { |
+ /* Need to make sure we don't examine loadEventEnd |
+ until after the load event has finished firing */ |
+ setTimeout(do_test, 0); |
+ } |
+ setTimeout("reload_the_frame();", 100); |
+ } |
+ |
+ function reload_the_frame() |
+ { |
+ //Before reloading, save the current timing |
+ startingTime = deepCopy(reload_frame.contentWindow.performance.timing); |
+ reload_frame.contentWindow.location.reload(true); |
+ } |
+ |
+ function do_test() |
+ { |
+ reload_frame.onload = null; |
+ if (performanceNamespace) |
+ { |
+ //Verify that the navigation type has updated to reload |
+ test_equals(reload_frame.contentWindow.performance.navigation.type, |
+ performanceNamespace.navigation.TYPE_RELOAD, |
+ 'window.performance.navigation.type == TYPE_RELOAD'); |
+ |
+ //Verify that the timing data has been updated into the future |
+ var reloadTime = reload_frame.contentWindow.performance.timing; |
+ for (attribute in timingAttributes) |
+ { |
+ var time = timingAttributes[attribute]; |
+ if (reloadTime[time] === 0) |
+ { |
+ test_equals(reloadTime[time], |
+ startingTime[time], |
+ "Reload " + time + "(" + reloadTime[time] + ")" + |
+ " == " + |
+ "Original " + time + "(" + startingTime[time] + ")"); |
+ } |
+ else |
+ { |
+ test_greater_than(reloadTime[time], |
+ startingTime[time], |
+ "Reload " + time + |
+ " > " + |
+ "Original " + time); |
+ } |
+ } |
+ } |
+ |
+ done(); |
+ } |
+ </script> |
+ </head> |
+ <body onload="onload_test();"> |
+ <h1>Description</h1> |
+ <p>This test validates the value of window.performance.navigation.type and the values of |
+ window.performance.timing.* with a reloaded navigation.</p> |
+ |
+ <p>This page should be loaded with a green background frame below. The frame will be automatically reloaded |
+ and then verified that |
+ <ul> |
+ <li>The window.performance.navigation.type = TYPE_RELOAD</li> |
+ <li>All of the widow.performance.timing.* values after reload are > all of the window.performance.timing.* values |
+ prior to reload.</li> |
+ </ul> |
+ </p> |
+ |
+ <div id="log"></div> |
+ <br /> |
+ <iframe id="frameContext" src="resources/blank_page_green.html" style="width: 250px; height: 250px;"></iframe> |
+ </body> |
+</html> |