| Index: chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer_unittest.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer_unittest.cc
|
| index 7ab9d7ea98ee2605e3ce1651f69f6166e971d616..01b6056b646b7be794ece4c788a637ffc5dd5a3e 100644
|
| --- a/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer_unittest.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer_unittest.cc
|
| @@ -40,37 +40,46 @@ class AMPPageLoadMetricsObserverTest
|
| NavigateAndCommit(GURL("http://otherurl.com"));
|
| }
|
|
|
| - void ValidateHistograms(bool expect_histograms) {
|
| + void ValidateHistograms(bool expect_histograms, const char* suffix) {
|
| ValidateHistogramsFor(
|
| - "PageLoad.Clients.AMPCache2.DocumentTiming."
|
| + "PageLoad.Clients.AMP.DocumentTiming."
|
| "NavigationToDOMContentLoadedEventFired",
|
| - timing_.document_timing.dom_content_loaded_event_start,
|
| + suffix, timing_.document_timing.dom_content_loaded_event_start,
|
| expect_histograms);
|
| ValidateHistogramsFor(
|
| - "PageLoad.Clients.AMPCache2.DocumentTiming.NavigationToFirstLayout",
|
| + "PageLoad.Clients.AMP.DocumentTiming.NavigationToFirstLayout", suffix,
|
| timing_.document_timing.first_layout, expect_histograms);
|
| ValidateHistogramsFor(
|
| - "PageLoad.Clients.AMPCache2.DocumentTiming."
|
| + "PageLoad.Clients.AMP.DocumentTiming."
|
| "NavigationToLoadEventFired",
|
| - timing_.document_timing.load_event_start, expect_histograms);
|
| + suffix, timing_.document_timing.load_event_start, expect_histograms);
|
| ValidateHistogramsFor(
|
| - "PageLoad.Clients.AMPCache2.PaintTiming."
|
| + "PageLoad.Clients.AMP.PaintTiming."
|
| "NavigationToFirstContentfulPaint",
|
| - timing_.paint_timing.first_contentful_paint, expect_histograms);
|
| + suffix, timing_.paint_timing.first_contentful_paint, expect_histograms);
|
| ValidateHistogramsFor(
|
| - "PageLoad.Clients.AMPCache2.ParseTiming.NavigationToParseStart",
|
| + "PageLoad.Clients.AMP.ParseTiming.NavigationToParseStart", suffix,
|
| timing_.parse_timing.parse_start, expect_histograms);
|
| }
|
|
|
| - void ValidateHistogramsFor(const std::string& histogram_,
|
| + void ValidateHistogramsFor(const std::string& histogram,
|
| + const char* suffix,
|
| const base::Optional<base::TimeDelta>& event,
|
| bool expect_histograms) {
|
| - histogram_tester().ExpectTotalCount(histogram_, expect_histograms ? 1 : 0);
|
| + histogram_tester().ExpectTotalCount(histogram, expect_histograms ? 1 : 0);
|
| + histogram_tester().ExpectTotalCount(histogram + suffix,
|
| + expect_histograms ? 1 : 0);
|
| if (!expect_histograms)
|
| return;
|
| histogram_tester().ExpectUniqueSample(
|
| - histogram_, static_cast<base::HistogramBase::Sample>(
|
| - event.value().InMilliseconds()),
|
| + histogram,
|
| + static_cast<base::HistogramBase::Sample>(
|
| + event.value().InMilliseconds()),
|
| + 1);
|
| + histogram_tester().ExpectUniqueSample(
|
| + histogram + suffix,
|
| + static_cast<base::HistogramBase::Sample>(
|
| + event.value().InMilliseconds()),
|
| 1);
|
| }
|
|
|
| @@ -85,20 +94,54 @@ class AMPPageLoadMetricsObserverTest
|
| DISALLOW_COPY_AND_ASSIGN(AMPPageLoadMetricsObserverTest);
|
| };
|
|
|
| +TEST_F(AMPPageLoadMetricsObserverTest, AMPViewType) {
|
| + using AMPViewType = AMPPageLoadMetricsObserver::AMPViewType;
|
| +
|
| + struct {
|
| + AMPViewType expected_type;
|
| + const char* url;
|
| + } test_cases[] = {
|
| + {AMPViewType::NONE, "https://google.com/"},
|
| + {AMPViewType::NONE, "https://google.com/amp/foo"},
|
| + {AMPViewType::NONE, "https://google.com/news/amp?foo"},
|
| + {AMPViewType::NONE, "https://example.com/"},
|
| + {AMPViewType::NONE, "https://example.com/amp/foo"},
|
| + {AMPViewType::NONE, "https://example.com/news/amp?foo"},
|
| + {AMPViewType::NONE, "https://www.google.com/"},
|
| + {AMPViewType::NONE, "https://news.google.com/"},
|
| + {AMPViewType::AMP_CACHE, "https://cdn.ampproject.org/foo"},
|
| + {AMPViewType::AMP_CACHE, "https://site.cdn.ampproject.org/foo"},
|
| + {AMPViewType::GOOGLE_SEARCH_AMP_VIEWER, "https://www.google.com/amp/foo"},
|
| + {AMPViewType::GOOGLE_NEWS_AMP_VIEWER,
|
| + "https://news.google.com/news/amp?foo"},
|
| + };
|
| + for (const auto& test : test_cases) {
|
| + EXPECT_EQ(test.expected_type,
|
| + AMPPageLoadMetricsObserver::GetAMPViewType(GURL(test.url)))
|
| + << "For URL: " << test.url;
|
| + }
|
| +}
|
| +
|
| TEST_F(AMPPageLoadMetricsObserverTest, AMPCachePage) {
|
| ResetTest();
|
| RunTest(GURL("https://cdn.ampproject.org/page"));
|
| - ValidateHistograms(true);
|
| + ValidateHistograms(true, ".AmpCache");
|
| }
|
|
|
| -TEST_F(AMPPageLoadMetricsObserverTest, GoogleAMPCachePage) {
|
| +TEST_F(AMPPageLoadMetricsObserverTest, GoogleSearchAMPCachePage) {
|
| ResetTest();
|
| RunTest(GURL("https://www.google.com/amp/page"));
|
| - ValidateHistograms(true);
|
| + ValidateHistograms(true, ".GoogleSearch");
|
| +}
|
| +
|
| +TEST_F(AMPPageLoadMetricsObserverTest, GoogleNewsAMPCachePage) {
|
| + ResetTest();
|
| + RunTest(GURL("https://news.google.com/news/amp?page"));
|
| + ValidateHistograms(true, ".GoogleNews");
|
| }
|
|
|
| TEST_F(AMPPageLoadMetricsObserverTest, NonAMPPage) {
|
| ResetTest();
|
| RunTest(GURL("https://www.google.com/not-amp/page"));
|
| - ValidateHistograms(false);
|
| + ValidateHistograms(false, "");
|
| }
|
|
|