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

Side by Side Diff: components/suggestions/suggestions_service_unittest.cc

Issue 1030713002: [Suggestions] Remove support for a Control logging group. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: size fix Created 5 years, 9 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
« no previous file with comments | « components/suggestions/suggestions_service.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/suggestions/suggestions_service.h" 5 #include "components/suggestions/suggestions_service.h"
6 6
7 #include <map> 7 #include <map>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/metrics/field_trial.h"
14 #include "base/strings/utf_string_conversions.h"
15 #include "components/suggestions/blacklist_store.h" 13 #include "components/suggestions/blacklist_store.h"
16 #include "components/suggestions/image_manager.h" 14 #include "components/suggestions/image_manager.h"
17 #include "components/suggestions/proto/suggestions.pb.h" 15 #include "components/suggestions/proto/suggestions.pb.h"
18 #include "components/suggestions/suggestions_store.h" 16 #include "components/suggestions/suggestions_store.h"
19 #include "components/suggestions/suggestions_utils.h" 17 #include "components/suggestions/suggestions_utils.h"
20 #include "components/variations/entropy_provider.h"
21 #include "components/variations/variations_associated_data.h"
22 #include "net/http/http_response_headers.h" 18 #include "net/http/http_response_headers.h"
23 #include "net/http/http_status_code.h" 19 #include "net/http/http_status_code.h"
24 #include "net/url_request/test_url_fetcher_factory.h" 20 #include "net/url_request/test_url_fetcher_factory.h"
25 #include "net/url_request/url_request_status.h" 21 #include "net/url_request/url_request_status.h"
26 #include "net/url_request/url_request_test_util.h" 22 #include "net/url_request/url_request_test_util.h"
27 #include "testing/gmock/include/gmock/gmock.h" 23 #include "testing/gmock/include/gmock/gmock.h"
28 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
29 25
30 using std::string; 26 using std::string;
31 using testing::DoAll; 27 using testing::DoAll;
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 mock_blacklist_store_(NULL), 188 mock_blacklist_store_(NULL),
193 test_suggestions_store_(NULL) {} 189 test_suggestions_store_(NULL) {}
194 190
195 ~SuggestionsServiceTest() override {} 191 ~SuggestionsServiceTest() override {}
196 192
197 void SetUp() override { 193 void SetUp() override {
198 request_context_ = new net::TestURLRequestContextGetter( 194 request_context_ = new net::TestURLRequestContextGetter(
199 io_message_loop_.message_loop_proxy()); 195 io_message_loop_.message_loop_proxy());
200 } 196 }
201 197
202 void EnableFieldTrial(bool control_group) {
203 // Clear the existing |field_trial_list_| to avoid firing a DCHECK.
204 field_trial_list_.reset(NULL);
205 field_trial_list_.reset(
206 new base::FieldTrialList(new metrics::SHA1EntropyProvider("foo")));
207
208 variations::testing::ClearAllVariationParams();
209 std::map<std::string, std::string> params;
210 params[kSuggestionsFieldTrialStateParam] =
211 kSuggestionsFieldTrialStateEnabled;
212 if (control_group) {
213 params[kSuggestionsFieldTrialControlParam] =
214 kSuggestionsFieldTrialStateEnabled;
215 }
216 variations::AssociateVariationParams(kSuggestionsFieldTrialName, "Group1",
217 params);
218 field_trial_ = base::FieldTrialList::CreateFieldTrial(
219 kSuggestionsFieldTrialName, "Group1");
220 field_trial_->group();
221 }
222
223 void FetchSuggestionsDataHelper(SyncState sync_state) { 198 void FetchSuggestionsDataHelper(SyncState sync_state) {
224 scoped_ptr<SuggestionsService> suggestions_service( 199 scoped_ptr<SuggestionsService> suggestions_service(
225 CreateSuggestionsServiceWithMocks()); 200 CreateSuggestionsServiceWithMocks());
226 EXPECT_TRUE(suggestions_service != NULL); 201 EXPECT_TRUE(suggestions_service != NULL);
227 202
228 // Add some suggestions in the cache. 203 // Add some suggestions in the cache.
229 FillSuggestionsStore(); 204 FillSuggestionsStore();
230 SuggestionsProfile suggestions_profile; 205 SuggestionsProfile suggestions_profile;
231 test_suggestions_store_->LoadSuggestions(&suggestions_profile); 206 test_suggestions_store_->LoadSuggestions(&suggestions_profile);
232 207
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 protected: 311 protected:
337 base::MessageLoopForIO io_message_loop_; 312 base::MessageLoopForIO io_message_loop_;
338 net::FakeURLFetcherFactory factory_; 313 net::FakeURLFetcherFactory factory_;
339 // Only used if the SuggestionsService is built with mocks. Not owned. 314 // Only used if the SuggestionsService is built with mocks. Not owned.
340 MockImageManager* mock_thumbnail_manager_; 315 MockImageManager* mock_thumbnail_manager_;
341 MockBlacklistStore* mock_blacklist_store_; 316 MockBlacklistStore* mock_blacklist_store_;
342 TestSuggestionsStore* test_suggestions_store_; 317 TestSuggestionsStore* test_suggestions_store_;
343 scoped_refptr<net::TestURLRequestContextGetter> request_context_; 318 scoped_refptr<net::TestURLRequestContextGetter> request_context_;
344 319
345 private: 320 private:
346 scoped_ptr<base::FieldTrialList> field_trial_list_;
347 scoped_refptr<base::FieldTrial> field_trial_;
348
349 DISALLOW_COPY_AND_ASSIGN(SuggestionsServiceTest); 321 DISALLOW_COPY_AND_ASSIGN(SuggestionsServiceTest);
350 }; 322 };
351 323
352 TEST_F(SuggestionsServiceTest, IsControlGroup) {
353 EnableFieldTrial(false);
354 EXPECT_FALSE(SuggestionsService::IsControlGroup());
355
356 EnableFieldTrial(true);
357 EXPECT_TRUE(SuggestionsService::IsControlGroup());
358 }
359
360 TEST_F(SuggestionsServiceTest, FetchSuggestionsData) { 324 TEST_F(SuggestionsServiceTest, FetchSuggestionsData) {
361 EnableFieldTrial(false);
362 FetchSuggestionsDataHelper(INITIALIZED_ENABLED_HISTORY); 325 FetchSuggestionsDataHelper(INITIALIZED_ENABLED_HISTORY);
363 } 326 }
364 327
365 TEST_F(SuggestionsServiceTest, FetchSuggestionsDataSyncNotInitializedEnabled) { 328 TEST_F(SuggestionsServiceTest, FetchSuggestionsDataSyncNotInitializedEnabled) {
366 EnableFieldTrial(false);
367 FetchSuggestionsDataHelper(NOT_INITIALIZED_ENABLED); 329 FetchSuggestionsDataHelper(NOT_INITIALIZED_ENABLED);
368 } 330 }
369 331
370 TEST_F(SuggestionsServiceTest, FetchSuggestionsDataSyncDisabled) { 332 TEST_F(SuggestionsServiceTest, FetchSuggestionsDataSyncDisabled) {
371 EnableFieldTrial(false);
372 scoped_ptr<SuggestionsService> suggestions_service( 333 scoped_ptr<SuggestionsService> suggestions_service(
373 CreateSuggestionsServiceWithMocks()); 334 CreateSuggestionsServiceWithMocks());
374 EXPECT_TRUE(suggestions_service != NULL); 335 EXPECT_TRUE(suggestions_service != NULL);
375 336
376 FillSuggestionsStore(); 337 FillSuggestionsStore();
377 338
378 // Send the request. Cache is cleared and empty data will be returned to the 339 // Send the request. Cache is cleared and empty data will be returned to the
379 // callback. 340 // callback.
380 suggestions_service->FetchSuggestionsData( 341 suggestions_service->FetchSuggestionsData(
381 SYNC_OR_HISTORY_SYNC_DISABLED, 342 SYNC_OR_HISTORY_SYNC_DISABLED,
382 base::Bind(&SuggestionsServiceTest::ExpectEmptySuggestionsProfile, 343 base::Bind(&SuggestionsServiceTest::ExpectEmptySuggestionsProfile,
383 base::Unretained(this))); 344 base::Unretained(this)));
384 345
385 // Ensure that ExpectEmptySuggestionsProfile ran once. 346 // Ensure that ExpectEmptySuggestionsProfile ran once.
386 EXPECT_EQ(1, suggestions_empty_data_count_); 347 EXPECT_EQ(1, suggestions_empty_data_count_);
387 } 348 }
388 349
389 TEST_F(SuggestionsServiceTest, IssueRequestIfNoneOngoingError) { 350 TEST_F(SuggestionsServiceTest, IssueRequestIfNoneOngoingError) {
390 EnableFieldTrial(false);
391 scoped_ptr<SuggestionsService> suggestions_service( 351 scoped_ptr<SuggestionsService> suggestions_service(
392 CreateSuggestionsServiceWithMocks()); 352 CreateSuggestionsServiceWithMocks());
393 EXPECT_TRUE(suggestions_service != NULL); 353 EXPECT_TRUE(suggestions_service != NULL);
394 354
395 // Fake a request error. 355 // Fake a request error.
396 factory_.SetFakeResponse(GURL(kSuggestionsURL), "irrelevant", net::HTTP_OK, 356 factory_.SetFakeResponse(GURL(kSuggestionsURL), "irrelevant", net::HTTP_OK,
397 net::URLRequestStatus::FAILED); 357 net::URLRequestStatus::FAILED);
398 358
399 EXPECT_CALL(*mock_blacklist_store_, GetTimeUntilReadyForUpload(_)) 359 EXPECT_CALL(*mock_blacklist_store_, GetTimeUntilReadyForUpload(_))
400 .WillOnce(Return(false)); 360 .WillOnce(Return(false));
401 361
402 // Send the request. Empty data will be returned to the callback. 362 // Send the request. Empty data will be returned to the callback.
403 suggestions_service->IssueRequestIfNoneOngoing(GURL(kSuggestionsURL)); 363 suggestions_service->IssueRequestIfNoneOngoing(GURL(kSuggestionsURL));
404 364
405 // (Testing only) wait until suggestion fetch is complete. 365 // (Testing only) wait until suggestion fetch is complete.
406 io_message_loop_.RunUntilIdle(); 366 io_message_loop_.RunUntilIdle();
407 } 367 }
408 368
409 TEST_F(SuggestionsServiceTest, IssueRequestIfNoneOngoingResponseNotOK) { 369 TEST_F(SuggestionsServiceTest, IssueRequestIfNoneOngoingResponseNotOK) {
410 EnableFieldTrial(false);
411 scoped_ptr<SuggestionsService> suggestions_service( 370 scoped_ptr<SuggestionsService> suggestions_service(
412 CreateSuggestionsServiceWithMocks()); 371 CreateSuggestionsServiceWithMocks());
413 EXPECT_TRUE(suggestions_service != NULL); 372 EXPECT_TRUE(suggestions_service != NULL);
414 373
415 // Add some suggestions in the cache. 374 // Add some suggestions in the cache.
416 FillSuggestionsStore(); 375 FillSuggestionsStore();
417 376
418 // Fake a non-200 response code. 377 // Fake a non-200 response code.
419 factory_.SetFakeResponse(GURL(kSuggestionsURL), "irrelevant", 378 factory_.SetFakeResponse(GURL(kSuggestionsURL), "irrelevant",
420 net::HTTP_BAD_REQUEST, 379 net::HTTP_BAD_REQUEST,
421 net::URLRequestStatus::SUCCESS); 380 net::URLRequestStatus::SUCCESS);
422 381
423 // Expect that an upload to the blacklist is scheduled. 382 // Expect that an upload to the blacklist is scheduled.
424 EXPECT_CALL(*mock_blacklist_store_, GetTimeUntilReadyForUpload(_)) 383 EXPECT_CALL(*mock_blacklist_store_, GetTimeUntilReadyForUpload(_))
425 .WillOnce(Return(false)); 384 .WillOnce(Return(false));
426 385
427 // Send the request. Empty data will be returned to the callback. 386 // Send the request. Empty data will be returned to the callback.
428 suggestions_service->IssueRequestIfNoneOngoing(GURL(kSuggestionsURL)); 387 suggestions_service->IssueRequestIfNoneOngoing(GURL(kSuggestionsURL));
429 388
430 // (Testing only) wait until suggestion fetch is complete. 389 // (Testing only) wait until suggestion fetch is complete.
431 io_message_loop_.RunUntilIdle(); 390 io_message_loop_.RunUntilIdle();
432 391
433 // Expect no suggestions in the cache. 392 // Expect no suggestions in the cache.
434 SuggestionsProfile empty_suggestions; 393 SuggestionsProfile empty_suggestions;
435 EXPECT_FALSE(test_suggestions_store_->LoadSuggestions(&empty_suggestions)); 394 EXPECT_FALSE(test_suggestions_store_->LoadSuggestions(&empty_suggestions));
436 } 395 }
437 396
438 TEST_F(SuggestionsServiceTest, BlacklistURL) { 397 TEST_F(SuggestionsServiceTest, BlacklistURL) {
439 EnableFieldTrial(false);
440 scoped_ptr<SuggestionsService> suggestions_service( 398 scoped_ptr<SuggestionsService> suggestions_service(
441 CreateSuggestionsServiceWithMocks()); 399 CreateSuggestionsServiceWithMocks());
442 EXPECT_TRUE(suggestions_service != NULL); 400 EXPECT_TRUE(suggestions_service != NULL);
443 base::TimeDelta no_delay = base::TimeDelta::FromSeconds(0); 401 base::TimeDelta no_delay = base::TimeDelta::FromSeconds(0);
444 suggestions_service->set_blacklist_delay(no_delay); 402 suggestions_service->set_blacklist_delay(no_delay);
445 403
446 GURL blacklist_url(kBlacklistUrl); 404 GURL blacklist_url(kBlacklistUrl);
447 std::string request_url = GetExpectedBlacklistRequestUrl(blacklist_url); 405 std::string request_url = GetExpectedBlacklistRequestUrl(blacklist_url);
448 SuggestionsProfile suggestions_profile = CreateSuggestionsProfile(); 406 SuggestionsProfile suggestions_profile = CreateSuggestionsProfile();
449 factory_.SetFakeResponse(GURL(request_url), 407 factory_.SetFakeResponse(GURL(request_url),
(...skipping 23 matching lines...) Expand all
473 base::MessageLoop::current()->RunUntilIdle(); 431 base::MessageLoop::current()->RunUntilIdle();
474 io_message_loop_.RunUntilIdle(); 432 io_message_loop_.RunUntilIdle();
475 base::MessageLoop::current()->RunUntilIdle(); 433 base::MessageLoop::current()->RunUntilIdle();
476 434
477 // Ensure that CheckSuggestionsData() ran once. 435 // Ensure that CheckSuggestionsData() ran once.
478 EXPECT_EQ(1, suggestions_data_check_count_); 436 EXPECT_EQ(1, suggestions_data_check_count_);
479 EXPECT_FALSE(blacklisting_failed_); 437 EXPECT_FALSE(blacklisting_failed_);
480 } 438 }
481 439
482 TEST_F(SuggestionsServiceTest, BlacklistURLFails) { 440 TEST_F(SuggestionsServiceTest, BlacklistURLFails) {
483 EnableFieldTrial(false);
484 scoped_ptr<SuggestionsService> suggestions_service( 441 scoped_ptr<SuggestionsService> suggestions_service(
485 CreateSuggestionsServiceWithMocks()); 442 CreateSuggestionsServiceWithMocks());
486 EXPECT_TRUE(suggestions_service != NULL); 443 EXPECT_TRUE(suggestions_service != NULL);
487 GURL blacklist_url(kBlacklistUrl); 444 GURL blacklist_url(kBlacklistUrl);
488 EXPECT_CALL(*mock_blacklist_store_, BlacklistUrl(Eq(blacklist_url))) 445 EXPECT_CALL(*mock_blacklist_store_, BlacklistUrl(Eq(blacklist_url)))
489 .WillOnce(Return(false)); 446 .WillOnce(Return(false));
490 447
491 Blacklist(suggestions_service.get(), blacklist_url); 448 Blacklist(suggestions_service.get(), blacklist_url);
492 449
493 EXPECT_TRUE(blacklisting_failed_); 450 EXPECT_TRUE(blacklisting_failed_);
494 EXPECT_EQ(0, suggestions_data_check_count_); 451 EXPECT_EQ(0, suggestions_data_check_count_);
495 } 452 }
496 453
497 // Initial blacklist request fails, triggering a second which succeeds. 454 // Initial blacklist request fails, triggering a second which succeeds.
498 TEST_F(SuggestionsServiceTest, BlacklistURLRequestFails) { 455 TEST_F(SuggestionsServiceTest, BlacklistURLRequestFails) {
499 EnableFieldTrial(false);
500 scoped_ptr<SuggestionsService> suggestions_service( 456 scoped_ptr<SuggestionsService> suggestions_service(
501 CreateSuggestionsServiceWithMocks()); 457 CreateSuggestionsServiceWithMocks());
502 EXPECT_TRUE(suggestions_service != NULL); 458 EXPECT_TRUE(suggestions_service != NULL);
503 base::TimeDelta no_delay = base::TimeDelta::FromSeconds(0); 459 base::TimeDelta no_delay = base::TimeDelta::FromSeconds(0);
504 suggestions_service->set_blacklist_delay(no_delay); 460 suggestions_service->set_blacklist_delay(no_delay);
505 461
506 GURL blacklist_url(kBlacklistUrl); 462 GURL blacklist_url(kBlacklistUrl);
507 std::string request_url = GetExpectedBlacklistRequestUrl(blacklist_url); 463 std::string request_url = GetExpectedBlacklistRequestUrl(blacklist_url);
508 GURL blacklist_url_alt(kBlacklistUrlAlt); 464 GURL blacklist_url_alt(kBlacklistUrlAlt);
509 std::string request_url_alt = GetExpectedBlacklistRequestUrl( 465 std::string request_url_alt = GetExpectedBlacklistRequestUrl(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 // RunUntilIdle on the MessageLoop only works when the task is not posted for 502 // RunUntilIdle on the MessageLoop only works when the task is not posted for
547 // the future. 503 // the future.
548 base::MessageLoop::current()->RunUntilIdle(); 504 base::MessageLoop::current()->RunUntilIdle();
549 io_message_loop_.RunUntilIdle(); 505 io_message_loop_.RunUntilIdle();
550 base::MessageLoop::current()->RunUntilIdle(); 506 base::MessageLoop::current()->RunUntilIdle();
551 io_message_loop_.RunUntilIdle(); 507 io_message_loop_.RunUntilIdle();
552 base::MessageLoop::current()->RunUntilIdle(); 508 base::MessageLoop::current()->RunUntilIdle();
553 } 509 }
554 510
555 TEST_F(SuggestionsServiceTest, UndoBlacklistURL) { 511 TEST_F(SuggestionsServiceTest, UndoBlacklistURL) {
556 EnableFieldTrial(false);
557 scoped_ptr<SuggestionsService> suggestions_service( 512 scoped_ptr<SuggestionsService> suggestions_service(
558 CreateSuggestionsServiceWithMocks()); 513 CreateSuggestionsServiceWithMocks());
559 EXPECT_TRUE(suggestions_service != NULL); 514 EXPECT_TRUE(suggestions_service != NULL);
560 // Ensure scheduling the request doesn't happen before undo. 515 // Ensure scheduling the request doesn't happen before undo.
561 base::TimeDelta delay = base::TimeDelta::FromHours(1); 516 base::TimeDelta delay = base::TimeDelta::FromHours(1);
562 suggestions_service->set_blacklist_delay(delay); 517 suggestions_service->set_blacklist_delay(delay);
563 SuggestionsProfile suggestions_profile = CreateSuggestionsProfile(); 518 SuggestionsProfile suggestions_profile = CreateSuggestionsProfile();
564 GURL blacklist_url(kBlacklistUrl); 519 GURL blacklist_url(kBlacklistUrl);
565 520
566 // Blacklist expectations. 521 // Blacklist expectations.
(...skipping 16 matching lines...) Expand all
583 Blacklist(suggestions_service.get(), blacklist_url); 538 Blacklist(suggestions_service.get(), blacklist_url);
584 UndoBlacklist(suggestions_service.get(), blacklist_url); 539 UndoBlacklist(suggestions_service.get(), blacklist_url);
585 540
586 EXPECT_EQ(2, suggestions_data_check_count_); 541 EXPECT_EQ(2, suggestions_data_check_count_);
587 EXPECT_FALSE(blacklisting_failed_); 542 EXPECT_FALSE(blacklisting_failed_);
588 EXPECT_FALSE(undo_blacklisting_failed_); 543 EXPECT_FALSE(undo_blacklisting_failed_);
589 } 544 }
590 545
591 546
592 TEST_F(SuggestionsServiceTest, UndoBlacklistURLFailsIfNotInBlacklist) { 547 TEST_F(SuggestionsServiceTest, UndoBlacklistURLFailsIfNotInBlacklist) {
593 EnableFieldTrial(false);
594 UndoBlacklistURLFailsHelper(true); 548 UndoBlacklistURLFailsHelper(true);
595 } 549 }
596 550
597 TEST_F(SuggestionsServiceTest, UndoBlacklistURLFailsIfAlreadyCandidate) { 551 TEST_F(SuggestionsServiceTest, UndoBlacklistURLFailsIfAlreadyCandidate) {
598 EnableFieldTrial(false);
599 UndoBlacklistURLFailsHelper(false); 552 UndoBlacklistURLFailsHelper(false);
600 } 553 }
601 554
602 TEST_F(SuggestionsServiceTest, GetBlacklistedUrl) { 555 TEST_F(SuggestionsServiceTest, GetBlacklistedUrl) {
603 EnableFieldTrial(false);
604 scoped_ptr<GURL> request_url; 556 scoped_ptr<GURL> request_url;
605 scoped_ptr<net::FakeURLFetcher> fetcher; 557 scoped_ptr<net::FakeURLFetcher> fetcher;
606 GURL retrieved_url; 558 GURL retrieved_url;
607 559
608 // Not a blacklist request. 560 // Not a blacklist request.
609 request_url.reset(new GURL("http://not-blacklisting.com/a?b=c")); 561 request_url.reset(new GURL("http://not-blacklisting.com/a?b=c"));
610 fetcher = CreateURLFetcher(*request_url, NULL, "", net::HTTP_OK, 562 fetcher = CreateURLFetcher(*request_url, NULL, "", net::HTTP_OK,
611 net::URLRequestStatus::SUCCESS); 563 net::URLRequestStatus::SUCCESS);
612 EXPECT_FALSE(SuggestionsService::GetBlacklistedUrl(*fetcher, &retrieved_url)); 564 EXPECT_FALSE(SuggestionsService::GetBlacklistedUrl(*fetcher, &retrieved_url));
613 565
614 // An actual blacklist request. 566 // An actual blacklist request.
615 string blacklisted_url = "http://blacklisted.com/a?b=c&d=e"; 567 string blacklisted_url = "http://blacklisted.com/a?b=c&d=e";
616 string encoded_blacklisted_url = 568 string encoded_blacklisted_url =
617 "http%3A%2F%2Fblacklisted.com%2Fa%3Fb%3Dc%26d%3De"; 569 "http%3A%2F%2Fblacklisted.com%2Fa%3Fb%3Dc%26d%3De";
618 string blacklist_request_prefix(kSuggestionsBlacklistURLPrefix); 570 string blacklist_request_prefix(kSuggestionsBlacklistURLPrefix);
619 request_url.reset( 571 request_url.reset(
620 new GURL(blacklist_request_prefix + encoded_blacklisted_url)); 572 new GURL(blacklist_request_prefix + encoded_blacklisted_url));
621 fetcher.reset(); 573 fetcher.reset();
622 fetcher = CreateURLFetcher(*request_url, NULL, "", net::HTTP_OK, 574 fetcher = CreateURLFetcher(*request_url, NULL, "", net::HTTP_OK,
623 net::URLRequestStatus::SUCCESS); 575 net::URLRequestStatus::SUCCESS);
624 EXPECT_TRUE(SuggestionsService::GetBlacklistedUrl(*fetcher, &retrieved_url)); 576 EXPECT_TRUE(SuggestionsService::GetBlacklistedUrl(*fetcher, &retrieved_url));
625 EXPECT_EQ(blacklisted_url, retrieved_url.spec()); 577 EXPECT_EQ(blacklisted_url, retrieved_url.spec());
626 } 578 }
627 579
628 TEST_F(SuggestionsServiceTest, UpdateBlacklistDelay) { 580 TEST_F(SuggestionsServiceTest, UpdateBlacklistDelay) {
629 EnableFieldTrial(false);
630 scoped_ptr<SuggestionsService> suggestions_service( 581 scoped_ptr<SuggestionsService> suggestions_service(
631 CreateSuggestionsServiceWithMocks()); 582 CreateSuggestionsServiceWithMocks());
632 base::TimeDelta initial_delay = suggestions_service->blacklist_delay(); 583 base::TimeDelta initial_delay = suggestions_service->blacklist_delay();
633 584
634 // Delay unchanged on success. 585 // Delay unchanged on success.
635 suggestions_service->UpdateBlacklistDelay(true); 586 suggestions_service->UpdateBlacklistDelay(true);
636 EXPECT_EQ(initial_delay, suggestions_service->blacklist_delay()); 587 EXPECT_EQ(initial_delay, suggestions_service->blacklist_delay());
637 588
638 // Delay increases on failure. 589 // Delay increases on failure.
639 suggestions_service->UpdateBlacklistDelay(false); 590 suggestions_service->UpdateBlacklistDelay(false);
640 EXPECT_GT(suggestions_service->blacklist_delay(), initial_delay); 591 EXPECT_GT(suggestions_service->blacklist_delay(), initial_delay);
641 592
642 // Delay resets on success. 593 // Delay resets on success.
643 suggestions_service->UpdateBlacklistDelay(true); 594 suggestions_service->UpdateBlacklistDelay(true);
644 EXPECT_EQ(initial_delay, suggestions_service->blacklist_delay()); 595 EXPECT_EQ(initial_delay, suggestions_service->blacklist_delay());
645 } 596 }
646 597
647 TEST_F(SuggestionsServiceTest, CheckDefaultTimeStamps) { 598 TEST_F(SuggestionsServiceTest, CheckDefaultTimeStamps) {
648 EnableFieldTrial(false);
649 scoped_ptr<SuggestionsService> suggestions_service( 599 scoped_ptr<SuggestionsService> suggestions_service(
650 CreateSuggestionsServiceWithMocks()); 600 CreateSuggestionsServiceWithMocks());
651 SuggestionsProfile suggestions = 601 SuggestionsProfile suggestions =
652 CreateSuggestionsProfileWithExpiryTimestamps(); 602 CreateSuggestionsProfileWithExpiryTimestamps();
653 suggestions_service->SetDefaultExpiryTimestamp(&suggestions, 603 suggestions_service->SetDefaultExpiryTimestamp(&suggestions,
654 kTestDefaultExpiry); 604 kTestDefaultExpiry);
655 EXPECT_EQ(kTestSetExpiry, suggestions.suggestions(0).expiry_ts()); 605 EXPECT_EQ(kTestSetExpiry, suggestions.suggestions(0).expiry_ts());
656 EXPECT_EQ(kTestDefaultExpiry, suggestions.suggestions(1).expiry_ts()); 606 EXPECT_EQ(kTestDefaultExpiry, suggestions.suggestions(1).expiry_ts());
657 } 607 }
658 } // namespace suggestions 608 } // namespace suggestions
OLDNEW
« no previous file with comments | « components/suggestions/suggestions_service.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698