Index: chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1b5d48debe127b6a407ffaa24859f4b3fe239bf4 |
--- /dev/null |
+++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
@@ -0,0 +1,60 @@ |
+// Copyright (c) 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/test/histogram_tester.h" |
+#include "chrome/test/base/in_process_browser_test.h" |
+#include "chrome/test/base/ui_test_utils.h" |
+#include "net/test/spawned_test_server/spawned_test_server.h" |
+ |
+namespace page_load_metrics { |
+ |
+class MetricsWebContentsObserverBrowserTest : public InProcessBrowserTest { |
+ public: |
jochen (gone - plz use gerrit)
2015/09/30 09:44:24
plz add a ctor and dtor
|
+ const char* kHistogramNameFirstLayout = |
+ "PageLoad.Timing.NavigationToFirstLayout"; |
+ const char* kHistogramNameDomContent = |
+ "PageLoad.Timing.NavigationToDOMContentLoadedEventFired"; |
+ const char* kHistogramNameLoad = "PageLoad.Timing.NavigationToLoadEventFired"; |
+ |
+ protected: |
+ base::HistogramTester histogram_tester_; |
+}; |
jochen (gone - plz use gerrit)
2015/09/30 09:44:24
disallow copy/assign
|
+ |
+IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NoNavigation) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ histogram_tester_.ExpectTotalCount(kHistogramNameDomContent, 0); |
+ histogram_tester_.ExpectTotalCount(kHistogramNameLoad, 0); |
+ histogram_tester_.ExpectTotalCount(kHistogramNameFirstLayout, 0); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NewPage) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ ui_test_utils::NavigateToURL(browser(), |
+ test_server()->GetURL("/title1.html")); |
+ ui_test_utils::NavigateToURL(browser(), |
+ test_server()->GetURL("/title2.html")); |
+ |
+ histogram_tester_.ExpectTotalCount(kHistogramNameDomContent, 1); |
+ histogram_tester_.ExpectTotalCount(kHistogramNameLoad, 1); |
+ histogram_tester_.ExpectTotalCount(kHistogramNameFirstLayout, 1); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, AnchorLink) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ ui_test_utils::NavigateToURL(browser(), |
+ test_server()->GetURL("/title1.html")); |
+ ui_test_utils::NavigateToURL(browser(), |
+ test_server()->GetURL("/title1.html#hash")); |
+ ui_test_utils::NavigateToURL(browser(), |
+ test_server()->GetURL("/title2.html")); |
+ |
+ histogram_tester_.ExpectTotalCount(kHistogramNameDomContent, 1); |
+ histogram_tester_.ExpectTotalCount(kHistogramNameLoad, 1); |
+ histogram_tester_.ExpectTotalCount(kHistogramNameFirstLayout, 1); |
+} |
+ |
+} // namespace page_load_metrics |