Index: components/omnibox/base_search_provider_unittest.cc |
diff --git a/components/omnibox/base_search_provider_unittest.cc b/components/omnibox/base_search_provider_unittest.cc |
index 42a9f1819719fce646e8bb54c0a9ca22e6b1dbbb..6502bc447b43d608d09cf3ed2302e727fe904307 100644 |
--- a/components/omnibox/base_search_provider_unittest.cc |
+++ b/components/omnibox/base_search_provider_unittest.cc |
@@ -11,6 +11,7 @@ |
#include "components/omnibox/autocomplete_provider_client.h" |
#include "components/omnibox/autocomplete_scheme_classifier.h" |
#include "components/omnibox/search_suggestion_parser.h" |
+#include "components/omnibox/suggestion_answer.h" |
#include "components/search_engines/search_terms_data.h" |
#include "components/search_engines/template_url_service.h" |
#include "components/search_engines/template_url_service_client.h" |
@@ -124,6 +125,8 @@ TEST_F(BaseSearchProviderTest, PreserveAnswersWhenDeduplicating) { |
base::string16 query = base::ASCIIToUTF16("weather los angeles"); |
base::string16 answer_contents = base::ASCIIToUTF16("some answer content"); |
base::string16 answer_type = base::ASCIIToUTF16("2334"); |
+ scoped_ptr<SuggestionAnswer> answer(new SuggestionAnswer()); |
+ answer->SetType(answer_type); |
EXPECT_CALL(*provider_, GetInput(_)) |
.WillRepeatedly(Return(AutocompleteInput())); |
@@ -132,16 +135,16 @@ TEST_F(BaseSearchProviderTest, PreserveAnswersWhenDeduplicating) { |
SearchSuggestionParser::SuggestResult more_relevant( |
query, AutocompleteMatchType::SEARCH_HISTORY, query, base::string16(), |
- base::string16(), base::string16(), base::string16(), std::string(), |
- std::string(), false, 1300, true, false, query); |
+ base::string16(), base::string16(), base::string16(), nullptr, |
+ std::string(), std::string(), false, 1300, true, false, query); |
provider_->AddMatchToMap( |
more_relevant, std::string(), TemplateURLRef::NO_SUGGESTION_CHOSEN, |
false, false, &map); |
SearchSuggestionParser::SuggestResult less_relevant( |
query, AutocompleteMatchType::SEARCH_SUGGEST, query, base::string16(), |
- base::string16(), answer_contents, answer_type, std::string(), |
- std::string(), false, 850, true, false, query); |
+ base::string16(), answer_contents, answer_type, answer.Pass(), |
+ std::string(), std::string(), false, 850, true, false, query); |
provider_->AddMatchToMap( |
less_relevant, std::string(), TemplateURLRef::NO_SUGGESTION_CHOSEN, |
false, false, &map); |
@@ -151,23 +154,32 @@ TEST_F(BaseSearchProviderTest, PreserveAnswersWhenDeduplicating) { |
ASSERT_EQ(1U, match.duplicate_matches.size()); |
AutocompleteMatch duplicate = match.duplicate_matches[0]; |
+ answer.reset(new SuggestionAnswer()); |
+ answer->SetType(answer_type); |
EXPECT_EQ(answer_contents, match.answer_contents); |
EXPECT_EQ(answer_type, match.answer_type); |
+ ASSERT_TRUE(match.answer.get() != nullptr); |
+ EXPECT_EQ(*answer, *match.answer); |
EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, match.type); |
EXPECT_EQ(1300, match.relevance); |
EXPECT_EQ(answer_contents, duplicate.answer_contents); |
EXPECT_EQ(answer_type, duplicate.answer_type); |
+ ASSERT_TRUE(duplicate.answer.get() != nullptr); |
+ EXPECT_EQ(*answer, *duplicate.answer); |
EXPECT_EQ(AutocompleteMatchType::SEARCH_SUGGEST, duplicate.type); |
EXPECT_EQ(850, duplicate.relevance); |
// Ensure answers are not copied over existing answers. |
map.clear(); |
base::string16 answer_contents2 = base::ASCIIToUTF16("different answer"); |
+ base::string16 answer_type2 = base::ASCIIToUTF16("8242"); |
+ scoped_ptr<SuggestionAnswer> answer2(new SuggestionAnswer()); |
+ answer2->SetType(answer_type2); |
more_relevant = SearchSuggestionParser::SuggestResult( |
query, AutocompleteMatchType::SEARCH_HISTORY, query, base::string16(), |
- base::string16(), answer_contents2, answer_type, std::string(), |
- std::string(), false, 1300, true, false, query); |
+ base::string16(), answer_contents2, answer_type2, answer2.Pass(), |
+ std::string(), std::string(), false, 1300, true, false, query); |
provider_->AddMatchToMap( |
more_relevant, std::string(), TemplateURLRef::NO_SUGGESTION_CHOSEN, |
false, false, &map); |
@@ -179,14 +191,19 @@ TEST_F(BaseSearchProviderTest, PreserveAnswersWhenDeduplicating) { |
ASSERT_EQ(1U, match.duplicate_matches.size()); |
duplicate = match.duplicate_matches[0]; |
+ answer2.reset(new SuggestionAnswer()); |
+ answer2->SetType(answer_type2); |
EXPECT_EQ(answer_contents2, match.answer_contents); |
- EXPECT_EQ(answer_type, match.answer_type); |
+ EXPECT_EQ(answer_type2, match.answer_type); |
+ ASSERT_TRUE(match.answer.get() != nullptr); |
+ EXPECT_EQ(*answer2, *match.answer); |
EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, match.type); |
EXPECT_EQ(1300, match.relevance); |
EXPECT_EQ(answer_contents, duplicate.answer_contents); |
EXPECT_EQ(answer_type, duplicate.answer_type); |
+ ASSERT_TRUE(duplicate.answer.get() != nullptr); |
+ EXPECT_EQ(*answer, *duplicate.answer); |
EXPECT_EQ(AutocompleteMatchType::SEARCH_SUGGEST, duplicate.type); |
EXPECT_EQ(850, duplicate.relevance); |
- |
} |