Chromium Code Reviews| 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()); |
| +} |