| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/omnibox/base_search_provider.h" | 5 #include "components/omnibox/base_search_provider.h" |
| 6 | 6 |
| 7 #include "base/strings/string16.h" | 7 #include "base/strings/string16.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "components/omnibox/autocomplete_match.h" | 9 #include "components/omnibox/autocomplete_match.h" |
| 10 #include "components/omnibox/autocomplete_match_type.h" | 10 #include "components/omnibox/autocomplete_match_type.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 | 24 |
| 25 class MockAutocompleteProviderClient : public AutocompleteProviderClient { | 25 class MockAutocompleteProviderClient : public AutocompleteProviderClient { |
| 26 public: | 26 public: |
| 27 MockAutocompleteProviderClient() {} | 27 MockAutocompleteProviderClient() {} |
| 28 MOCK_METHOD0(RequestContext, net::URLRequestContextGetter*()); | 28 MOCK_METHOD0(RequestContext, net::URLRequestContextGetter*()); |
| 29 MOCK_METHOD0(IsOffTheRecord, bool()); | 29 MOCK_METHOD0(IsOffTheRecord, bool()); |
| 30 MOCK_METHOD0(AcceptLanguages, std::string()); | 30 MOCK_METHOD0(AcceptLanguages, std::string()); |
| 31 MOCK_METHOD0(SearchSuggestEnabled, bool()); | 31 MOCK_METHOD0(SearchSuggestEnabled, bool()); |
| 32 MOCK_METHOD0(ShowBookmarkBar, bool()); | 32 MOCK_METHOD0(ShowBookmarkBar, bool()); |
| 33 MOCK_METHOD0(SchemeClassifier, const AutocompleteSchemeClassifier&()); | 33 MOCK_METHOD0(SchemeClassifier, const AutocompleteSchemeClassifier&()); |
| 34 MOCK_METHOD0(HistoryService, history::HistoryService*()); |
| 35 MOCK_METHOD0(BookmarkModel, bookmarks::BookmarkModel*()); |
| 34 MOCK_METHOD6( | 36 MOCK_METHOD6( |
| 35 Classify, | 37 Classify, |
| 36 void(const base::string16& text, | 38 void(const base::string16& text, |
| 37 bool prefer_keyword, | 39 bool prefer_keyword, |
| 38 bool allow_exact_keyword_match, | 40 bool allow_exact_keyword_match, |
| 39 metrics::OmniboxEventProto::PageClassification page_classification, | 41 metrics::OmniboxEventProto::PageClassification page_classification, |
| 40 AutocompleteMatch* match, | 42 AutocompleteMatch* match, |
| 41 GURL* alternate_nav_url)); | 43 GURL* alternate_nav_url)); |
| 42 MOCK_METHOD0(InMemoryDatabase, history::URLDatabase*()); | 44 MOCK_METHOD0(InMemoryDatabase, history::URLDatabase*()); |
| 43 MOCK_METHOD2(DeleteMatchingURLsForKeywordFromHistory, | 45 MOCK_METHOD2(DeleteMatchingURLsForKeywordFromHistory, |
| 44 void(history::KeywordID keyword_id, const base::string16& term)); | 46 void(history::KeywordID keyword_id, const base::string16& term)); |
| 45 MOCK_METHOD0(TabSyncEnabledAndUnencrypted, bool()); | 47 MOCK_METHOD0(TabSyncEnabledAndUnencrypted, bool()); |
| 46 MOCK_METHOD1(PrefetchImage, void(const GURL& url)); | 48 MOCK_METHOD1(PrefetchImage, void(const GURL& url)); |
| 47 | 49 |
| 48 private: | 50 private: |
| 49 DISALLOW_COPY_AND_ASSIGN(MockAutocompleteProviderClient); | 51 DISALLOW_COPY_AND_ASSIGN(MockAutocompleteProviderClient); |
| 50 }; | 52 }; |
| 51 | 53 |
| 52 class TestBaseSearchProvider : public BaseSearchProvider { | 54 class TestBaseSearchProvider : public BaseSearchProvider { |
| 53 public: | 55 public: |
| 54 typedef BaseSearchProvider::MatchMap MatchMap; | 56 typedef BaseSearchProvider::MatchMap MatchMap; |
| 55 | 57 |
| 56 // Note: Takes ownership of client. scoped_ptr<> would be the right way to | |
| 57 // express that, but NiceMock<> can't forward a scoped_ptr. | |
| 58 TestBaseSearchProvider(TemplateURLService* template_url_service, | 58 TestBaseSearchProvider(TemplateURLService* template_url_service, |
| 59 AutocompleteProviderClient* client, | 59 AutocompleteProviderClient* client, |
| 60 AutocompleteProvider::Type type) | 60 AutocompleteProvider::Type type) |
| 61 : BaseSearchProvider(template_url_service, | 61 : BaseSearchProvider(template_url_service, client, type) {} |
| 62 scoped_ptr<AutocompleteProviderClient>(client), | |
| 63 type) {} | |
| 64 MOCK_METHOD1(DeleteMatch, void(const AutocompleteMatch& match)); | 62 MOCK_METHOD1(DeleteMatch, void(const AutocompleteMatch& match)); |
| 65 MOCK_CONST_METHOD1(AddProviderInfo, void(ProvidersInfo* provider_info)); | 63 MOCK_CONST_METHOD1(AddProviderInfo, void(ProvidersInfo* provider_info)); |
| 66 MOCK_CONST_METHOD1(GetTemplateURL, const TemplateURL*(bool is_keyword)); | 64 MOCK_CONST_METHOD1(GetTemplateURL, const TemplateURL*(bool is_keyword)); |
| 67 MOCK_CONST_METHOD1(GetInput, const AutocompleteInput(bool is_keyword)); | 65 MOCK_CONST_METHOD1(GetInput, const AutocompleteInput(bool is_keyword)); |
| 68 MOCK_CONST_METHOD1(ShouldAppendExtraParams, | 66 MOCK_CONST_METHOD1(ShouldAppendExtraParams, |
| 69 bool(const SearchSuggestionParser::SuggestResult& result)); | 67 bool(const SearchSuggestionParser::SuggestResult& result)); |
| 70 MOCK_METHOD1(RecordDeletionResult, void(bool success)); | 68 MOCK_METHOD1(RecordDeletionResult, void(bool success)); |
| 71 | 69 |
| 72 MOCK_METHOD3(Start, | 70 MOCK_METHOD3(Start, |
| 73 void(const AutocompleteInput& input, bool minimal_changes, | 71 void(const AutocompleteInput& input, bool minimal_changes, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 100 protected: | 98 protected: |
| 101 void SetUp() override { | 99 void SetUp() override { |
| 102 service_.reset( | 100 service_.reset( |
| 103 new TemplateURLService(NULL, | 101 new TemplateURLService(NULL, |
| 104 scoped_ptr<SearchTermsData>(new SearchTermsData), | 102 scoped_ptr<SearchTermsData>(new SearchTermsData), |
| 105 NULL, | 103 NULL, |
| 106 scoped_ptr<TemplateURLServiceClient>(), | 104 scoped_ptr<TemplateURLServiceClient>(), |
| 107 NULL, | 105 NULL, |
| 108 NULL, | 106 NULL, |
| 109 base::Closure())); | 107 base::Closure())); |
| 108 client_.reset(new NiceMock<MockAutocompleteProviderClient>()); |
| 110 provider_ = new NiceMock<TestBaseSearchProvider>( | 109 provider_ = new NiceMock<TestBaseSearchProvider>( |
| 111 service_.get(), | 110 service_.get(), client_.get(), AutocompleteProvider::TYPE_SEARCH); |
| 112 new NiceMock<MockAutocompleteProviderClient>, | |
| 113 AutocompleteProvider::TYPE_SEARCH); | |
| 114 } | 111 } |
| 115 | 112 |
| 116 scoped_refptr<NiceMock<TestBaseSearchProvider> > provider_; | 113 scoped_refptr<NiceMock<TestBaseSearchProvider> > provider_; |
| 117 scoped_ptr<TemplateURLService> service_; | 114 scoped_ptr<TemplateURLService> service_; |
| 115 scoped_ptr<NiceMock<MockAutocompleteProviderClient>> client_; |
| 118 }; | 116 }; |
| 119 | 117 |
| 120 TEST_F(BaseSearchProviderTest, PreserveAnswersWhenDeduplicating) { | 118 TEST_F(BaseSearchProviderTest, PreserveAnswersWhenDeduplicating) { |
| 121 TemplateURLData data; | 119 TemplateURLData data; |
| 122 data.SetURL("http://foo.com/url?bar={searchTerms}"); | 120 data.SetURL("http://foo.com/url?bar={searchTerms}"); |
| 123 scoped_ptr<TemplateURL> template_url(new TemplateURL(data)); | 121 scoped_ptr<TemplateURL> template_url(new TemplateURL(data)); |
| 124 | 122 |
| 125 TestBaseSearchProvider::MatchMap map; | 123 TestBaseSearchProvider::MatchMap map; |
| 126 base::string16 query = base::ASCIIToUTF16("weather los angeles"); | 124 base::string16 query = base::ASCIIToUTF16("weather los angeles"); |
| 127 base::string16 answer_contents = base::ASCIIToUTF16("some answer content"); | 125 base::string16 answer_contents = base::ASCIIToUTF16("some answer content"); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 EXPECT_TRUE(answer2->Equals(*match.answer)); | 193 EXPECT_TRUE(answer2->Equals(*match.answer)); |
| 196 EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, match.type); | 194 EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, match.type); |
| 197 EXPECT_EQ(1300, match.relevance); | 195 EXPECT_EQ(1300, match.relevance); |
| 198 | 196 |
| 199 EXPECT_EQ(answer_contents, duplicate.answer_contents); | 197 EXPECT_EQ(answer_contents, duplicate.answer_contents); |
| 200 EXPECT_EQ(answer_type, duplicate.answer_type); | 198 EXPECT_EQ(answer_type, duplicate.answer_type); |
| 201 EXPECT_TRUE(answer->Equals(*duplicate.answer)); | 199 EXPECT_TRUE(answer->Equals(*duplicate.answer)); |
| 202 EXPECT_EQ(AutocompleteMatchType::SEARCH_SUGGEST, duplicate.type); | 200 EXPECT_EQ(AutocompleteMatchType::SEARCH_SUGGEST, duplicate.type); |
| 203 EXPECT_EQ(850, duplicate.relevance); | 201 EXPECT_EQ(850, duplicate.relevance); |
| 204 } | 202 } |
| OLD | NEW |