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

Unified Diff: chrome/browser/page_load_metrics/page_load_metrics_util_unittest.cc

Issue 2936543002: Move Google search related util methods to page_load_metrics_util (Closed)
Patch Set: incorporated falken's comment Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/page_load_metrics/page_load_metrics_util.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/page_load_metrics/page_load_metrics_util_unittest.cc
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util_unittest.cc b/chrome/browser/page_load_metrics/page_load_metrics_util_unittest.cc
index 6704311a1b6327a92fd8f6ebc418a75a8c8e2143..5bf67d39740084b34385170717b994d7625b151e 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_util_unittest.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_util_unittest.cc
@@ -78,3 +78,154 @@ TEST_F(PageLoadMetricsUtilTest, GetGoogleHostnamePrefix) {
}
}
}
+
+TEST_F(PageLoadMetricsUtilTest, IsGoogleSearchHostname) {
+ struct {
+ bool expected_result;
+ const char* url;
+ } test_cases[] = {
+ {true, "https://www.google.com/"},
+ {true, "https://www.google.co.uk/"},
+ {true, "https://www.google.co.in/"},
+ {false, "https://other.google.com/"},
+ {false, "https://other.www.google.com/"},
+ {false, "https://www.other.google.com/"},
+ {false, "https://www.www.google.com/"},
+ {false, "https://www.google.appspot.com/"},
+ {false, "https://www.google.example.com/"},
+ // Search results are not served from the bare google.com domain.
+ {false, "https://google.com/"},
+ };
+ for (const auto& test : test_cases) {
+ EXPECT_EQ(test.expected_result,
+ page_load_metrics::IsGoogleSearchHostname(GURL(test.url)))
+ << "for URL: " << test.url;
+ }
+}
+
+TEST_F(PageLoadMetricsUtilTest, IsGoogleSearchResultUrl) {
+ struct {
+ bool expected_result;
+ const char* url;
+ } test_cases[] = {
+ {true, "https://www.google.com/#q=test"},
+ {true, "https://www.google.com/search#q=test"},
+ {true, "https://www.google.com/search?q=test"},
+ {true, "https://www.google.com/webhp#q=test"},
+ {true, "https://www.google.com/webhp?q=test"},
+ {true, "https://www.google.com/webhp?a=b&q=test"},
+ {true, "https://www.google.com/webhp?a=b&q=test&c=d"},
+ {true, "https://www.google.com/webhp#a=b&q=test&c=d"},
+ {true, "https://www.google.com/webhp?#a=b&q=test&c=d"},
+ {false, "https://www.google.com/"},
+ {false, "https://www.google.com/about/"},
+ {false, "https://other.google.com/"},
+ {false, "https://other.google.com/webhp?q=test"},
+ {false, "http://www.example.com/"},
+ {false, "https://www.example.com/webhp?q=test"},
+ {false, "https://google.com/#q=test"},
+ };
+ for (const auto& test : test_cases) {
+ EXPECT_EQ(test.expected_result,
+ page_load_metrics::IsGoogleSearchResultUrl(GURL(test.url)))
+ << "for URL: " << test.url;
+ }
+}
+
+TEST_F(PageLoadMetricsUtilTest, IsGoogleSearchRedirectorUrl) {
+ struct {
+ bool expected_result;
+ const char* url;
+ } test_cases[] = {
+ {true, "https://www.google.com/url?source=web"},
+ {true, "https://www.google.com/url?source=web#foo"},
+ {true, "https://www.google.com/searchurl/r.html#foo"},
+ {true, "https://www.google.com/url?a=b&source=web&c=d"},
+ {false, "https://www.google.com/?"},
+ {false, "https://www.google.com/?url"},
+ {false, "https://www.example.com/url?source=web"},
+ {false, "https://google.com/url?"},
+ {false, "https://www.google.com/?source=web"},
+ {false, "https://www.google.com/source=web"},
+ {false, "https://www.example.com/url?source=web"},
+ {false, "https://www.google.com/url?"},
+ {false, "https://www.google.com/url?a=b"},
+ };
+ for (const auto& test : test_cases) {
+ EXPECT_EQ(test.expected_result,
+ page_load_metrics::IsGoogleSearchRedirectorUrl(GURL(test.url)))
+ << "for URL: " << test.url;
+ }
+}
+
+TEST_F(PageLoadMetricsUtilTest, QueryContainsComponent) {
+ struct {
+ bool expected_result;
+ const char* query;
+ const char* component;
+ } test_cases[] = {
+ {true, "a=b", "a=b"},
+ {true, "a=b&c=d", "a=b"},
+ {true, "a=b&c=d", "c=d"},
+ {true, "a=b&c=d&e=f", "c=d"},
+ {true, "za=b&a=b", "a=b"},
+ {true, "a=bz&a=b", "a=b"},
+ {true, "a=ba=b&a=b", "a=b"},
+ {true, "a=a=a&a=a", "a=a"},
+ {true, "source=web", "source=web"},
+ {true, "a=b&source=web", "source=web"},
+ {true, "a=b&source=web&c=d", "source=web"},
+ {false, "a=a=a", "a=a"},
+ {false, "", ""},
+ {false, "a=b", ""},
+ {false, "", "a=b"},
+ {false, "za=b", "a=b"},
+ {false, "za=bz", "a=b"},
+ {false, "a=bz", "a=b"},
+ {false, "za=b&c=d", "a=b"},
+ {false, "a=b&c=dz", "c=d"},
+ {false, "a=b&zc=d&e=f", "c=d"},
+ {false, "a=b&c=dz&e=f", "c=d"},
+ {false, "a=b&zc=dz&e=f", "c=d"},
+ {false, "a=b&foosource=web&c=d", "source=web"},
+ {false, "a=b&source=webbar&c=d", "source=web"},
+ {false, "a=b&foosource=webbar&c=d", "source=web"},
+ };
+ for (const auto& test : test_cases) {
+ EXPECT_EQ(test.expected_result, page_load_metrics::QueryContainsComponent(
+ test.query, test.component))
+ << "For query: " << test.query << " with component: " << test.component;
+ }
+}
+
+TEST_F(PageLoadMetricsUtilTest, QueryContainsComponentPrefix) {
+ struct {
+ bool expected_result;
+ const char* query;
+ const char* component;
+ } test_cases[] = {
+ {true, "a=b", "a="},
+ {true, "a=b&c=d", "a="},
+ {true, "a=b&c=d", "c="},
+ {true, "a=b&c=d&e=f", "c="},
+ {true, "za=b&a=b", "a="},
+ {true, "ba=a=b&a=b", "a="},
+ {true, "q=test", "q="},
+ {true, "a=b&q=test", "q="},
+ {true, "q=test&c=d", "q="},
+ {true, "a=b&q=test&c=d", "q="},
+ {false, "", ""},
+ {false, "za=b", "a="},
+ {false, "za=b&c=d", "a="},
+ {false, "a=b&zc=d", "c="},
+ {false, "a=b&zc=d&e=f", "c="},
+ {false, "a=b&zq=test&c=d", "q="},
+ {false, "ba=a=b", "a="},
+ };
+ for (const auto& test : test_cases) {
+ EXPECT_EQ(test.expected_result,
+ page_load_metrics::QueryContainsComponentPrefix(test.query,
+ test.component))
+ << "For query: " << test.query << " with component: " << test.component;
+ }
+}
« no previous file with comments | « chrome/browser/page_load_metrics/page_load_metrics_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698