| Index: components/ntp_tiles/most_visited_sites_unittest.cc | 
| diff --git a/components/ntp_tiles/most_visited_sites_unittest.cc b/components/ntp_tiles/most_visited_sites_unittest.cc | 
| index 650b10e925a6944f73505e7e07a6f14f19aedebe..9b742649bbf9ac5a010c2f8f81e16ec054488e90 100644 | 
| --- a/components/ntp_tiles/most_visited_sites_unittest.cc | 
| +++ b/components/ntp_tiles/most_visited_sites_unittest.cc | 
| @@ -20,10 +20,12 @@ | 
| #include "base/run_loop.h" | 
| #include "base/strings/utf_string_conversions.h" | 
| #include "base/task/cancelable_task_tracker.h" | 
| +#include "base/test/scoped_feature_list.h" | 
| #include "base/test/sequenced_worker_pool_owner.h" | 
| #include "base/threading/thread_task_runner_handle.h" | 
| #include "components/history/core/browser/top_sites.h" | 
| #include "components/history/core/browser/top_sites_observer.h" | 
| +#include "components/ntp_tiles/constants.h" | 
| #include "components/ntp_tiles/icon_cacher.h" | 
| #include "components/ntp_tiles/json_unsafe_parser.h" | 
| #include "components/ntp_tiles/popular_sites_impl.h" | 
| @@ -194,10 +196,12 @@ class MockMostVisitedSitesObserver : public MostVisitedSites::Observer { | 
|  | 
| class MockIconCacher : public IconCacher { | 
| public: | 
| -  MOCK_METHOD3(StartFetch, | 
| +  MOCK_METHOD3(StartFetchPopularSites, | 
| void(PopularSites::Site site, | 
| const base::Closure& icon_available, | 
| const base::Closure& preliminary_icon_available)); | 
| +  MOCK_METHOD2(StartFetchMostLikely, | 
| +               void(const GURL& page_url, const base::Closure& icon_available)); | 
| }; | 
|  | 
| class PopularSitesFactoryForTest { | 
| @@ -287,9 +291,14 @@ class MostVisitedSitesTest : public ::testing::TestWithParam<bool> { | 
| switches::kDisableNTPPopularSites); | 
| } | 
|  | 
| +    // Disable in most tests, this is overriden in a specific test. | 
| +    feature_list_.InitAndDisableFeature( | 
| +        kNtpMostLikelyFaviconsFromServerFeature); | 
| + | 
| // We use StrictMock to make sure the object is not used unless Popular | 
| // Sites is enabled. | 
| auto icon_cacher = base::MakeUnique<StrictMock<MockIconCacher>>(); | 
| +    icon_cacher_ = icon_cacher.get(); | 
|  | 
| if (IsPopularSitesEnabledViaVariations()) { | 
| // Populate Popular Sites' internal cache by mimicking a past usage of | 
| @@ -313,7 +322,8 @@ class MostVisitedSitesTest : public ::testing::TestWithParam<bool> { | 
| .WillRepeatedly(Return(false)); | 
| // Mock icon cacher never replies, and we also don't verify whether the | 
| // code uses it correctly. | 
| -      EXPECT_CALL(*icon_cacher, StartFetch(_, _, _)).Times(AtLeast(0)); | 
| +      EXPECT_CALL(*icon_cacher, StartFetchPopularSites(_, _, _)) | 
| +          .Times(AtLeast(0)); | 
| } | 
|  | 
| most_visited_sites_ = base::MakeUnique<MostVisitedSites>( | 
| @@ -349,6 +359,8 @@ class MostVisitedSitesTest : public ::testing::TestWithParam<bool> { | 
| StrictMock<MockSuggestionsService> mock_suggestions_service_; | 
| StrictMock<MockMostVisitedSitesObserver> mock_observer_; | 
| std::unique_ptr<MostVisitedSites> most_visited_sites_; | 
| +  base::test::ScopedFeatureList feature_list_; | 
| +  MockIconCacher* icon_cacher_; | 
| }; | 
|  | 
| TEST_P(MostVisitedSitesTest, ShouldStartNoCallInConstructor) { | 
| @@ -540,6 +552,18 @@ TEST_P(MostVisitedSitesWithCacheHitTest, | 
| base::RunLoop().RunUntilIdle(); | 
| } | 
|  | 
| +TEST_P(MostVisitedSitesWithCacheHitTest, ShouldFetchFaviconsIfEnabled) { | 
| +  base::test::ScopedFeatureList feature_list; | 
| +  feature_list.InitAndEnableFeature(kNtpMostLikelyFaviconsFromServerFeature); | 
| + | 
| +  EXPECT_CALL(mock_observer_, OnMostVisitedURLsAvailable(_)); | 
| +  EXPECT_CALL(*icon_cacher_, StartFetchMostLikely(GURL("http://site4/"), _)); | 
| + | 
| +  suggestions_service_callbacks_.Notify( | 
| +      MakeProfile({MakeSuggestion("Site 4", "http://site4/")})); | 
| +  base::RunLoop().RunUntilIdle(); | 
| +} | 
| + | 
| INSTANTIATE_TEST_CASE_P(MostVisitedSitesWithCacheHitTest, | 
| MostVisitedSitesWithCacheHitTest, | 
| ::testing::Bool()); | 
|  |