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

Side by Side Diff: components/ntp_tiles/most_visited_sites_unittest.cc

Issue 2790463003: ntp_tiles: Cleanup enum names (Closed)
Patch Set: add back histogram enums Created 3 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
« no previous file with comments | « components/ntp_tiles/most_visited_sites.cc ('k') | components/ntp_tiles/ntp_tile.h » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/ntp_tiles/most_visited_sites.h" 5 #include "components/ntp_tiles/most_visited_sites.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <ostream> 10 #include <ostream>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // gmock makes it simple to create action templates that do for the various 79 // gmock makes it simple to create action templates that do for the various
80 // possible numbers of arguments. 80 // possible numbers of arguments.
81 ACTION_TEMPLATE(InvokeCallbackArgument, 81 ACTION_TEMPLATE(InvokeCallbackArgument,
82 HAS_1_TEMPLATE_PARAMS(int, k), 82 HAS_1_TEMPLATE_PARAMS(int, k),
83 AND_1_VALUE_PARAMS(p0)) { 83 AND_1_VALUE_PARAMS(p0)) {
84 ::std::tr1::get<k>(args).Run(p0); 84 ::std::tr1::get<k>(args).Run(p0);
85 } 85 }
86 86
87 NTPTile MakeTile(const std::string& title, 87 NTPTile MakeTile(const std::string& title,
88 const std::string& url, 88 const std::string& url,
89 NTPTileSource source) { 89 TileSource source) {
90 NTPTile tile; 90 NTPTile tile;
91 tile.title = base::ASCIIToUTF16(title); 91 tile.title = base::ASCIIToUTF16(title);
92 tile.url = GURL(url); 92 tile.url = GURL(url);
93 tile.source = source; 93 tile.source = source;
94 return tile; 94 return tile;
95 } 95 }
96 96
97 ChromeSuggestion MakeSuggestion(const std::string& title, 97 ChromeSuggestion MakeSuggestion(const std::string& title,
98 const std::string& url) { 98 const std::string& url) {
99 ChromeSuggestion suggestion; 99 ChromeSuggestion suggestion;
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 EXPECT_CALL(*mock_top_sites_, SyncWithHistory()); 367 EXPECT_CALL(*mock_top_sites_, SyncWithHistory());
368 EXPECT_CALL(mock_suggestions_service_, AddCallback(_)) 368 EXPECT_CALL(mock_suggestions_service_, AddCallback(_))
369 .WillOnce(Invoke(&suggestions_service_callbacks_, 369 .WillOnce(Invoke(&suggestions_service_callbacks_,
370 &SuggestionsService::ResponseCallbackList::Add)); 370 &SuggestionsService::ResponseCallbackList::Add));
371 EXPECT_CALL(mock_suggestions_service_, GetSuggestionsDataFromCache()) 371 EXPECT_CALL(mock_suggestions_service_, GetSuggestionsDataFromCache())
372 .WillOnce(Return(SuggestionsProfile())); // Empty cache. 372 .WillOnce(Return(SuggestionsProfile())); // Empty cache.
373 if (IsPopularSitesEnabledViaVariations()) { 373 if (IsPopularSitesEnabledViaVariations()) {
374 EXPECT_CALL( 374 EXPECT_CALL(
375 mock_observer_, 375 mock_observer_,
376 OnMostVisitedURLsAvailable(ElementsAre( 376 OnMostVisitedURLsAvailable(ElementsAre(
377 MatchesTile("Site 1", "http://site1/", NTPTileSource::TOP_SITES), 377 MatchesTile("Site 1", "http://site1/", TileSource::TOP_SITES),
378 MatchesTile("PopularSite1", "http://popularsite1/", 378 MatchesTile("PopularSite1", "http://popularsite1/",
379 NTPTileSource::POPULAR), 379 TileSource::POPULAR),
380 MatchesTile("PopularSite2", "http://popularsite2/", 380 MatchesTile("PopularSite2", "http://popularsite2/",
381 NTPTileSource::POPULAR)))); 381 TileSource::POPULAR))));
382 } else { 382 } else {
383 EXPECT_CALL(mock_observer_, 383 EXPECT_CALL(mock_observer_,
384 OnMostVisitedURLsAvailable(ElementsAre(MatchesTile( 384 OnMostVisitedURLsAvailable(ElementsAre(MatchesTile(
385 "Site 1", "http://site1/", NTPTileSource::TOP_SITES)))); 385 "Site 1", "http://site1/", TileSource::TOP_SITES))));
386 } 386 }
387 EXPECT_CALL(mock_suggestions_service_, FetchSuggestionsData()) 387 EXPECT_CALL(mock_suggestions_service_, FetchSuggestionsData())
388 .WillOnce(Return(true)); 388 .WillOnce(Return(true));
389 389
390 most_visited_sites_->SetMostVisitedURLsObserver(&mock_observer_, 390 most_visited_sites_->SetMostVisitedURLsObserver(&mock_observer_,
391 /*num_sites=*/3); 391 /*num_sites=*/3);
392 VerifyAndClearExpectations(); 392 VerifyAndClearExpectations();
393 EXPECT_FALSE(suggestions_service_callbacks_.empty()); 393 EXPECT_FALSE(suggestions_service_callbacks_.empty());
394 CHECK(top_sites_callbacks_.empty()); 394 CHECK(top_sites_callbacks_.empty());
395 395
(...skipping 28 matching lines...) Expand all
424 EXPECT_CALL(mock_suggestions_service_, GetSuggestionsDataFromCache()) 424 EXPECT_CALL(mock_suggestions_service_, GetSuggestionsDataFromCache())
425 .WillOnce(Return(MakeProfile({ 425 .WillOnce(Return(MakeProfile({
426 MakeSuggestion("Site 1", "http://site1/"), 426 MakeSuggestion("Site 1", "http://site1/"),
427 MakeSuggestion("Site 2", "http://site2/"), 427 MakeSuggestion("Site 2", "http://site2/"),
428 MakeSuggestion("Site 3", "http://site3/"), 428 MakeSuggestion("Site 3", "http://site3/"),
429 }))); 429 })));
430 if (IsPopularSitesEnabledViaVariations()) { 430 if (IsPopularSitesEnabledViaVariations()) {
431 EXPECT_CALL(mock_observer_, 431 EXPECT_CALL(mock_observer_,
432 OnMostVisitedURLsAvailable(ElementsAre( 432 OnMostVisitedURLsAvailable(ElementsAre(
433 MatchesTile("Site 1", "http://site1/", 433 MatchesTile("Site 1", "http://site1/",
434 NTPTileSource::SUGGESTIONS_SERVICE), 434 TileSource::SUGGESTIONS_SERVICE),
435 MatchesTile("Site 2", "http://site2/", 435 MatchesTile("Site 2", "http://site2/",
436 NTPTileSource::SUGGESTIONS_SERVICE), 436 TileSource::SUGGESTIONS_SERVICE),
437 MatchesTile("Site 3", "http://site3/", 437 MatchesTile("Site 3", "http://site3/",
438 NTPTileSource::SUGGESTIONS_SERVICE), 438 TileSource::SUGGESTIONS_SERVICE),
439 MatchesTile("PopularSite1", "http://popularsite1/", 439 MatchesTile("PopularSite1", "http://popularsite1/",
440 NTPTileSource::POPULAR)))); 440 TileSource::POPULAR))));
441 } else { 441 } else {
442 EXPECT_CALL(mock_observer_, 442 EXPECT_CALL(mock_observer_,
443 OnMostVisitedURLsAvailable(ElementsAre( 443 OnMostVisitedURLsAvailable(ElementsAre(
444 MatchesTile("Site 1", "http://site1/", 444 MatchesTile("Site 1", "http://site1/",
445 NTPTileSource::SUGGESTIONS_SERVICE), 445 TileSource::SUGGESTIONS_SERVICE),
446 MatchesTile("Site 2", "http://site2/", 446 MatchesTile("Site 2", "http://site2/",
447 NTPTileSource::SUGGESTIONS_SERVICE), 447 TileSource::SUGGESTIONS_SERVICE),
448 MatchesTile("Site 3", "http://site3/", 448 MatchesTile("Site 3", "http://site3/",
449 NTPTileSource::SUGGESTIONS_SERVICE)))); 449 TileSource::SUGGESTIONS_SERVICE))));
450 } 450 }
451 EXPECT_CALL(mock_suggestions_service_, FetchSuggestionsData()) 451 EXPECT_CALL(mock_suggestions_service_, FetchSuggestionsData())
452 .WillOnce(Return(true)); 452 .WillOnce(Return(true));
453 453
454 most_visited_sites_->SetMostVisitedURLsObserver(&mock_observer_, 454 most_visited_sites_->SetMostVisitedURLsObserver(&mock_observer_,
455 /*num_sites=*/4); 455 /*num_sites=*/4);
456 VerifyAndClearExpectations(); 456 VerifyAndClearExpectations();
457 457
458 EXPECT_FALSE(suggestions_service_callbacks_.empty()); 458 EXPECT_FALSE(suggestions_service_callbacks_.empty());
459 EXPECT_TRUE(top_sites_callbacks_.empty()); 459 EXPECT_TRUE(top_sites_callbacks_.empty());
460 } 460 }
461 }; 461 };
462 462
463 TEST_P(MostVisitedSitesWithCacheHitTest, ShouldFavorSuggestionsServiceCache) { 463 TEST_P(MostVisitedSitesWithCacheHitTest, ShouldFavorSuggestionsServiceCache) {
464 // Constructor sets basic expectations for a suggestions service cache hit. 464 // Constructor sets basic expectations for a suggestions service cache hit.
465 } 465 }
466 466
467 TEST_P(MostVisitedSitesWithCacheHitTest, 467 TEST_P(MostVisitedSitesWithCacheHitTest,
468 ShouldPropagateUpdateBySuggestionsService) { 468 ShouldPropagateUpdateBySuggestionsService) {
469 EXPECT_CALL(mock_observer_, 469 EXPECT_CALL(mock_observer_,
470 OnMostVisitedURLsAvailable(ElementsAre( 470 OnMostVisitedURLsAvailable(
471 MatchesTile("Site 4", "http://site4/", 471 ElementsAre(MatchesTile("Site 4", "http://site4/",
472 NTPTileSource::SUGGESTIONS_SERVICE), 472 TileSource::SUGGESTIONS_SERVICE),
473 MatchesTile("Site 5", "http://site5/", 473 MatchesTile("Site 5", "http://site5/",
474 NTPTileSource::SUGGESTIONS_SERVICE), 474 TileSource::SUGGESTIONS_SERVICE),
475 MatchesTile("Site 6", "http://site6/", 475 MatchesTile("Site 6", "http://site6/",
476 NTPTileSource::SUGGESTIONS_SERVICE), 476 TileSource::SUGGESTIONS_SERVICE),
477 MatchesTile("Site 7", "http://site7/", 477 MatchesTile("Site 7", "http://site7/",
478 NTPTileSource::SUGGESTIONS_SERVICE)))); 478 TileSource::SUGGESTIONS_SERVICE))));
479 suggestions_service_callbacks_.Notify( 479 suggestions_service_callbacks_.Notify(
480 MakeProfile({MakeSuggestion("Site 4", "http://site4/"), 480 MakeProfile({MakeSuggestion("Site 4", "http://site4/"),
481 MakeSuggestion("Site 5", "http://site5/"), 481 MakeSuggestion("Site 5", "http://site5/"),
482 MakeSuggestion("Site 6", "http://site6/"), 482 MakeSuggestion("Site 6", "http://site6/"),
483 MakeSuggestion("Site 7", "http://site7/")})); 483 MakeSuggestion("Site 7", "http://site7/")}));
484 base::RunLoop().RunUntilIdle(); 484 base::RunLoop().RunUntilIdle();
485 } 485 }
486 486
487 TEST_P(MostVisitedSitesWithCacheHitTest, ShouldTruncateList) { 487 TEST_P(MostVisitedSitesWithCacheHitTest, ShouldTruncateList) {
488 EXPECT_CALL(mock_observer_, OnMostVisitedURLsAvailable(SizeIs(4))); 488 EXPECT_CALL(mock_observer_, OnMostVisitedURLsAvailable(SizeIs(4)));
489 suggestions_service_callbacks_.Notify( 489 suggestions_service_callbacks_.Notify(
490 MakeProfile({MakeSuggestion("Site 4", "http://site4/"), 490 MakeProfile({MakeSuggestion("Site 4", "http://site4/"),
491 MakeSuggestion("Site 5", "http://site5/"), 491 MakeSuggestion("Site 5", "http://site5/"),
492 MakeSuggestion("Site 6", "http://site6/"), 492 MakeSuggestion("Site 6", "http://site6/"),
493 MakeSuggestion("Site 7", "http://site7/"), 493 MakeSuggestion("Site 7", "http://site7/"),
494 MakeSuggestion("Site 8", "http://site8/")})); 494 MakeSuggestion("Site 8", "http://site8/")}));
495 base::RunLoop().RunUntilIdle(); 495 base::RunLoop().RunUntilIdle();
496 } 496 }
497 497
498 TEST_P(MostVisitedSitesWithCacheHitTest, 498 TEST_P(MostVisitedSitesWithCacheHitTest,
499 ShouldCompleteWithPopularSitesIffEnabled) { 499 ShouldCompleteWithPopularSitesIffEnabled) {
500 if (IsPopularSitesEnabledViaVariations()) { 500 if (IsPopularSitesEnabledViaVariations()) {
501 EXPECT_CALL(mock_observer_, 501 EXPECT_CALL(mock_observer_,
502 OnMostVisitedURLsAvailable(ElementsAre( 502 OnMostVisitedURLsAvailable(ElementsAre(
503 MatchesTile("Site 4", "http://site4/", 503 MatchesTile("Site 4", "http://site4/",
504 NTPTileSource::SUGGESTIONS_SERVICE), 504 TileSource::SUGGESTIONS_SERVICE),
505 MatchesTile("PopularSite1", "http://popularsite1/", 505 MatchesTile("PopularSite1", "http://popularsite1/",
506 NTPTileSource::POPULAR), 506 TileSource::POPULAR),
507 MatchesTile("PopularSite2", "http://popularsite2/", 507 MatchesTile("PopularSite2", "http://popularsite2/",
508 NTPTileSource::POPULAR)))); 508 TileSource::POPULAR))));
509 } else { 509 } else {
510 EXPECT_CALL( 510 EXPECT_CALL(
511 mock_observer_, 511 mock_observer_,
512 OnMostVisitedURLsAvailable(ElementsAre(MatchesTile( 512 OnMostVisitedURLsAvailable(ElementsAre(MatchesTile(
513 "Site 4", "http://site4/", NTPTileSource::SUGGESTIONS_SERVICE)))); 513 "Site 4", "http://site4/", TileSource::SUGGESTIONS_SERVICE))));
514 } 514 }
515 suggestions_service_callbacks_.Notify( 515 suggestions_service_callbacks_.Notify(
516 MakeProfile({MakeSuggestion("Site 4", "http://site4/")})); 516 MakeProfile({MakeSuggestion("Site 4", "http://site4/")}));
517 base::RunLoop().RunUntilIdle(); 517 base::RunLoop().RunUntilIdle();
518 } 518 }
519 519
520 TEST_P(MostVisitedSitesWithCacheHitTest, 520 TEST_P(MostVisitedSitesWithCacheHitTest,
521 ShouldSwitchToTopSitesIfEmptyUpdateBySuggestionsService) { 521 ShouldSwitchToTopSitesIfEmptyUpdateBySuggestionsService) {
522 EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false)) 522 EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
523 .WillOnce(Invoke(&top_sites_callbacks_, &TopSitesCallbackList::Add)); 523 .WillOnce(Invoke(&top_sites_callbacks_, &TopSitesCallbackList::Add));
524 suggestions_service_callbacks_.Notify(SuggestionsProfile()); 524 suggestions_service_callbacks_.Notify(SuggestionsProfile());
525 VerifyAndClearExpectations(); 525 VerifyAndClearExpectations();
526 526
527 EXPECT_CALL( 527 EXPECT_CALL(
528 mock_observer_, 528 mock_observer_,
529 OnMostVisitedURLsAvailable(ElementsAre( 529 OnMostVisitedURLsAvailable(ElementsAre(
530 MatchesTile("Site 4", "http://site4/", NTPTileSource::TOP_SITES), 530 MatchesTile("Site 4", "http://site4/", TileSource::TOP_SITES),
531 MatchesTile("Site 5", "http://site5/", NTPTileSource::TOP_SITES), 531 MatchesTile("Site 5", "http://site5/", TileSource::TOP_SITES),
532 MatchesTile("Site 6", "http://site6/", NTPTileSource::TOP_SITES), 532 MatchesTile("Site 6", "http://site6/", TileSource::TOP_SITES),
533 MatchesTile("Site 7", "http://site7/", NTPTileSource::TOP_SITES)))); 533 MatchesTile("Site 7", "http://site7/", TileSource::TOP_SITES))));
534 top_sites_callbacks_.ClearAndNotify( 534 top_sites_callbacks_.ClearAndNotify(
535 {MakeMostVisitedURL("Site 4", "http://site4/"), 535 {MakeMostVisitedURL("Site 4", "http://site4/"),
536 MakeMostVisitedURL("Site 5", "http://site5/"), 536 MakeMostVisitedURL("Site 5", "http://site5/"),
537 MakeMostVisitedURL("Site 6", "http://site6/"), 537 MakeMostVisitedURL("Site 6", "http://site6/"),
538 MakeMostVisitedURL("Site 7", "http://site7/")}); 538 MakeMostVisitedURL("Site 7", "http://site7/")});
539 base::RunLoop().RunUntilIdle(); 539 base::RunLoop().RunUntilIdle();
540 } 540 }
541 541
542 INSTANTIATE_TEST_CASE_P(MostVisitedSitesWithCacheHitTest, 542 INSTANTIATE_TEST_CASE_P(MostVisitedSitesWithCacheHitTest,
543 MostVisitedSitesWithCacheHitTest, 543 MostVisitedSitesWithCacheHitTest,
(...skipping 29 matching lines...) Expand all
573 ShouldQueryTopSitesAndSuggestionsService) { 573 ShouldQueryTopSitesAndSuggestionsService) {
574 // Constructor sets basic expectations for a suggestions service cache miss. 574 // Constructor sets basic expectations for a suggestions service cache miss.
575 } 575 }
576 576
577 TEST_P(MostVisitedSitesWithEmptyCacheTest, 577 TEST_P(MostVisitedSitesWithEmptyCacheTest,
578 ShouldCompleteWithPopularSitesIffEnabled) { 578 ShouldCompleteWithPopularSitesIffEnabled) {
579 if (IsPopularSitesEnabledViaVariations()) { 579 if (IsPopularSitesEnabledViaVariations()) {
580 EXPECT_CALL(mock_observer_, 580 EXPECT_CALL(mock_observer_,
581 OnMostVisitedURLsAvailable(ElementsAre( 581 OnMostVisitedURLsAvailable(ElementsAre(
582 MatchesTile("Site 4", "http://site4/", 582 MatchesTile("Site 4", "http://site4/",
583 NTPTileSource::SUGGESTIONS_SERVICE), 583 TileSource::SUGGESTIONS_SERVICE),
584 MatchesTile("PopularSite1", "http://popularsite1/", 584 MatchesTile("PopularSite1", "http://popularsite1/",
585 NTPTileSource::POPULAR), 585 TileSource::POPULAR),
586 MatchesTile("PopularSite2", "http://popularsite2/", 586 MatchesTile("PopularSite2", "http://popularsite2/",
587 NTPTileSource::POPULAR)))); 587 TileSource::POPULAR))));
588 } else { 588 } else {
589 EXPECT_CALL( 589 EXPECT_CALL(
590 mock_observer_, 590 mock_observer_,
591 OnMostVisitedURLsAvailable(ElementsAre(MatchesTile( 591 OnMostVisitedURLsAvailable(ElementsAre(MatchesTile(
592 "Site 4", "http://site4/", NTPTileSource::SUGGESTIONS_SERVICE)))); 592 "Site 4", "http://site4/", TileSource::SUGGESTIONS_SERVICE))));
593 } 593 }
594 suggestions_service_callbacks_.Notify( 594 suggestions_service_callbacks_.Notify(
595 MakeProfile({MakeSuggestion("Site 4", "http://site4/")})); 595 MakeProfile({MakeSuggestion("Site 4", "http://site4/")}));
596 base::RunLoop().RunUntilIdle(); 596 base::RunLoop().RunUntilIdle();
597 } 597 }
598 598
599 TEST_P(MostVisitedSitesWithEmptyCacheTest, 599 TEST_P(MostVisitedSitesWithEmptyCacheTest,
600 ShouldIgnoreTopSitesIfSuggestionsServiceFaster) { 600 ShouldIgnoreTopSitesIfSuggestionsServiceFaster) {
601 // Reply from suggestions service triggers and update to our observer. 601 // Reply from suggestions service triggers and update to our observer.
602 EXPECT_CALL(mock_observer_, 602 EXPECT_CALL(mock_observer_,
603 OnMostVisitedURLsAvailable(ElementsAre( 603 OnMostVisitedURLsAvailable(
604 MatchesTile("Site 1", "http://site1/", 604 ElementsAre(MatchesTile("Site 1", "http://site1/",
605 NTPTileSource::SUGGESTIONS_SERVICE), 605 TileSource::SUGGESTIONS_SERVICE),
606 MatchesTile("Site 2", "http://site2/", 606 MatchesTile("Site 2", "http://site2/",
607 NTPTileSource::SUGGESTIONS_SERVICE), 607 TileSource::SUGGESTIONS_SERVICE),
608 MatchesTile("Site 3", "http://site3/", 608 MatchesTile("Site 3", "http://site3/",
609 NTPTileSource::SUGGESTIONS_SERVICE)))); 609 TileSource::SUGGESTIONS_SERVICE))));
610 suggestions_service_callbacks_.Notify( 610 suggestions_service_callbacks_.Notify(
611 MakeProfile({MakeSuggestion("Site 1", "http://site1/"), 611 MakeProfile({MakeSuggestion("Site 1", "http://site1/"),
612 MakeSuggestion("Site 2", "http://site2/"), 612 MakeSuggestion("Site 2", "http://site2/"),
613 MakeSuggestion("Site 3", "http://site3/")})); 613 MakeSuggestion("Site 3", "http://site3/")}));
614 VerifyAndClearExpectations(); 614 VerifyAndClearExpectations();
615 615
616 // Reply from top sites is ignored (i.e. not reported to observer). 616 // Reply from top sites is ignored (i.e. not reported to observer).
617 top_sites_callbacks_.ClearAndNotify( 617 top_sites_callbacks_.ClearAndNotify(
618 {MakeMostVisitedURL("Site 4", "http://site4/")}); 618 {MakeMostVisitedURL("Site 4", "http://site4/")});
619 VerifyAndClearExpectations(); 619 VerifyAndClearExpectations();
620 620
621 // Update by TopSites is also ignored. 621 // Update by TopSites is also ignored.
622 mock_top_sites_->NotifyTopSitesChanged( 622 mock_top_sites_->NotifyTopSitesChanged(
623 history::TopSitesObserver::ChangeReason::MOST_VISITED); 623 history::TopSitesObserver::ChangeReason::MOST_VISITED);
624 base::RunLoop().RunUntilIdle(); 624 base::RunLoop().RunUntilIdle();
625 } 625 }
626 626
627 TEST_P(MostVisitedSitesWithEmptyCacheTest, 627 TEST_P(MostVisitedSitesWithEmptyCacheTest,
628 ShouldExposeTopSitesIfSuggestionsServiceFasterButEmpty) { 628 ShouldExposeTopSitesIfSuggestionsServiceFasterButEmpty) {
629 // Empty reply from suggestions service causes no update to our observer. 629 // Empty reply from suggestions service causes no update to our observer.
630 suggestions_service_callbacks_.Notify(SuggestionsProfile()); 630 suggestions_service_callbacks_.Notify(SuggestionsProfile());
631 VerifyAndClearExpectations(); 631 VerifyAndClearExpectations();
632 632
633 // Reply from top sites is propagated to observer. 633 // Reply from top sites is propagated to observer.
634 EXPECT_CALL( 634 EXPECT_CALL(
635 mock_observer_, 635 mock_observer_,
636 OnMostVisitedURLsAvailable(ElementsAre( 636 OnMostVisitedURLsAvailable(ElementsAre(
637 MatchesTile("Site 1", "http://site1/", NTPTileSource::TOP_SITES), 637 MatchesTile("Site 1", "http://site1/", TileSource::TOP_SITES),
638 MatchesTile("Site 2", "http://site2/", NTPTileSource::TOP_SITES), 638 MatchesTile("Site 2", "http://site2/", TileSource::TOP_SITES),
639 MatchesTile("Site 3", "http://site3/", NTPTileSource::TOP_SITES)))); 639 MatchesTile("Site 3", "http://site3/", TileSource::TOP_SITES))));
640 top_sites_callbacks_.ClearAndNotify( 640 top_sites_callbacks_.ClearAndNotify(
641 {MakeMostVisitedURL("Site 1", "http://site1/"), 641 {MakeMostVisitedURL("Site 1", "http://site1/"),
642 MakeMostVisitedURL("Site 2", "http://site2/"), 642 MakeMostVisitedURL("Site 2", "http://site2/"),
643 MakeMostVisitedURL("Site 3", "http://site3/")}); 643 MakeMostVisitedURL("Site 3", "http://site3/")});
644 base::RunLoop().RunUntilIdle(); 644 base::RunLoop().RunUntilIdle();
645 } 645 }
646 646
647 TEST_P(MostVisitedSitesWithEmptyCacheTest, 647 TEST_P(MostVisitedSitesWithEmptyCacheTest,
648 ShouldFavorSuggestionsServiceAlthoughSlower) { 648 ShouldFavorSuggestionsServiceAlthoughSlower) {
649 // Reply from top sites is propagated to observer. 649 // Reply from top sites is propagated to observer.
650 EXPECT_CALL( 650 EXPECT_CALL(
651 mock_observer_, 651 mock_observer_,
652 OnMostVisitedURLsAvailable(ElementsAre( 652 OnMostVisitedURLsAvailable(ElementsAre(
653 MatchesTile("Site 1", "http://site1/", NTPTileSource::TOP_SITES), 653 MatchesTile("Site 1", "http://site1/", TileSource::TOP_SITES),
654 MatchesTile("Site 2", "http://site2/", NTPTileSource::TOP_SITES), 654 MatchesTile("Site 2", "http://site2/", TileSource::TOP_SITES),
655 MatchesTile("Site 3", "http://site3/", NTPTileSource::TOP_SITES)))); 655 MatchesTile("Site 3", "http://site3/", TileSource::TOP_SITES))));
656 top_sites_callbacks_.ClearAndNotify( 656 top_sites_callbacks_.ClearAndNotify(
657 {MakeMostVisitedURL("Site 1", "http://site1/"), 657 {MakeMostVisitedURL("Site 1", "http://site1/"),
658 MakeMostVisitedURL("Site 2", "http://site2/"), 658 MakeMostVisitedURL("Site 2", "http://site2/"),
659 MakeMostVisitedURL("Site 3", "http://site3/")}); 659 MakeMostVisitedURL("Site 3", "http://site3/")});
660 VerifyAndClearExpectations(); 660 VerifyAndClearExpectations();
661 661
662 // Reply from suggestions service overrides top sites. 662 // Reply from suggestions service overrides top sites.
663 InSequence seq; 663 InSequence seq;
664 EXPECT_CALL(mock_observer_, 664 EXPECT_CALL(mock_observer_,
665 OnMostVisitedURLsAvailable(ElementsAre( 665 OnMostVisitedURLsAvailable(
666 MatchesTile("Site 4", "http://site4/", 666 ElementsAre(MatchesTile("Site 4", "http://site4/",
667 NTPTileSource::SUGGESTIONS_SERVICE), 667 TileSource::SUGGESTIONS_SERVICE),
668 MatchesTile("Site 5", "http://site5/", 668 MatchesTile("Site 5", "http://site5/",
669 NTPTileSource::SUGGESTIONS_SERVICE), 669 TileSource::SUGGESTIONS_SERVICE),
670 MatchesTile("Site 6", "http://site6/", 670 MatchesTile("Site 6", "http://site6/",
671 NTPTileSource::SUGGESTIONS_SERVICE)))); 671 TileSource::SUGGESTIONS_SERVICE))));
672 suggestions_service_callbacks_.Notify( 672 suggestions_service_callbacks_.Notify(
673 MakeProfile({MakeSuggestion("Site 4", "http://site4/"), 673 MakeProfile({MakeSuggestion("Site 4", "http://site4/"),
674 MakeSuggestion("Site 5", "http://site5/"), 674 MakeSuggestion("Site 5", "http://site5/"),
675 MakeSuggestion("Site 6", "http://site6/")})); 675 MakeSuggestion("Site 6", "http://site6/")}));
676 base::RunLoop().RunUntilIdle(); 676 base::RunLoop().RunUntilIdle();
677 } 677 }
678 678
679 TEST_P(MostVisitedSitesWithEmptyCacheTest, 679 TEST_P(MostVisitedSitesWithEmptyCacheTest,
680 ShouldIgnoreSuggestionsServiceIfSlowerAndEmpty) { 680 ShouldIgnoreSuggestionsServiceIfSlowerAndEmpty) {
681 // Reply from top sites is propagated to observer. 681 // Reply from top sites is propagated to observer.
682 EXPECT_CALL( 682 EXPECT_CALL(
683 mock_observer_, 683 mock_observer_,
684 OnMostVisitedURLsAvailable(ElementsAre( 684 OnMostVisitedURLsAvailable(ElementsAre(
685 MatchesTile("Site 1", "http://site1/", NTPTileSource::TOP_SITES), 685 MatchesTile("Site 1", "http://site1/", TileSource::TOP_SITES),
686 MatchesTile("Site 2", "http://site2/", NTPTileSource::TOP_SITES), 686 MatchesTile("Site 2", "http://site2/", TileSource::TOP_SITES),
687 MatchesTile("Site 3", "http://site3/", NTPTileSource::TOP_SITES)))); 687 MatchesTile("Site 3", "http://site3/", TileSource::TOP_SITES))));
688 top_sites_callbacks_.ClearAndNotify( 688 top_sites_callbacks_.ClearAndNotify(
689 {MakeMostVisitedURL("Site 1", "http://site1/"), 689 {MakeMostVisitedURL("Site 1", "http://site1/"),
690 MakeMostVisitedURL("Site 2", "http://site2/"), 690 MakeMostVisitedURL("Site 2", "http://site2/"),
691 MakeMostVisitedURL("Site 3", "http://site3/")}); 691 MakeMostVisitedURL("Site 3", "http://site3/")});
692 VerifyAndClearExpectations(); 692 VerifyAndClearExpectations();
693 693
694 // Reply from suggestions service is empty and thus ignored. 694 // Reply from suggestions service is empty and thus ignored.
695 suggestions_service_callbacks_.Notify(SuggestionsProfile()); 695 suggestions_service_callbacks_.Notify(SuggestionsProfile());
696 base::RunLoop().RunUntilIdle(); 696 base::RunLoop().RunUntilIdle();
697 } 697 }
698 698
699 TEST_P(MostVisitedSitesWithEmptyCacheTest, ShouldPropagateUpdateByTopSites) { 699 TEST_P(MostVisitedSitesWithEmptyCacheTest, ShouldPropagateUpdateByTopSites) {
700 // Reply from top sites is propagated to observer. 700 // Reply from top sites is propagated to observer.
701 EXPECT_CALL( 701 EXPECT_CALL(
702 mock_observer_, 702 mock_observer_,
703 OnMostVisitedURLsAvailable(ElementsAre( 703 OnMostVisitedURLsAvailable(ElementsAre(
704 MatchesTile("Site 1", "http://site1/", NTPTileSource::TOP_SITES), 704 MatchesTile("Site 1", "http://site1/", TileSource::TOP_SITES),
705 MatchesTile("Site 2", "http://site2/", NTPTileSource::TOP_SITES), 705 MatchesTile("Site 2", "http://site2/", TileSource::TOP_SITES),
706 MatchesTile("Site 3", "http://site3/", NTPTileSource::TOP_SITES)))); 706 MatchesTile("Site 3", "http://site3/", TileSource::TOP_SITES))));
707 top_sites_callbacks_.ClearAndNotify( 707 top_sites_callbacks_.ClearAndNotify(
708 {MakeMostVisitedURL("Site 1", "http://site1/"), 708 {MakeMostVisitedURL("Site 1", "http://site1/"),
709 MakeMostVisitedURL("Site 2", "http://site2/"), 709 MakeMostVisitedURL("Site 2", "http://site2/"),
710 MakeMostVisitedURL("Site 3", "http://site3/")}); 710 MakeMostVisitedURL("Site 3", "http://site3/")});
711 VerifyAndClearExpectations(); 711 VerifyAndClearExpectations();
712 712
713 // Reply from suggestions service is empty and thus ignored. 713 // Reply from suggestions service is empty and thus ignored.
714 suggestions_service_callbacks_.Notify(SuggestionsProfile()); 714 suggestions_service_callbacks_.Notify(SuggestionsProfile());
715 VerifyAndClearExpectations(); 715 VerifyAndClearExpectations();
716 EXPECT_TRUE(top_sites_callbacks_.empty()); 716 EXPECT_TRUE(top_sites_callbacks_.empty());
717 717
718 // Update from top sites is propagated to observer. 718 // Update from top sites is propagated to observer.
719 EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false)) 719 EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
720 .WillOnce(InvokeCallbackArgument<0>( 720 .WillOnce(InvokeCallbackArgument<0>(
721 MostVisitedURLList{MakeMostVisitedURL("Site 4", "http://site4/"), 721 MostVisitedURLList{MakeMostVisitedURL("Site 4", "http://site4/"),
722 MakeMostVisitedURL("Site 5", "http://site5/"), 722 MakeMostVisitedURL("Site 5", "http://site5/"),
723 MakeMostVisitedURL("Site 6", "http://site6/")})); 723 MakeMostVisitedURL("Site 6", "http://site6/")}));
724 EXPECT_CALL( 724 EXPECT_CALL(
725 mock_observer_, 725 mock_observer_,
726 OnMostVisitedURLsAvailable(ElementsAre( 726 OnMostVisitedURLsAvailable(ElementsAre(
727 MatchesTile("Site 4", "http://site4/", NTPTileSource::TOP_SITES), 727 MatchesTile("Site 4", "http://site4/", TileSource::TOP_SITES),
728 MatchesTile("Site 5", "http://site5/", NTPTileSource::TOP_SITES), 728 MatchesTile("Site 5", "http://site5/", TileSource::TOP_SITES),
729 MatchesTile("Site 6", "http://site6/", NTPTileSource::TOP_SITES)))); 729 MatchesTile("Site 6", "http://site6/", TileSource::TOP_SITES))));
730 mock_top_sites_->NotifyTopSitesChanged( 730 mock_top_sites_->NotifyTopSitesChanged(
731 history::TopSitesObserver::ChangeReason::MOST_VISITED); 731 history::TopSitesObserver::ChangeReason::MOST_VISITED);
732 base::RunLoop().RunUntilIdle(); 732 base::RunLoop().RunUntilIdle();
733 } 733 }
734 734
735 TEST_P(MostVisitedSitesWithEmptyCacheTest, 735 TEST_P(MostVisitedSitesWithEmptyCacheTest,
736 ShouldSendEmptyListIfBothTopSitesAndSuggestionsServiceEmpty) { 736 ShouldSendEmptyListIfBothTopSitesAndSuggestionsServiceEmpty) {
737 if (IsPopularSitesEnabledViaVariations()) { 737 if (IsPopularSitesEnabledViaVariations()) {
738 EXPECT_CALL(mock_observer_, 738 EXPECT_CALL(mock_observer_,
739 OnMostVisitedURLsAvailable(ElementsAre( 739 OnMostVisitedURLsAvailable(ElementsAre(
740 MatchesTile("PopularSite1", "http://popularsite1/", 740 MatchesTile("PopularSite1", "http://popularsite1/",
741 NTPTileSource::POPULAR), 741 TileSource::POPULAR),
742 MatchesTile("PopularSite2", "http://popularsite2/", 742 MatchesTile("PopularSite2", "http://popularsite2/",
743 NTPTileSource::POPULAR)))); 743 TileSource::POPULAR))));
744 } else { 744 } else {
745 // The Android NTP doesn't finish initialization until it gets tiles, so a 745 // The Android NTP doesn't finish initialization until it gets tiles, so a
746 // 0-tile notification is always needed. 746 // 0-tile notification is always needed.
747 EXPECT_CALL(mock_observer_, OnMostVisitedURLsAvailable(IsEmpty())); 747 EXPECT_CALL(mock_observer_, OnMostVisitedURLsAvailable(IsEmpty()));
748 } 748 }
749 suggestions_service_callbacks_.Notify(SuggestionsProfile()); 749 suggestions_service_callbacks_.Notify(SuggestionsProfile());
750 top_sites_callbacks_.ClearAndNotify(MostVisitedURLList{}); 750 top_sites_callbacks_.ClearAndNotify(MostVisitedURLList{});
751 751
752 base::RunLoop().RunUntilIdle(); 752 base::RunLoop().RunUntilIdle();
753 } 753 }
754 754
755 TEST_P(MostVisitedSitesWithEmptyCacheTest, 755 TEST_P(MostVisitedSitesWithEmptyCacheTest,
756 ShouldNotifyOnceIfTopSitesUnchanged) { 756 ShouldNotifyOnceIfTopSitesUnchanged) {
757 EXPECT_CALL( 757 EXPECT_CALL(
758 mock_observer_, 758 mock_observer_,
759 OnMostVisitedURLsAvailable(ElementsAre( 759 OnMostVisitedURLsAvailable(ElementsAre(
760 MatchesTile("Site 1", "http://site1/", NTPTileSource::TOP_SITES), 760 MatchesTile("Site 1", "http://site1/", TileSource::TOP_SITES),
761 MatchesTile("Site 2", "http://site2/", NTPTileSource::TOP_SITES), 761 MatchesTile("Site 2", "http://site2/", TileSource::TOP_SITES),
762 MatchesTile("Site 3", "http://site3/", NTPTileSource::TOP_SITES)))); 762 MatchesTile("Site 3", "http://site3/", TileSource::TOP_SITES))));
763 763
764 suggestions_service_callbacks_.Notify(SuggestionsProfile()); 764 suggestions_service_callbacks_.Notify(SuggestionsProfile());
765 765
766 top_sites_callbacks_.ClearAndNotify( 766 top_sites_callbacks_.ClearAndNotify(
767 {MakeMostVisitedURL("Site 1", "http://site1/"), 767 {MakeMostVisitedURL("Site 1", "http://site1/"),
768 MakeMostVisitedURL("Site 2", "http://site2/"), 768 MakeMostVisitedURL("Site 2", "http://site2/"),
769 MakeMostVisitedURL("Site 3", "http://site3/")}); 769 MakeMostVisitedURL("Site 3", "http://site3/")});
770 base::RunLoop().RunUntilIdle(); 770 base::RunLoop().RunUntilIdle();
771 771
772 for (int i = 0; i < 4; ++i) { 772 for (int i = 0; i < 4; ++i) {
773 EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false)) 773 EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
774 .WillOnce(Invoke(&top_sites_callbacks_, &TopSitesCallbackList::Add)); 774 .WillOnce(Invoke(&top_sites_callbacks_, &TopSitesCallbackList::Add));
775 mock_top_sites_->NotifyTopSitesChanged( 775 mock_top_sites_->NotifyTopSitesChanged(
776 history::TopSitesObserver::ChangeReason::MOST_VISITED); 776 history::TopSitesObserver::ChangeReason::MOST_VISITED);
777 EXPECT_FALSE(top_sites_callbacks_.empty()); 777 EXPECT_FALSE(top_sites_callbacks_.empty());
778 top_sites_callbacks_.ClearAndNotify( 778 top_sites_callbacks_.ClearAndNotify(
779 {MakeMostVisitedURL("Site 1", "http://site1/"), 779 {MakeMostVisitedURL("Site 1", "http://site1/"),
780 MakeMostVisitedURL("Site 2", "http://site2/"), 780 MakeMostVisitedURL("Site 2", "http://site2/"),
781 MakeMostVisitedURL("Site 3", "http://site3/")}); 781 MakeMostVisitedURL("Site 3", "http://site3/")});
782 base::RunLoop().RunUntilIdle(); 782 base::RunLoop().RunUntilIdle();
783 } 783 }
784 } 784 }
785 785
786 TEST_P(MostVisitedSitesWithEmptyCacheTest, 786 TEST_P(MostVisitedSitesWithEmptyCacheTest,
787 ShouldNotifyOnceIfSuggestionsUnchanged) { 787 ShouldNotifyOnceIfSuggestionsUnchanged) {
788 EXPECT_CALL(mock_observer_, 788 EXPECT_CALL(mock_observer_,
789 OnMostVisitedURLsAvailable(ElementsAre( 789 OnMostVisitedURLsAvailable(
790 MatchesTile("Site 1", "http://site1/", 790 ElementsAre(MatchesTile("Site 1", "http://site1/",
791 NTPTileSource::SUGGESTIONS_SERVICE), 791 TileSource::SUGGESTIONS_SERVICE),
792 MatchesTile("Site 2", "http://site2/", 792 MatchesTile("Site 2", "http://site2/",
793 NTPTileSource::SUGGESTIONS_SERVICE), 793 TileSource::SUGGESTIONS_SERVICE),
794 MatchesTile("Site 3", "http://site3/", 794 MatchesTile("Site 3", "http://site3/",
795 NTPTileSource::SUGGESTIONS_SERVICE)))); 795 TileSource::SUGGESTIONS_SERVICE))));
796 796
797 for (int i = 0; i < 5; ++i) { 797 for (int i = 0; i < 5; ++i) {
798 suggestions_service_callbacks_.Notify( 798 suggestions_service_callbacks_.Notify(
799 MakeProfile({MakeSuggestion("Site 1", "http://site1/"), 799 MakeProfile({MakeSuggestion("Site 1", "http://site1/"),
800 MakeSuggestion("Site 2", "http://site2/"), 800 MakeSuggestion("Site 2", "http://site2/"),
801 MakeSuggestion("Site 3", "http://site3/")})); 801 MakeSuggestion("Site 3", "http://site3/")}));
802 } 802 }
803 } 803 }
804 804
805 INSTANTIATE_TEST_CASE_P(MostVisitedSitesWithEmptyCacheTest, 805 INSTANTIATE_TEST_CASE_P(MostVisitedSitesWithEmptyCacheTest,
806 MostVisitedSitesWithEmptyCacheTest, 806 MostVisitedSitesWithEmptyCacheTest,
807 ::testing::Bool()); 807 ::testing::Bool());
808 808
809 // This a test for MostVisitedSites::MergeTiles(...) method, and thus has the 809 // This a test for MostVisitedSites::MergeTiles(...) method, and thus has the
810 // same scope as the method itself. This tests merging popular sites with 810 // same scope as the method itself. This tests merging popular sites with
811 // personal tiles. 811 // personal tiles.
812 // More important things out of the scope of testing presently: 812 // More important things out of the scope of testing presently:
813 // - Removing blacklisted tiles. 813 // - Removing blacklisted tiles.
814 // - Correct host extraction from the URL. 814 // - Correct host extraction from the URL.
815 // - Ensuring personal tiles are not duplicated in popular tiles. 815 // - Ensuring personal tiles are not duplicated in popular tiles.
816 TEST(MostVisitedSitesMergeTest, ShouldMergeTilesWithPersonalOnly) { 816 TEST(MostVisitedSitesMergeTest, ShouldMergeTilesWithPersonalOnly) {
817 std::vector<NTPTile> personal_tiles{ 817 std::vector<NTPTile> personal_tiles{
818 MakeTile("Site 1", "https://www.site1.com/", NTPTileSource::TOP_SITES), 818 MakeTile("Site 1", "https://www.site1.com/", TileSource::TOP_SITES),
819 MakeTile("Site 2", "https://www.site2.com/", NTPTileSource::TOP_SITES), 819 MakeTile("Site 2", "https://www.site2.com/", TileSource::TOP_SITES),
820 MakeTile("Site 3", "https://www.site3.com/", NTPTileSource::TOP_SITES), 820 MakeTile("Site 3", "https://www.site3.com/", TileSource::TOP_SITES),
821 MakeTile("Site 4", "https://www.site4.com/", NTPTileSource::TOP_SITES), 821 MakeTile("Site 4", "https://www.site4.com/", TileSource::TOP_SITES),
822 }; 822 };
823 // Without any popular tiles, the result after merge should be the personal 823 // Without any popular tiles, the result after merge should be the personal
824 // tiles. 824 // tiles.
825 EXPECT_THAT(MostVisitedSites::MergeTiles(std::move(personal_tiles), 825 EXPECT_THAT(MostVisitedSites::MergeTiles(std::move(personal_tiles),
826 /*whitelist_tiles=*/NTPTilesVector(), 826 /*whitelist_tiles=*/NTPTilesVector(),
827 /*popular_tiles=*/NTPTilesVector()), 827 /*popular_tiles=*/NTPTilesVector()),
828 ElementsAre(MatchesTile("Site 1", "https://www.site1.com/", 828 ElementsAre(MatchesTile("Site 1", "https://www.site1.com/",
829 NTPTileSource::TOP_SITES), 829 TileSource::TOP_SITES),
830 MatchesTile("Site 2", "https://www.site2.com/", 830 MatchesTile("Site 2", "https://www.site2.com/",
831 NTPTileSource::TOP_SITES), 831 TileSource::TOP_SITES),
832 MatchesTile("Site 3", "https://www.site3.com/", 832 MatchesTile("Site 3", "https://www.site3.com/",
833 NTPTileSource::TOP_SITES), 833 TileSource::TOP_SITES),
834 MatchesTile("Site 4", "https://www.site4.com/", 834 MatchesTile("Site 4", "https://www.site4.com/",
835 NTPTileSource::TOP_SITES))); 835 TileSource::TOP_SITES)));
836 } 836 }
837 837
838 TEST(MostVisitedSitesMergeTest, ShouldMergeTilesWithPopularOnly) { 838 TEST(MostVisitedSitesMergeTest, ShouldMergeTilesWithPopularOnly) {
839 std::vector<NTPTile> popular_tiles{ 839 std::vector<NTPTile> popular_tiles{
840 MakeTile("Site 1", "https://www.site1.com/", NTPTileSource::POPULAR), 840 MakeTile("Site 1", "https://www.site1.com/", TileSource::POPULAR),
841 MakeTile("Site 2", "https://www.site2.com/", NTPTileSource::POPULAR), 841 MakeTile("Site 2", "https://www.site2.com/", TileSource::POPULAR),
842 MakeTile("Site 3", "https://www.site3.com/", NTPTileSource::POPULAR), 842 MakeTile("Site 3", "https://www.site3.com/", TileSource::POPULAR),
843 MakeTile("Site 4", "https://www.site4.com/", NTPTileSource::POPULAR), 843 MakeTile("Site 4", "https://www.site4.com/", TileSource::POPULAR),
844 }; 844 };
845 // Without any personal tiles, the result after merge should be the popular 845 // Without any personal tiles, the result after merge should be the popular
846 // tiles. 846 // tiles.
847 EXPECT_THAT( 847 EXPECT_THAT(
848 MostVisitedSites::MergeTiles(/*personal_tiles=*/NTPTilesVector(), 848 MostVisitedSites::MergeTiles(/*personal_tiles=*/NTPTilesVector(),
849 /*whitelist_tiles=*/NTPTilesVector(), 849 /*whitelist_tiles=*/NTPTilesVector(),
850 /*popular_tiles=*/std::move(popular_tiles)), 850 /*popular_tiles=*/std::move(popular_tiles)),
851 ElementsAre(MatchesTile("Site 1", "https://www.site1.com/", 851 ElementsAre(
852 NTPTileSource::POPULAR), 852 MatchesTile("Site 1", "https://www.site1.com/", TileSource::POPULAR),
853 MatchesTile("Site 2", "https://www.site2.com/", 853 MatchesTile("Site 2", "https://www.site2.com/", TileSource::POPULAR),
854 NTPTileSource::POPULAR), 854 MatchesTile("Site 3", "https://www.site3.com/", TileSource::POPULAR),
855 MatchesTile("Site 3", "https://www.site3.com/", 855 MatchesTile("Site 4", "https://www.site4.com/",
856 NTPTileSource::POPULAR), 856 TileSource::POPULAR)));
857 MatchesTile("Site 4", "https://www.site4.com/",
858 NTPTileSource::POPULAR)));
859 } 857 }
860 858
861 TEST(MostVisitedSitesMergeTest, ShouldMergeTilesFavoringPersonalOverPopular) { 859 TEST(MostVisitedSitesMergeTest, ShouldMergeTilesFavoringPersonalOverPopular) {
862 std::vector<NTPTile> popular_tiles{ 860 std::vector<NTPTile> popular_tiles{
863 MakeTile("Site 1", "https://www.site1.com/", NTPTileSource::POPULAR), 861 MakeTile("Site 1", "https://www.site1.com/", TileSource::POPULAR),
864 MakeTile("Site 2", "https://www.site2.com/", NTPTileSource::POPULAR), 862 MakeTile("Site 2", "https://www.site2.com/", TileSource::POPULAR),
865 }; 863 };
866 std::vector<NTPTile> personal_tiles{ 864 std::vector<NTPTile> personal_tiles{
867 MakeTile("Site 3", "https://www.site3.com/", NTPTileSource::TOP_SITES), 865 MakeTile("Site 3", "https://www.site3.com/", TileSource::TOP_SITES),
868 MakeTile("Site 4", "https://www.site4.com/", NTPTileSource::TOP_SITES), 866 MakeTile("Site 4", "https://www.site4.com/", TileSource::TOP_SITES),
869 }; 867 };
870 EXPECT_THAT( 868 EXPECT_THAT(
871 MostVisitedSites::MergeTiles(std::move(personal_tiles), 869 MostVisitedSites::MergeTiles(std::move(personal_tiles),
872 /*whitelist_tiles=*/NTPTilesVector(), 870 /*whitelist_tiles=*/NTPTilesVector(),
873 /*popular_tiles=*/std::move(popular_tiles)), 871 /*popular_tiles=*/std::move(popular_tiles)),
874 ElementsAre(MatchesTile("Site 3", "https://www.site3.com/", 872 ElementsAre(
875 NTPTileSource::TOP_SITES), 873 MatchesTile("Site 3", "https://www.site3.com/",
876 MatchesTile("Site 4", "https://www.site4.com/", 874 TileSource::TOP_SITES),
877 NTPTileSource::TOP_SITES), 875 MatchesTile("Site 4", "https://www.site4.com/",
878 MatchesTile("Site 1", "https://www.site1.com/", 876 TileSource::TOP_SITES),
879 NTPTileSource::POPULAR), 877 MatchesTile("Site 1", "https://www.site1.com/", TileSource::POPULAR),
880 MatchesTile("Site 2", "https://www.site2.com/", 878 MatchesTile("Site 2", "https://www.site2.com/",
881 NTPTileSource::POPULAR))); 879 TileSource::POPULAR)));
882 } 880 }
883 881
884 } // namespace 882 } // namespace
885 } // namespace ntp_tiles 883 } // namespace ntp_tiles
OLDNEW
« no previous file with comments | « components/ntp_tiles/most_visited_sites.cc ('k') | components/ntp_tiles/ntp_tile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698