Index: chrome/browser/autocomplete/autocomplete_result_unittest.cc |
diff --git a/chrome/browser/autocomplete/autocomplete_result_unittest.cc b/chrome/browser/autocomplete/autocomplete_result_unittest.cc |
index e3fa9bc5fd52c4c848db3f52cc0fffef7c4f4fd8..403d92f28de377b93404c151e4d1b96517a2d1a6 100644 |
--- a/chrome/browser/autocomplete/autocomplete_result_unittest.cc |
+++ b/chrome/browser/autocomplete/autocomplete_result_unittest.cc |
@@ -78,6 +78,11 @@ class AutocompleteResultTest : public testing::Test { |
const TestData* current, size_t current_size, |
const TestData* expected, size_t expected_size); |
+ // Creates an AutocompleteMatch using |destination_url| and |type| and appends |
Mark P
2013/12/13 01:10:55
There's no reason for this to be in the class. It
kmadhusu
2013/12/13 17:59:17
Done.
|
+ // it to |matches|. |
+ void AddMatch(const GURL& destination_url, AutocompleteMatch::Type type, |
+ ACMatches* matches); |
+ |
protected: |
TemplateURLServiceTestUtil test_util_; |
@@ -152,6 +157,21 @@ void AutocompleteResultTest::RunCopyOldMatchesTest( |
AssertResultMatches(current_result, expected, expected_size); |
} |
+void AutocompleteResultTest::AddMatch(const GURL& destination_url, |
+ AutocompleteMatch::Type type, |
+ ACMatches* matches) { |
+ ASSERT_TRUE(matches != NULL); |
+ AutocompleteMatch* previous_match = |
Mark P
2013/12/13 01:10:55
nit: last_match please.
kmadhusu
2013/12/13 17:59:17
Done.
|
+ !matches->empty() ? &((*matches)[matches->size() -1]) : NULL; |
Mark P
2013/12/13 01:10:55
nit: space before 1
kmadhusu
2013/12/13 17:59:17
Done.
|
+ AutocompleteMatch match; |
+ match.destination_url = destination_url; |
+ match.relevance = |
+ previous_match ? previous_match->relevance - 100 : 1300; |
+ match.allowed_to_be_default_match = true; |
+ match.type = type; |
+ matches->push_back(match); |
+} |
+ |
// Assertion testing for AutocompleteResult::Swap. |
TEST_F(AutocompleteResultTest, Swap) { |
AutocompleteResult r1; |
@@ -318,38 +338,21 @@ TEST_F(AutocompleteResultTest, SortAndCullDuplicateSearchURLs) { |
TEST_F(AutocompleteResultTest, SortAndCullWithDemotionsByType) { |
// Add some matches. |
ACMatches matches; |
- { |
- AutocompleteMatch match; |
- match.destination_url = GURL("http://history-url/"); |
- match.relevance = 1400; |
- match.allowed_to_be_default_match = true; |
- match.type = AutocompleteMatchType::HISTORY_URL; |
- matches.push_back(match); |
- } |
- { |
- AutocompleteMatch match; |
- match.destination_url = GURL("http://search-what-you-typed/"); |
- match.relevance = 1300; |
- match.allowed_to_be_default_match = true; |
- match.type = AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED; |
- matches.push_back(match); |
- } |
- { |
- AutocompleteMatch match; |
- match.destination_url = GURL("http://history-title/"); |
- match.relevance = 1200; |
- match.allowed_to_be_default_match = true; |
- match.type = AutocompleteMatchType::HISTORY_TITLE; |
- matches.push_back(match); |
- } |
- { |
- AutocompleteMatch match; |
- match.destination_url = GURL("http://search-history/"); |
- match.relevance = 500; |
- match.allowed_to_be_default_match = true; |
- match.type = AutocompleteMatchType::SEARCH_HISTORY; |
- matches.push_back(match); |
- } |
+ AddMatch(GURL("http://history-url/"), |
+ AutocompleteMatchType::HISTORY_URL, |
kmadhusu
2013/12/13 01:00:29
For better readability, I have added the arguments
Mark P
2013/12/13 01:10:55
Please consider putting them all one line if they
kmadhusu
2013/12/13 17:59:17
Done.
|
+ &matches); |
+ AddMatch(GURL("http://search-what-you-typed/"), |
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ |
+ // Add a search history type match and demote its relevance score. |
+ AddMatch(GURL("http://search-history/"), |
+ AutocompleteMatchType::SEARCH_HISTORY, |
+ &matches); |
+ matches[matches.size()-1].relevance = 500; |
Mark P
2013/12/13 01:10:55
nit: spaces around binary operators (-)
kmadhusu
2013/12/13 17:59:17
Done.
|
// Add a rule demoting history-url and killing history-title. |
{ |
@@ -486,3 +489,150 @@ TEST_F(AutocompleteResultTest, SortAndCullReorderForDefaultMatch) { |
EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec()); |
} |
} |
+ |
+TEST_F(AutocompleteResultTest, ShouldHideTopMatch) { |
+ // Add some matches. |
+ ACMatches matches; |
+ AddMatch(GURL("http://search-what-you-typed/"), |
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ AddMatch(GURL("http://search-history/"), |
+ AutocompleteMatchType::SEARCH_HISTORY, |
+ &matches); |
+ |
+ base::FieldTrialList::CreateFieldTrial("InstantExtended", |
+ "Group1 hide_verbatim:1"); |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ EXPECT_TRUE(result.ShouldHideTopMatch()); |
+} |
+ |
+TEST_F(AutocompleteResultTest, DoNotHideTopMatch) { |
+ ACMatches matches; |
+ AddMatch(GURL("http://search-what-you-typed/"), |
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://url-what-you-typed/"), |
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ AddMatch(GURL("http://search-history/"), |
+ AutocompleteMatchType::SEARCH_HISTORY, |
+ &matches); |
+ |
+ base::FieldTrialList::CreateFieldTrial("InstantExtended", |
+ "Group1 hide_verbatim:1"); |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ // If the verbatim first match is followed by another verbatim match, don't |
+ // hide the top verbatim match. |
+ EXPECT_FALSE(result.ShouldHideTopMatch()); |
+} |
+ |
+TEST_F(AutocompleteResultTest, DoNotHideTopMatch_TopMatchIsNotVerbatim) { |
+ ACMatches matches; |
+ AddMatch(GURL("http://search-history/"), |
+ AutocompleteMatchType::SEARCH_HISTORY, |
+ &matches); |
+ AddMatch(GURL("http://search-what-you-typed/"), |
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ |
+ base::FieldTrialList::CreateFieldTrial("InstantExtended", |
+ "Group1 hide_verbatim:1"); |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ // Top match is not a verbatim type match. Do not hide the top match. |
+ EXPECT_FALSE(result.ShouldHideTopMatch()); |
+} |
+ |
+TEST_F(AutocompleteResultTest, DoNotHideTopMatch_FieldTrialFlagDisabled) { |
Mark P
2013/12/13 01:10:55
Please comment here that this is an identical conf
kmadhusu
2013/12/13 17:59:17
Done.
|
+ // Add some matches. |
+ ACMatches matches; |
+ AddMatch(GURL("http://search-what-you-typed/"), |
+ AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ AddMatch(GURL("http://search-history/"), |
+ AutocompleteMatchType::SEARCH_HISTORY, |
+ &matches); |
+ |
+ base::FieldTrialList::CreateFieldTrial("InstantExtended", |
+ "Group1 hide_verbatim:0"); |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ // Field trial flag "hide_verbatim" is disabled. Do not hide top match. |
+ EXPECT_FALSE(result.ShouldHideTopMatch()); |
+} |
+ |
+TEST_F(AutocompleteResultTest, |
+ TopMatchIsVerbatimAndHasNoConsecutiveVerbatimMatches) { |
+ ACMatches matches; |
+ AddMatch(GURL("http://url-what-you-typed/"), |
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ EXPECT_TRUE(result.TopMatchIsVerbatimAndHasNoConsecutiveVerbatimMatches()); |
+} |
+ |
+TEST_F(AutocompleteResultTest, |
+ TopMatchIsVerbatimAndHasConsecutiveVerbatimMatches) { |
+ ACMatches matches; |
+ AddMatch(GURL("http://url-what-you-typed/"), |
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED, |
+ &matches); |
+ AddMatch(GURL("http://url-what-you-typed-1/"), |
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED, |
Mark P
2013/12/13 01:10:55
There can be only one URL_WHAT_YOU_TYPED. This se
kmadhusu
2013/12/13 17:59:17
Done.
|
+ &matches); |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ EXPECT_FALSE(result.TopMatchIsVerbatimAndHasNoConsecutiveVerbatimMatches()); |
+} |
+ |
+TEST_F(AutocompleteResultTest, TopMatchIsNotVerbatim) { |
+ ACMatches matches; |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ |
+ // Result set is empty. |
+ EXPECT_FALSE(result.TopMatchIsVerbatimAndHasNoConsecutiveVerbatimMatches()); |
+ |
+ // Add a non-verbatim match to the result. |
+ AddMatch(GURL("http://history-title/"), |
+ AutocompleteMatchType::HISTORY_TITLE, |
+ &matches); |
+ |
+ result.AppendMatches(matches); |
+ EXPECT_FALSE(result.TopMatchIsVerbatimAndHasNoConsecutiveVerbatimMatches()); |
+} |
+ |
+TEST_F(AutocompleteResultTest, |
+ TopMatchIsVerbatimAndHasNoConsecutiveVerbatimMatches_SingleMatchFound) { |
+ ACMatches matches; |
+ AddMatch(GURL("http://url-what-you-typed/"), |
+ AutocompleteMatchType::URL_WHAT_YOU_TYPED, |
+ &matches); |
+ |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ EXPECT_TRUE(result.TopMatchIsVerbatimAndHasNoConsecutiveVerbatimMatches()); |
+} |