Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(720)

Side by Side Diff: chrome/browser/autocomplete/search_provider_unittest.cc

Issue 456843003: Remove protected virtual methods from BaseSearchProvider (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "chrome/browser/autocomplete/search_provider.h" 5 #include "chrome/browser/autocomplete/search_provider.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
11 #include "base/metrics/user_metrics.h"
11 #include "base/prefs/pref_service.h" 12 #include "base/prefs/pref_service.h"
12 #include "base/run_loop.h" 13 #include "base/run_loop.h"
13 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
14 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
15 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
16 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
17 #include "base/time/time.h" 18 #include "base/time/time.h"
18 #include "build/build_config.h" 19 #include "build/build_config.h"
19 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" 20 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
20 #include "chrome/browser/autocomplete/autocomplete_controller.h" 21 #include "chrome/browser/autocomplete/autocomplete_controller.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 59
59 // Returns the first match in |matches| with |allowed_to_be_default_match| 60 // Returns the first match in |matches| with |allowed_to_be_default_match|
60 // set to true. 61 // set to true.
61 ACMatches::const_iterator FindDefaultMatch(const ACMatches& matches) { 62 ACMatches::const_iterator FindDefaultMatch(const ACMatches& matches) {
62 ACMatches::const_iterator it = matches.begin(); 63 ACMatches::const_iterator it = matches.begin();
63 while ((it != matches.end()) && !it->allowed_to_be_default_match) 64 while ((it != matches.end()) && !it->allowed_to_be_default_match)
64 ++it; 65 ++it;
65 return it; 66 return it;
66 } 67 }
67 68
68 class SuggestionDeletionHandler; 69 void CopyString(std::string* out, const std::string& in) { *out = in; }
69 class SearchProviderForTest : public SearchProvider {
70 public:
71 SearchProviderForTest(AutocompleteProviderListener* listener,
72 TemplateURLService* template_url_service,
73 Profile* profile);
74 bool is_success() { return is_success_; };
75
76 protected:
77 virtual ~SearchProviderForTest();
78
79 private:
80 virtual void RecordDeletionResult(bool success) OVERRIDE;
81 bool is_success_;
82 DISALLOW_COPY_AND_ASSIGN(SearchProviderForTest);
83 };
84
85 SearchProviderForTest::SearchProviderForTest(
86 AutocompleteProviderListener* listener,
87 TemplateURLService* template_url_service,
88 Profile* profile)
89 : SearchProvider(listener, template_url_service, profile),
90 is_success_(false) {
91 }
92
93 SearchProviderForTest::~SearchProviderForTest() {
94 }
95
96 void SearchProviderForTest::RecordDeletionResult(bool success) {
97 is_success_ = success;
98 }
99 70
100 } // namespace 71 } // namespace
101 72
102 // SearchProviderTest --------------------------------------------------------- 73 // SearchProviderTest ---------------------------------------------------------
103 74
104 // The following environment is configured for these tests: 75 // The following environment is configured for these tests:
105 // . The TemplateURL default_t_url_ is set as the default provider. 76 // . The TemplateURL default_t_url_ is set as the default provider.
106 // . The TemplateURL keyword_t_url_ is added to the TemplateURLService. This 77 // . The TemplateURL keyword_t_url_ is added to the TemplateURLService. This
107 // TemplateURL has a valid suggest and search URL. 78 // TemplateURL has a valid suggest and search URL.
108 // . The URL created by using the search term term1_ with default_t_url_ is 79 // . The URL created by using the search term term1_ with default_t_url_ is
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 195
225 content::TestBrowserThreadBundle thread_bundle_; 196 content::TestBrowserThreadBundle thread_bundle_;
226 197
227 // URLFetcherFactory implementation registered. 198 // URLFetcherFactory implementation registered.
228 net::TestURLFetcherFactory test_factory_; 199 net::TestURLFetcherFactory test_factory_;
229 200
230 // Profile we use. 201 // Profile we use.
231 TestingProfile profile_; 202 TestingProfile profile_;
232 203
233 // The provider. 204 // The provider.
234 scoped_refptr<SearchProviderForTest> provider_; 205 scoped_refptr<SearchProvider> provider_;
206
207 // The last action recorded with base::RecordAction().
208 std::string last_user_metrics_action_;
235 209
236 // If non-NULL, OnProviderUpdate quits the current |run_loop_|. 210 // If non-NULL, OnProviderUpdate quits the current |run_loop_|.
237 base::RunLoop* run_loop_; 211 base::RunLoop* run_loop_;
238 212
239 DISALLOW_COPY_AND_ASSIGN(SearchProviderTest); 213 DISALLOW_COPY_AND_ASSIGN(SearchProviderTest);
240 }; 214 };
241 215
242 // static 216 // static
243 const std::string SearchProviderTest::kNotApplicable = "Not Applicable"; 217 const std::string SearchProviderTest::kNotApplicable = "Not Applicable";
244 218
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 ASSERT_NE(0, keyword_t_url_->id()); 256 ASSERT_NE(0, keyword_t_url_->id());
283 257
284 // Add a page and search term for keyword_t_url_. 258 // Add a page and search term for keyword_t_url_.
285 keyword_url_ = AddSearchToHistory(keyword_t_url_, keyword_term_, 1); 259 keyword_url_ = AddSearchToHistory(keyword_t_url_, keyword_term_, 1);
286 260
287 // Keywords are updated by the InMemoryHistoryBackend only after the message 261 // Keywords are updated by the InMemoryHistoryBackend only after the message
288 // has been processed on the history thread. Block until history processes all 262 // has been processed on the history thread. Block until history processes all
289 // requests to ensure the InMemoryDatabase is the state we expect it. 263 // requests to ensure the InMemoryDatabase is the state we expect it.
290 profile_.BlockUntilHistoryProcessesPendingRequests(); 264 profile_.BlockUntilHistoryProcessesPendingRequests();
291 265
292 provider_ = new SearchProviderForTest(this, turl_model, &profile_); 266 provider_ = new SearchProvider(this, turl_model, &profile_);
293 provider_->kMinimumTimeBetweenSuggestQueriesMs = 0; 267 provider_->kMinimumTimeBetweenSuggestQueriesMs = 0;
268
269 base::AddActionCallback(base::Bind(&CopyString, &last_user_metrics_action_));
294 } 270 }
295 271
296 void SearchProviderTest::TearDown() { 272 void SearchProviderTest::TearDown() {
297 base::RunLoop().RunUntilIdle(); 273 base::RunLoop().RunUntilIdle();
298 274
299 // Shutdown the provider before the profile. 275 // Shutdown the provider before the profile.
300 provider_ = NULL; 276 provider_ = NULL;
301 } 277 }
302 278
303 void SearchProviderTest::RunTest(TestData* cases, 279 void SearchProviderTest::RunTest(TestData* cases,
(...skipping 2767 matching lines...) Expand 10 before | Expand all | Expand 10 after
3071 provider_->DeleteMatch(match); 3047 provider_->DeleteMatch(match);
3072 EXPECT_FALSE(provider_->deletion_handlers_.empty()); 3048 EXPECT_FALSE(provider_->deletion_handlers_.empty());
3073 EXPECT_TRUE(provider_->matches_.empty()); 3049 EXPECT_TRUE(provider_->matches_.empty());
3074 // Set up a default fetcher with provided results. 3050 // Set up a default fetcher with provided results.
3075 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID( 3051 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID(
3076 SearchProvider::kDeletionURLFetcherID); 3052 SearchProvider::kDeletionURLFetcherID);
3077 ASSERT_TRUE(fetcher); 3053 ASSERT_TRUE(fetcher);
3078 fetcher->set_response_code(200); 3054 fetcher->set_response_code(200);
3079 fetcher->delegate()->OnURLFetchComplete(fetcher); 3055 fetcher->delegate()->OnURLFetchComplete(fetcher);
3080 EXPECT_TRUE(provider_->deletion_handlers_.empty()); 3056 EXPECT_TRUE(provider_->deletion_handlers_.empty());
3081 EXPECT_TRUE(provider_->is_success()); 3057 EXPECT_EQ("Omnibox.ServerSuggestDelete.Success", last_user_metrics_action_);
3082 3058
3083 // Test a failing deletion request. 3059 // Test a failing deletion request.
3084 provider_->matches_.push_back(match); 3060 provider_->matches_.push_back(match);
3085 provider_->DeleteMatch(match); 3061 provider_->DeleteMatch(match);
3086 EXPECT_FALSE(provider_->deletion_handlers_.empty()); 3062 EXPECT_FALSE(provider_->deletion_handlers_.empty());
3087 // Set up a default fetcher with provided results. 3063 // Set up a default fetcher with provided results.
3088 fetcher = test_factory_.GetFetcherByID( 3064 fetcher = test_factory_.GetFetcherByID(
3089 SearchProvider::kDeletionURLFetcherID); 3065 SearchProvider::kDeletionURLFetcherID);
3090 ASSERT_TRUE(fetcher); 3066 ASSERT_TRUE(fetcher);
3091 fetcher->set_response_code(500); 3067 fetcher->set_response_code(500);
3092 fetcher->delegate()->OnURLFetchComplete(fetcher); 3068 fetcher->delegate()->OnURLFetchComplete(fetcher);
3093 EXPECT_TRUE(provider_->deletion_handlers_.empty()); 3069 EXPECT_TRUE(provider_->deletion_handlers_.empty());
3094 EXPECT_FALSE(provider_->is_success()); 3070 EXPECT_EQ("Omnibox.ServerSuggestDelete.Failure", last_user_metrics_action_);
3095 } 3071 }
3096 3072
3097 TEST_F(SearchProviderTest, TestDeleteHistoryQueryMatch) { 3073 TEST_F(SearchProviderTest, TestDeleteHistoryQueryMatch) {
3098 GURL term_url( 3074 GURL term_url(
3099 AddSearchToHistory(default_t_url_, ASCIIToUTF16("flash games"), 1)); 3075 AddSearchToHistory(default_t_url_, ASCIIToUTF16("flash games"), 1));
3100 profile_.BlockUntilHistoryProcessesPendingRequests(); 3076 profile_.BlockUntilHistoryProcessesPendingRequests();
3101 3077
3102 AutocompleteMatch games; 3078 AutocompleteMatch games;
3103 QueryForInput(ASCIIToUTF16("fla"), false, false); 3079 QueryForInput(ASCIIToUTF16("fla"), false, false);
3104 profile_.BlockUntilHistoryProcessesPendingRequests(); 3080 profile_.BlockUntilHistoryProcessesPendingRequests();
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
3268 // Mismatching input will return empty prefetch data. 3244 // Mismatching input will return empty prefetch data.
3269 AutocompleteInput input2(base::ASCIIToUTF16("weather n"), 3245 AutocompleteInput input2(base::ASCIIToUTF16("weather n"),
3270 base::string16::npos, base::string16(), GURL(), 3246 base::string16::npos, base::string16(), GURL(),
3271 metrics::OmniboxEventProto::INVALID_SPEC, false, 3247 metrics::OmniboxEventProto::INVALID_SPEC, false,
3272 false, true, true, 3248 false, true, true,
3273 ChromeAutocompleteSchemeClassifier(&profile_)); 3249 ChromeAutocompleteSchemeClassifier(&profile_));
3274 provider_->DoAnswersQuery(input2); 3250 provider_->DoAnswersQuery(input2);
3275 EXPECT_TRUE(provider_->prefetch_data_.full_query_text.empty()); 3251 EXPECT_TRUE(provider_->prefetch_data_.full_query_text.empty());
3276 EXPECT_TRUE(provider_->prefetch_data_.query_type.empty()); 3252 EXPECT_TRUE(provider_->prefetch_data_.query_type.empty());
3277 } 3253 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698