OLD | NEW |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |