Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(465)

Side by Side Diff: chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc

Issue 2152683004: Refactor PageLoadMetricsObserver completion callback policy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@relevantloads
Patch Set: remove histogram checks that can be flaky due to immediate logging Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h" 5 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h" 9 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
10 #include "components/page_load_metrics/browser/page_load_metrics_util.h" 10 #include "components/page_load_metrics/browser/page_load_metrics_util.h"
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 NavigateAndCommit(GURL("https://example.test")); 667 NavigateAndCommit(GURL("https://example.test"));
668 SimulateTimingWithFirstPaint(); 668 SimulateTimingWithFirstPaint();
669 // Simulate user interaction. 669 // Simulate user interaction.
670 SimulateMouseEvent(); 670 SimulateMouseEvent();
671 // Simulate closing the tab. 671 // Simulate closing the tab.
672 DeleteContents(); 672 DeleteContents();
673 histogram_tester().ExpectTotalCount( 673 histogram_tester().ExpectTotalCount(
674 internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0); 674 internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0);
675 } 675 }
676 676
677 TEST_F(FromGWSPageLoadMetricsObserverTest, CommittedIntent) {
678 NavigateAndCommit(GURL(kGoogleSearchResultsUrl));
679 NavigateAndCommit(GURL("intent://en.m.wikipedia.org/wiki/Test"));
680 SimulateTimingWithFirstPaint();
681 // Simulate closing the tab.
682 DeleteContents();
683 histogram_tester().ExpectTotalCount(
684 internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0);
685 }
686
687 TEST_F(FromGWSPageLoadMetricsObserverTest, ProvisionalIntent) {
688 NavigateAndCommit(GURL(kGoogleSearchResultsUrl));
689 StartNavigation(GURL("intent://en.m.wikipedia.org/wiki/Test"));
690 // Simulate closing the tab.
691 DeleteContents();
692 histogram_tester().ExpectTotalCount(
693 internal::kHistogramFromGWSAbortCloseBeforeCommit, 0);
694 }
695
677 TEST_F(FromGWSPageLoadMetricsLoggerTest, IsGoogleSearchHostname) { 696 TEST_F(FromGWSPageLoadMetricsLoggerTest, IsGoogleSearchHostname) {
678 struct { 697 struct {
679 bool expected_result; 698 bool expected_result;
680 const char* url; 699 const char* url;
681 } test_cases[] = { 700 } test_cases[] = {
682 {true, "www.google.com"}, 701 {true, "www.google.com"},
683 {true, "www.google.co.uk"}, 702 {true, "www.google.co.uk"},
684 {true, "www.google.co.in"}, 703 {true, "www.google.co.in"},
685 {false, "other.google.com"}, 704 {false, "other.google.com"},
686 {false, "other.www.google.com"}, 705 {false, "other.www.google.com"},
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 for (const auto& test : test_cases) { 842 for (const auto& test : test_cases) {
824 EXPECT_EQ(test.expected_result, 843 EXPECT_EQ(test.expected_result,
825 FromGWSPageLoadMetricsLogger::QueryContainsComponentPrefix( 844 FromGWSPageLoadMetricsLogger::QueryContainsComponentPrefix(
826 test.query, test.component)) 845 test.query, test.component))
827 << "For query: " << test.query << " with component: " << test.component; 846 << "For query: " << test.query << " with component: " << test.component;
828 } 847 }
829 } 848 }
830 849
831 TEST_F(FromGWSPageLoadMetricsLoggerTest, Basic) { 850 TEST_F(FromGWSPageLoadMetricsLoggerTest, Basic) {
832 FromGWSPageLoadMetricsLogger logger; 851 FromGWSPageLoadMetricsLogger logger;
833 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kExampleUrl))); 852 ASSERT_FALSE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl)));
834 } 853 }
835 854
836 TEST_F(FromGWSPageLoadMetricsLoggerTest, NoPreviousPage) { 855 TEST_F(FromGWSPageLoadMetricsLoggerTest, NoPreviousPage) {
837 FromGWSPageLoadMetricsLogger logger; 856 FromGWSPageLoadMetricsLogger logger;
838 logger.SetPreviouslyCommittedUrl(GURL()); 857 logger.SetPreviouslyCommittedUrl(GURL());
839 logger.set_navigation_initiated_via_link(true); 858 logger.set_navigation_initiated_via_link(true);
840 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kExampleUrl))); 859 ASSERT_FALSE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl)));
841 } 860 }
842 861
843 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationNotInitiatedViaLink) { 862 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationNotInitiatedViaLink) {
844 FromGWSPageLoadMetricsLogger logger; 863 FromGWSPageLoadMetricsLogger logger;
845 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); 864 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
846 logger.set_navigation_initiated_via_link(false); 865 logger.set_navigation_initiated_via_link(false);
847 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kExampleUrl))); 866 ASSERT_FALSE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl)));
848 }
849
850 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalNonHttpOrHttpsScheme) {
851 FromGWSPageLoadMetricsLogger logger;
852 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
853 logger.SetProvisionalUrl(GURL("intent://foo"));
854 ASSERT_FALSE(logger.ShouldLogMetrics(GURL::EmptyGURL()));
855 } 867 }
856 868
857 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalFromGWS) { 869 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalFromGWS) {
858 FromGWSPageLoadMetricsLogger logger; 870 FromGWSPageLoadMetricsLogger logger;
859 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); 871 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
860 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl)); 872 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl));
861 ASSERT_FALSE(logger.ShouldLogMetrics(GURL::EmptyGURL())); 873 ASSERT_FALSE(logger.ShouldLogFailedProvisionalLoadMetrics());
862 } 874 }
863 875
864 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalNotFromGWS) { 876 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalNotFromGWS) {
865 FromGWSPageLoadMetricsLogger logger; 877 FromGWSPageLoadMetricsLogger logger;
866 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); 878 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
867 logger.SetProvisionalUrl(GURL(kExampleUrl)); 879 logger.SetProvisionalUrl(GURL(kExampleUrl));
868 ASSERT_TRUE(logger.ShouldLogMetrics(GURL::EmptyGURL())); 880 ASSERT_TRUE(logger.ShouldLogFailedProvisionalLoadMetrics());
869 }
870
871 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIntent) {
872 FromGWSPageLoadMetricsLogger logger;
873 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
874 logger.SetProvisionalUrl(GURL("intent://en.m.wikipedia.org/wiki/Test"));
875 ASSERT_FALSE(logger.ShouldLogMetrics(GURL::EmptyGURL()));
876 } 881 }
877 882
878 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit1) { 883 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit1) {
879 FromGWSPageLoadMetricsLogger logger; 884 FromGWSPageLoadMetricsLogger logger;
880 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); 885 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
881 logger.SetProvisionalUrl(GURL(kExampleUrl)); 886 logger.SetProvisionalUrl(GURL(kExampleUrl));
882 logger.set_navigation_initiated_via_link(true); 887 logger.set_navigation_initiated_via_link(true);
883 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kGoogleSearchResultsUrl))); 888 ASSERT_FALSE(
889 logger.ShouldLogPostCommitMetrics(GURL(kGoogleSearchResultsUrl)));
884 } 890 }
885 891
886 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit2) { 892 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit2) {
887 FromGWSPageLoadMetricsLogger logger; 893 FromGWSPageLoadMetricsLogger logger;
888 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); 894 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
889 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl)); 895 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl));
890 logger.set_navigation_initiated_via_link(true); 896 logger.set_navigation_initiated_via_link(true);
891 ASSERT_TRUE(logger.ShouldLogMetrics(GURL(kExampleUrl))); 897 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl)));
892 } 898 }
893 899
894 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearch) { 900 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearch) {
895 FromGWSPageLoadMetricsLogger logger; 901 FromGWSPageLoadMetricsLogger logger;
896 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); 902 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
897 logger.set_navigation_initiated_via_link(true); 903 logger.set_navigation_initiated_via_link(true);
898 ASSERT_TRUE(logger.ShouldLogMetrics(GURL(kExampleUrl))); 904 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl)));
899 } 905 }
900 906
901 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationToSearchHostname) { 907 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationToSearchHostname) {
902 FromGWSPageLoadMetricsLogger logger; 908 FromGWSPageLoadMetricsLogger logger;
903 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); 909 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl));
904 logger.set_navigation_initiated_via_link(true); 910 logger.set_navigation_initiated_via_link(true);
905 ASSERT_FALSE(logger.ShouldLogMetrics(GURL("https://www.google.com/about/"))); 911 ASSERT_FALSE(
912 logger.ShouldLogPostCommitMetrics(GURL("https://www.google.com/about/")));
906 } 913 }
907 914
908 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearchRedirector) { 915 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearchRedirector) {
909 FromGWSPageLoadMetricsLogger logger; 916 FromGWSPageLoadMetricsLogger logger;
910 logger.SetPreviouslyCommittedUrl( 917 logger.SetPreviouslyCommittedUrl(
911 GURL("https://www.google.com/url?source=web")); 918 GURL("https://www.google.com/url?source=web"));
912 logger.set_navigation_initiated_via_link(true); 919 logger.set_navigation_initiated_via_link(true);
913 ASSERT_TRUE(logger.ShouldLogMetrics(GURL(kExampleUrl))); 920 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl)));
914 } 921 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698