Index: third_party/WebKit/LayoutTests/http/tests/performance-timing/test-navigation-timing2-attributes-exist.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/performance-timing/test-navigation-timing2-attributes-exist.html b/third_party/WebKit/LayoutTests/http/tests/performance-timing/test-navigation-timing2-attributes-exist.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..29efe660a7aa4f6769c0104ebabe4e2f565f3cda |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/performance-timing/test-navigation-timing2-attributes-exist.html |
@@ -0,0 +1,72 @@ |
+<!DOCTYPE html> |
+<script src="../../../resources/testharness.js"></script> |
+<script src="../../../resources/testharnessreport.js"></script> |
+<script> |
+ |
+async_test(function (t) { |
+ var observer = new PerformanceObserver( |
+ t.step_func(function (entryList) { |
+ var entries = entryList.getEntries(); |
+ assert_equals(entries.length, 1, |
+ "there should be only one navigation timing instance"); |
+ assert_true("transferSize" in entries[0], |
+ "expected attribute: transferSize"); |
+ assert_true("encodedBodySize" in entries[0], |
+ "expected attribute: encodedBodySize"); |
+ assert_true("decodedBodySize" in entries[0], |
+ "expected attribute: decodedBodySize"); |
+ assert_true("redirectCount" in entries[0], |
+ "expected attribute: workerStart"); |
+ assert_true("workerStart" in entries[0], |
+ "expected attribute: redirectCount"); |
+ assert_equals(entries[0].entryType, "navigation", |
+ "entryType expected to be: navigation"); |
+ assert_equals(entries[0].name, "document", |
+ "name expected to be: document"); |
+ assert_equals(entries[0].startTime, 0, |
+ "startTime expected to be: 0"); |
+ assert_equals(entries[0].duration, entries[0].loadEventEnd, |
+ "expected duration to be equal to loadEventEnd"); |
+ assert_true(entries[0].startTime <= entries[0].redirectStart, |
+ "expected startTime to be no greater than redirectStart"); |
+ assert_true(entries[0].unloadEventStart <= entries[0].unloadEventEnd, |
+ "expected unloadEventStart to be no greater than unloadEventEnd"); |
+ assert_true(entries[0].redirectStart <= entries[0].redirectEnd, |
+ "expected redirectStart to be no greater than redirectEnd"); |
+ assert_true(entries[0].redirectEnd <= entries[0].fetchStart, |
+ "expected redirectEnd to be no greater than fetchStart"); |
+ assert_true(entries[0].fetchStart <= entries[0].domainLookupStart, |
+ "expected fetchStart to be no greater than domainLookupStart"); |
+ assert_true(entries[0].domainLookupStart <= entries[0].domainLookupEnd, |
+ "expected domainLookupStart to be no greater than domainLookupEnd"); |
+ assert_true(entries[0].domainLookupEnd <= entries[0].connectStart, |
+ "expected domainLookupEnd to be no greater than connectStart"); |
+ assert_true(entries[0].secureConnectionStart <= entries[0].connectEnd, |
+ "expected secureConnectionStart to be no greater than connectEnd"); |
+ assert_true(entries[0].connectEnd <= entries[0].requestStart, |
+ "expected connectEnd to be no greater than requestStart"); |
+ assert_true(entries[0].requestStart <= entries[0].responseStart, |
+ "expected requestStart to be no greater than responseStart"); |
+ assert_true(entries[0].responseStart <= entries[0].responseEnd, |
+ "expected responseStart to be no greater than responseEnd"); |
+ assert_true(entries[0].responseEnd <= entries[0].domInteractive, |
+ "expected responseEnd to be no greater than domInteractive"); |
+ assert_true(entries[0].domInteractive <= entries[0].domContentLoadedEventStart, |
+ "expected domInteractive to be no greater than domContentLoadedEventStart"); |
+ assert_true(entries[0].domContentLoadedEventStart <= entries[0].domContentLoadedEventEnd, |
+ "expected domContentLoadedEventStart to be no greater than domContentLoadedEventEnd"); |
+ assert_true(entries[0].domContentLoadedEventEnd <= entries[0].domComplete, |
+ "expected domContentLoadedEventEnd to be no greater than domComplete"); |
+ assert_true(entries[0].domComplete <= entries[0].loadEventStart, |
+ "expected domComplete to be no greater than loadEventStart"); |
+ assert_true(entries[0].loadEventStart <= entries[0].loadEventEnd, |
+ "expected loadEventStart to be no greater than loadEventEnd"); |
+ observer.disconnect(); |
+ t.done(); |
+ }) |
+ ); |
+ observer.observe({entryTypes: ["navigation"]}); |
+ |
+}, "Performance navigation timing entries are observable"); |
+ |
+</script> |