Chromium Code Reviews| Index: chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc |
| diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc |
| index 3d122db42221064533aab149fd85181c9efcdf19..b5d10e04e72343740312f305f0e171686ad14783 100644 |
| --- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc |
| +++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc |
| @@ -25,6 +25,22 @@ class FromGWSPageLoadMetricsObserverTest |
| timing.navigation_start = base::Time::FromDoubleT(1); |
| SimulateTimingUpdate(timing); |
| } |
| + void SimulateTimingWithFirstPaint() { |
|
Bryan McQuade
2016/05/31 20:33:29
nit: please add a newline between each function
|
| + page_load_metrics::PageLoadTiming timing; |
| + timing.navigation_start = base::Time::FromDoubleT(1); |
| + timing.first_paint = base::TimeDelta::FromMilliseconds(1); |
| + PopulateRequiredTimingFields(&timing); |
| + SimulateTimingUpdate(timing); |
| + } |
| + void SimulateMouseEvent() { |
|
Bryan McQuade
2016/05/31 20:33:29
same
|
| + blink::WebMouseEvent mouse_event; |
| + mouse_event.type = blink::WebInputEvent::MouseDown; |
| + mouse_event.button = blink::WebMouseEvent::ButtonLeft; |
| + mouse_event.x = 7; |
| + mouse_event.y = 7; |
| + mouse_event.clickCount = 1; |
| + SimulateInputEvent(mouse_event); |
| + } |
| }; |
| class FromGWSPageLoadMetricsLoggerTest : public testing::Test {}; |
| @@ -573,6 +589,61 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, NoAbortNewNavigationAfterPaint) { |
| internal::kHistogramFromGWSAbortNewNavigationBeforePaint, 0); |
| } |
| +TEST_F(FromGWSPageLoadMetricsObserverTest, NewNavigationBeforeInteraction) { |
| + NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); |
| + NavigateAndCommit(GURL("http://example.test")); |
| + SimulateTimingWithFirstPaint(); |
| + // Simulate the user performing another navigation before paint. |
| + NavigateAndCommit(GURL("https://www.example.com")); |
| + histogram_tester().ExpectTotalCount( |
| + internal::kHistogramFromGWSAbortNewNavigationBeforeInteraction, 1); |
| +} |
| + |
| +TEST_F(FromGWSPageLoadMetricsObserverTest, StopBeforeInteraction) { |
| + NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); |
| + NavigateAndCommit(GURL("http://example.test")); |
| + SimulateTimingWithFirstPaint(); |
| + // Simulate the user pressing the stop button. |
| + web_contents()->Stop(); |
| + // Now close the tab. This will trigger logging for the prior navigation which |
| + // was stopped above. |
| + DeleteContents(); |
| + histogram_tester().ExpectTotalCount( |
| + internal::kHistogramFromGWSAbortStopBeforeInteraction, 1); |
| +} |
| + |
| +TEST_F(FromGWSPageLoadMetricsObserverTest, CloseBeforeInteraction) { |
| + NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); |
| + NavigateAndCommit(GURL("https://example.test")); |
| + SimulateTimingWithFirstPaint(); |
| + // Simulate closing the tab. |
| + DeleteContents(); |
| + histogram_tester().ExpectTotalCount( |
| + internal::kHistogramFromGWSAbortCloseBeforeInteraction, 1); |
| +} |
| + |
| +TEST_F(FromGWSPageLoadMetricsObserverTest, CloseBeforePaintAndInteraction) { |
| + NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); |
| + NavigateAndCommit(GURL("https://example.test")); |
| + SimulateTimingWithoutPaint(); |
| + // Simulate closing the tab. |
| + DeleteContents(); |
| + histogram_tester().ExpectTotalCount( |
| + internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0); |
| +} |
| + |
| +TEST_F(FromGWSPageLoadMetricsObserverTest, CloseAfterInteraction) { |
| + NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); |
| + NavigateAndCommit(GURL("https://example.test")); |
| + SimulateTimingWithFirstPaint(); |
| + // Simulate user interaction. |
| + SimulateMouseEvent(); |
| + // Simulate closing the tab. |
| + DeleteContents(); |
| + histogram_tester().ExpectTotalCount( |
| + internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0); |
| +} |
| + |
| TEST_F(FromGWSPageLoadMetricsLoggerTest, IsGoogleSearchHostname) { |
| struct { |
| bool expected_result; |