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

Side by Side Diff: chrome/browser/protector/default_search_provider_change_browsertest.cc

Issue 9968007: [protector] Support for collapsing multiple changes into a single one. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge Created 8 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/metrics/histogram.h" 6 #include "base/metrics/histogram.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/protector/base_setting_change.h"
9 #include "chrome/browser/protector/histograms.h" 10 #include "chrome/browser/protector/histograms.h"
10 #include "chrome/browser/protector/mock_protector_service.h" 11 #include "chrome/browser/protector/mock_protector_service.h"
11 #include "chrome/browser/protector/protector_service_factory.h" 12 #include "chrome/browser/protector/protector_service_factory.h"
12 #include "chrome/browser/search_engines/template_url.h" 13 #include "chrome/browser/search_engines/template_url.h"
13 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" 14 #include "chrome/browser/search_engines/template_url_prepopulate_data.h"
14 #include "chrome/browser/search_engines/template_url_service.h" 15 #include "chrome/browser/search_engines/template_url_service.h"
15 #include "chrome/browser/search_engines/template_url_service_factory.h" 16 #include "chrome/browser/search_engines/template_url_service_factory.h"
16 #include "chrome/browser/ui/browser.h" 17 #include "chrome/browser/ui/browser.h"
17 #include "chrome/common/url_constants.h" 18 #include "chrome/common/url_constants.h"
18 #include "chrome/test/base/in_process_browser_test.h" 19 #include "chrome/test/base/in_process_browser_test.h"
19 #include "chrome/test/base/ui_test_utils.h" 20 #include "chrome/test/base/ui_test_utils.h"
20 #include "googleurl/src/gurl.h" 21 #include "googleurl/src/gurl.h"
21 #include "grit/generated_resources.h" 22 #include "grit/generated_resources.h"
22 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
23 24
24 using ::testing::Invoke; 25 using ::testing::Invoke;
25 using ::testing::NiceMock; 26 using ::testing::NiceMock;
26 using ::testing::Return; 27 using ::testing::Return;
27 28
29 namespace protector {
30
28 namespace { 31 namespace {
29 32
30 // Keyword names and URLs used for testing. 33 // Keyword names and URLs used for testing.
31 const string16 example_info = ASCIIToUTF16("Example.info"); 34 const string16 example_info = ASCIIToUTF16("Example.info");
32 const string16 example_info_long = ASCIIToUTF16("ExampleSearchEngine.info"); 35 const string16 example_info_long = ASCIIToUTF16("ExampleSearchEngine.info");
33 const std::string http_example_info = "http://example.info/%s"; 36 const std::string http_example_info = "http://example.info/?q={searchTerms}";
37 const std::string example_info_domain = "example.info";
34 const string16 example_com = ASCIIToUTF16("Example.com"); 38 const string16 example_com = ASCIIToUTF16("Example.com");
35 const string16 example_com_long = ASCIIToUTF16("ExampleSearchEngine.com"); 39 const string16 example_com_long = ASCIIToUTF16("ExampleSearchEngine.com");
36 const std::string http_example_com = "http://example.com/%s"; 40 const std::string http_example_com = "http://example.com/?q={searchTerms}";
41 const std::string example_com_domain = "example.com";
37 const string16 example_net = ASCIIToUTF16("Example.net"); 42 const string16 example_net = ASCIIToUTF16("Example.net");
38 const std::string http_example_net = "http://example.net/%s"; 43 const std::string http_example_net = "http://example.net/?q={searchTerms}";
44 const std::string example_domain = "example.net";
45
46 const BaseSettingChange::DisplayName kNoDisplayName(
47 BaseSettingChange::kDefaultNamePriority, string16());
39 48
40 // Convenience function. 49 // Convenience function.
41 TemplateURL* MakeTemplateURL(const string16& short_name, 50 TemplateURL* MakeTemplateURL(const string16& short_name,
42 const string16& keyword, 51 const string16& keyword,
43 const std::string& url) { 52 const std::string& url) {
44 TemplateURLData data; 53 TemplateURLData data;
45 data.short_name = short_name; 54 data.short_name = short_name;
46 if (keyword.empty()) 55 if (keyword.empty())
47 data.SetAutogenerateKeyword(true); 56 data.SetAutogenerateKeyword(true);
48 else 57 else
49 data.SetKeyword(keyword); 58 data.SetKeyword(keyword);
50 data.SetURL(url); 59 data.SetURL(url);
51 return new TemplateURL(data); 60 return new TemplateURL(data);
52 } 61 }
53 62
54 }; 63 } // namespace
55
56 namespace protector {
57 64
58 class DefaultSearchProviderChangeTest : public InProcessBrowserTest { 65 class DefaultSearchProviderChangeTest : public InProcessBrowserTest {
59 public: 66 public:
60 virtual void SetUpOnMainThread() OVERRIDE { 67 virtual void SetUpOnMainThread() OVERRIDE {
61 mock_protector_service_ = 68 mock_protector_service_ =
62 MockProtectorService::BuildForProfile(browser()->profile()); 69 MockProtectorService::BuildForProfile(browser()->profile());
63 70
64 // Ensure that TemplateURLService is loaded. 71 // Ensure that TemplateURLService is loaded.
65 turl_service_ = 72 turl_service_ =
66 TemplateURLServiceFactory::GetForProfile(browser()->profile()); 73 TemplateURLServiceFactory::GetForProfile(browser()->profile());
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 current_histogram_id, 1); 176 current_histogram_id, 1);
170 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored, 177 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored,
171 backup_histogram_id, 1); 178 backup_histogram_id, 1);
172 179
173 // Verify text messages. 180 // Verify text messages.
174 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage()); 181 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage());
175 EXPECT_EQ(GetChangeSearchButtonText(example_com), 182 EXPECT_EQ(GetChangeSearchButtonText(example_com),
176 change->GetApplyButtonText()); 183 change->GetApplyButtonText());
177 EXPECT_EQ(GetKeepSearchButtonText(example_info), 184 EXPECT_EQ(GetKeepSearchButtonText(example_info),
178 change->GetDiscardButtonText()); 185 change->GetDiscardButtonText());
186 EXPECT_EQ(example_com_domain, change->GetNewSettingURL().host());
187 EXPECT_EQ(example_com, change->GetApplyDisplayName().second);
179 188
180 // Discard does nothing - backup was already active. 189 // Discard does nothing - backup was already active.
181 change->Discard(browser()); 190 change->Discard(browser());
182 EXPECT_EQ(FindTemplateURL(http_example_info), 191 EXPECT_EQ(FindTemplateURL(http_example_info),
183 turl_service_->GetDefaultSearchProvider()); 192 turl_service_->GetDefaultSearchProvider());
184 ExpectHistogramCount(kProtectorHistogramSearchProviderDiscarded, 193 ExpectHistogramCount(kProtectorHistogramSearchProviderDiscarded,
185 current_histogram_id, 1); 194 current_histogram_id, 1);
186 195
187 // Verify that Apply switches back to |current_url|. 196 // Verify that Apply switches back to |current_url|.
188 change->Apply(browser()); 197 change->Apply(browser());
(...skipping 22 matching lines...) Expand all
211 scoped_ptr<BaseSettingChange> change( 220 scoped_ptr<BaseSettingChange> change(
212 CreateDefaultSearchProviderChange(current_url, backup_url_long)); 221 CreateDefaultSearchProviderChange(current_url, backup_url_long));
213 ASSERT_TRUE(change.get()); 222 ASSERT_TRUE(change.get());
214 ASSERT_TRUE(change->Init(browser()->profile())); 223 ASSERT_TRUE(change->Init(browser()->profile()));
215 224
216 // Verify text messages. 225 // Verify text messages.
217 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage()); 226 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage());
218 EXPECT_EQ(GetChangeSearchButtonText(example_com), 227 EXPECT_EQ(GetChangeSearchButtonText(example_com),
219 change->GetApplyButtonText()); 228 change->GetApplyButtonText());
220 EXPECT_EQ(GetKeepSearchButtonText(), change->GetDiscardButtonText()); 229 EXPECT_EQ(GetKeepSearchButtonText(), change->GetDiscardButtonText());
230 EXPECT_EQ(example_com_domain, change->GetNewSettingURL().host());
231 EXPECT_EQ(example_com, change->GetApplyDisplayName().second);
221 } 232 }
222 233
223 { 234 {
224 // Current name too long. 235 // Current name too long.
225 turl_service_->Add(new TemplateURL(backup_url->data())); 236 turl_service_->Add(new TemplateURL(backup_url->data()));
226 AddAndSetDefault(current_url_long); 237 AddAndSetDefault(current_url_long);
227 238
228 scoped_ptr<BaseSettingChange> change( 239 scoped_ptr<BaseSettingChange> change(
229 CreateDefaultSearchProviderChange(current_url_long, backup_url)); 240 CreateDefaultSearchProviderChange(current_url_long, backup_url));
230 ASSERT_TRUE(change.get()); 241 ASSERT_TRUE(change.get());
231 ASSERT_TRUE(change->Init(browser()->profile())); 242 ASSERT_TRUE(change->Init(browser()->profile()));
232 243
233 // Verify text messages. 244 // Verify text messages.
234 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage()); 245 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage());
235 EXPECT_EQ(GetChangeSearchButtonText(), change->GetApplyButtonText()); 246 EXPECT_EQ(GetChangeSearchButtonText(), change->GetApplyButtonText());
236 EXPECT_EQ(GetKeepSearchButtonText(example_info), 247 EXPECT_EQ(GetKeepSearchButtonText(example_info),
237 change->GetDiscardButtonText()); 248 change->GetDiscardButtonText());
249 EXPECT_EQ(example_com_domain, change->GetNewSettingURL().host());
250 EXPECT_EQ(kNoDisplayName, change->GetApplyDisplayName());
238 } 251 }
239 } 252 }
240 253
241 IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, BackupInvalid) { 254 IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, BackupInvalid) {
242 // Backup is invalid, current search provider exists, fallback to the 255 // Backup is invalid, current search provider exists, fallback to the
243 // prepopulated default search, which exists among keywords. 256 // prepopulated default search, which exists among keywords.
244 int prepopulated_histogram_id = 257 int prepopulated_histogram_id =
245 protector::GetSearchProviderHistogramID(prepopulated_url_.get()); 258 protector::GetSearchProviderHistogramID(prepopulated_url_.get());
246 TemplateURL* current_url = 259 TemplateURL* current_url =
247 MakeTemplateURL(example_com, ASCIIToUTF16("b"), http_example_com); 260 MakeTemplateURL(example_com, ASCIIToUTF16("b"), http_example_com);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 prepopulated_histogram_id, 1); 340 prepopulated_histogram_id, 1);
328 ExpectHistogramCount(kProtectorHistogramSearchProviderMissing, 341 ExpectHistogramCount(kProtectorHistogramSearchProviderMissing,
329 prepopulated_histogram_id, 1); 342 prepopulated_histogram_id, 1);
330 343
331 // Verify text messages. 344 // Verify text messages.
332 EXPECT_EQ(GetBubbleMessage(prepopulated_url_->short_name()), 345 EXPECT_EQ(GetBubbleMessage(prepopulated_url_->short_name()),
333 change->GetBubbleMessage()); 346 change->GetBubbleMessage());
334 EXPECT_EQ(GetChangeSearchButtonText(example_com), 347 EXPECT_EQ(GetChangeSearchButtonText(example_com),
335 change->GetApplyButtonText()); 348 change->GetApplyButtonText());
336 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetDiscardButtonText()); 349 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetDiscardButtonText());
350 EXPECT_EQ(GURL(), change->GetNewSettingURL());
351 EXPECT_EQ(example_com, change->GetApplyDisplayName().second);
337 352
338 // Verify that search engine settings are opened by Discard. 353 // Verify that search engine settings are opened by Discard.
339 ExpectSettingsOpened(chrome::kSearchEnginesSubPage); 354 ExpectSettingsOpened(chrome::kSearchEnginesSubPage);
340 change->Discard(browser()); 355 change->Discard(browser());
341 EXPECT_EQ(FindTemplateURL(prepopulated_url_->url()), 356 EXPECT_EQ(FindTemplateURL(prepopulated_url_->url()),
342 turl_service_->GetDefaultSearchProvider()); 357 turl_service_->GetDefaultSearchProvider());
343 358
344 // Verify that Apply switches back to |current_url|. 359 // Verify that Apply switches back to |current_url|.
345 change->Apply(browser()); 360 change->Apply(browser());
346 EXPECT_EQ(FindTemplateURL(http_example_com), 361 EXPECT_EQ(FindTemplateURL(http_example_com),
(...skipping 23 matching lines...) Expand all
370 ExpectHistogramCount(kProtectorHistogramSearchProviderHijacked, 385 ExpectHistogramCount(kProtectorHistogramSearchProviderHijacked,
371 protector::GetSearchProviderHistogramID(NULL), 1); 386 protector::GetSearchProviderHistogramID(NULL), 1);
372 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored, 387 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored,
373 backup_histogram_id, 1); 388 backup_histogram_id, 1);
374 389
375 // Verify text messages. 390 // Verify text messages.
376 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage()); 391 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage());
377 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetApplyButtonText()); 392 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetApplyButtonText());
378 EXPECT_EQ(GetKeepSearchButtonText(example_info), 393 EXPECT_EQ(GetKeepSearchButtonText(example_info),
379 change->GetDiscardButtonText()); 394 change->GetDiscardButtonText());
395 EXPECT_EQ(GURL(), change->GetNewSettingURL());
396 EXPECT_EQ(kNoDisplayName, change->GetApplyDisplayName());
380 397
381 // Discard does nothing - backup was already active. 398 // Discard does nothing - backup was already active.
382 change->Discard(browser()); 399 change->Discard(browser());
383 EXPECT_EQ(FindTemplateURL(http_example_info), 400 EXPECT_EQ(FindTemplateURL(http_example_info),
384 turl_service_->GetDefaultSearchProvider()); 401 turl_service_->GetDefaultSearchProvider());
385 402
386 // Verify that search engine settings are opened by Apply (no other changes). 403 // Verify that search engine settings are opened by Apply (no other changes).
387 ExpectSettingsOpened(chrome::kSearchEnginesSubPage); 404 ExpectSettingsOpened(chrome::kSearchEnginesSubPage);
388 change->Apply(browser()); 405 change->Apply(browser());
389 EXPECT_EQ(FindTemplateURL(http_example_info), 406 EXPECT_EQ(FindTemplateURL(http_example_info),
(...skipping 23 matching lines...) Expand all
413 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored, 430 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored,
414 prepopulated_histogram_id, 1); 431 prepopulated_histogram_id, 1);
415 ExpectHistogramCount(kProtectorHistogramSearchProviderFallback, 432 ExpectHistogramCount(kProtectorHistogramSearchProviderFallback,
416 prepopulated_histogram_id, 1); 433 prepopulated_histogram_id, 1);
417 434
418 // Verify text messages. 435 // Verify text messages.
419 EXPECT_EQ(GetBubbleMessage(prepopulated_url_->short_name()), 436 EXPECT_EQ(GetBubbleMessage(prepopulated_url_->short_name()),
420 change->GetBubbleMessage()); 437 change->GetBubbleMessage());
421 EXPECT_EQ(string16(), change->GetApplyButtonText()); 438 EXPECT_EQ(string16(), change->GetApplyButtonText());
422 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetDiscardButtonText()); 439 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetDiscardButtonText());
440 EXPECT_EQ(GURL(), change->GetNewSettingURL());
441 EXPECT_EQ(kNoDisplayName, change->GetApplyDisplayName());
423 442
424 // Verify that search engine settings are opened by Discard. 443 // Verify that search engine settings are opened by Discard.
425 ExpectSettingsOpened(chrome::kSearchEnginesSubPage); 444 ExpectSettingsOpened(chrome::kSearchEnginesSubPage);
426 change->Discard(browser()); 445 change->Discard(browser());
427 EXPECT_EQ(FindTemplateURL(prepopulated_url_->url()), 446 EXPECT_EQ(FindTemplateURL(prepopulated_url_->url()),
428 turl_service_->GetDefaultSearchProvider()); 447 turl_service_->GetDefaultSearchProvider());
429 } 448 }
430 449
431 IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, 450 IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest,
432 BackupInvalidFallbackSameAsCurrent) { 451 BackupInvalidFallbackSameAsCurrent) {
(...skipping 21 matching lines...) Expand all
454 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored, 473 ExpectHistogramCount(kProtectorHistogramSearchProviderRestored,
455 prepopulated_histogram_id, 1); 474 prepopulated_histogram_id, 1);
456 ExpectHistogramCount(kProtectorHistogramSearchProviderFallback, 475 ExpectHistogramCount(kProtectorHistogramSearchProviderFallback,
457 prepopulated_histogram_id, 1); 476 prepopulated_histogram_id, 1);
458 477
459 // Verify text messages. 478 // Verify text messages.
460 EXPECT_EQ(GetBubbleMessage(prepopulated_url_->short_name()), 479 EXPECT_EQ(GetBubbleMessage(prepopulated_url_->short_name()),
461 change->GetBubbleMessage()); 480 change->GetBubbleMessage());
462 EXPECT_EQ(string16(), change->GetApplyButtonText()); 481 EXPECT_EQ(string16(), change->GetApplyButtonText());
463 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetDiscardButtonText()); 482 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetDiscardButtonText());
483 EXPECT_EQ(GURL(), change->GetNewSettingURL());
484 EXPECT_EQ(current_url->short_name(), change->GetApplyDisplayName().second);
464 485
465 // Verify that search engine settings are opened by Discard. 486 // Verify that search engine settings are opened by Discard.
466 ExpectSettingsOpened(chrome::kSearchEnginesSubPage); 487 ExpectSettingsOpened(chrome::kSearchEnginesSubPage);
467 change->Discard(browser()); 488 change->Discard(browser());
468 EXPECT_EQ(current_url, turl_service_->GetDefaultSearchProvider()); 489 EXPECT_EQ(current_url, turl_service_->GetDefaultSearchProvider());
469 } 490 }
470 491
471 492
472 IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, 493 IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest,
473 DefaultSearchProviderChangedByUser) { 494 DefaultSearchProviderChangedByUser) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 EXPECT_EQ(FindTemplateURL(http_example_info), 539 EXPECT_EQ(FindTemplateURL(http_example_info),
519 turl_service_->GetDefaultSearchProvider()); 540 turl_service_->GetDefaultSearchProvider());
520 541
521 turl_service_->Remove(current_url); 542 turl_service_->Remove(current_url);
522 543
523 // Verify that text messages altered after removing |current_url|. 544 // Verify that text messages altered after removing |current_url|.
524 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage()); 545 EXPECT_EQ(GetBubbleMessage(), change->GetBubbleMessage());
525 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetApplyButtonText()); 546 EXPECT_EQ(GetOpenSettingsButtonText(), change->GetApplyButtonText());
526 EXPECT_EQ(GetKeepSearchButtonText(example_info), 547 EXPECT_EQ(GetKeepSearchButtonText(example_info),
527 change->GetDiscardButtonText()); 548 change->GetDiscardButtonText());
549 EXPECT_EQ(GURL(), change->GetNewSettingURL());
550 EXPECT_EQ(kNoDisplayName, change->GetApplyDisplayName());
528 551
529 // Verify that search engine settings are opened by Apply. 552 // Verify that search engine settings are opened by Apply.
530 ExpectSettingsOpened(chrome::kSearchEnginesSubPage); 553 ExpectSettingsOpened(chrome::kSearchEnginesSubPage);
531 change->Apply(browser()); 554 change->Apply(browser());
532 EXPECT_EQ(FindTemplateURL(http_example_info), 555 EXPECT_EQ(FindTemplateURL(http_example_info),
533 turl_service_->GetDefaultSearchProvider()); 556 turl_service_->GetDefaultSearchProvider());
534 557
535 // Discard does nothing - backup was already active. 558 // Discard does nothing - backup was already active.
536 change->Discard(browser()); 559 change->Discard(browser());
537 EXPECT_EQ(FindTemplateURL(http_example_info), 560 EXPECT_EQ(FindTemplateURL(http_example_info),
538 turl_service_->GetDefaultSearchProvider()); 561 turl_service_->GetDefaultSearchProvider());
539 } 562 }
540 563
541 } // namespace protector 564 } // namespace protector
OLDNEW
« no previous file with comments | « chrome/browser/protector/default_search_provider_change.cc ('k') | chrome/browser/protector/mock_setting_change.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698