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 | 58 TestBaseSearchProvider(AutocompleteProvider::Type type, |
57 // express that, but NiceMock<> can't forward a scoped_ptr. | |
58 TestBaseSearchProvider(TemplateURLService* template_url_service, | |
59 AutocompleteProviderClient* client, | 59 AutocompleteProviderClient* client, |
60 AutocompleteProvider::Type type) | 60 TemplateURLService* template_url_service) |
61 : BaseSearchProvider(template_url_service, | 61 : BaseSearchProvider(type, client, template_url_service) {} |
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 AutocompleteProvider::TYPE_SEARCH, client_.get(), service_.get()); |
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 |