| 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 4bd8bc92ab524bb11b751e84a8e662f3acd5d666..c20ff799ae59ae6e1fcd840e02170272f436105f 100644
|
| --- a/components/ntp_tiles/most_visited_sites_unittest.cc
|
| +++ b/components/ntp_tiles/most_visited_sites_unittest.cc
|
| @@ -213,14 +213,17 @@ class MockMostVisitedSitesObserver : public MostVisitedSites::Observer {
|
|
|
| class FakeHomePageClient : public MostVisitedSites::HomePageClient {
|
| public:
|
| - FakeHomePageClient() : home_page_enabled_(false), ntp_is_homepage_(false) {}
|
| + FakeHomePageClient()
|
| + : home_page_enabled_(false),
|
| + ntp_is_homepage_(false),
|
| + home_page_url_(kHomePageUrl) {}
|
| ~FakeHomePageClient() override {}
|
|
|
| bool IsHomePageEnabled() const override { return home_page_enabled_; }
|
|
|
| bool IsNewTabPageUsedAsHomePage() const override { return ntp_is_homepage_; }
|
|
|
| - GURL GetHomepageUrl() const override { return GURL(kHomePageUrl); }
|
| + GURL GetHomepageUrl() const override { return home_page_url_; }
|
|
|
| void SetHomePageEnabled(bool home_page_enabled) {
|
| home_page_enabled_ = home_page_enabled;
|
| @@ -230,9 +233,12 @@ class FakeHomePageClient : public MostVisitedSites::HomePageClient {
|
| ntp_is_homepage_ = ntp_is_homepage;
|
| }
|
|
|
| + void SetHomePageUrl(GURL home_page_url) { home_page_url_ = home_page_url; }
|
| +
|
| private:
|
| bool home_page_enabled_;
|
| bool ntp_is_homepage_;
|
| + GURL home_page_url_;
|
| };
|
|
|
| class MockIconCacher : public IconCacher {
|
| @@ -367,13 +373,10 @@ class MostVisitedSitesTest : public ::testing::TestWithParam<bool> {
|
| .Times(AtLeast(0));
|
| }
|
|
|
| - auto home_page_client = base::MakeUnique<FakeHomePageClient>();
|
| - home_page_client_ = home_page_client.get();
|
| -
|
| most_visited_sites_ = base::MakeUnique<MostVisitedSites>(
|
| &pref_service_, mock_top_sites_, &mock_suggestions_service_,
|
| popular_sites_factory_.New(), std::move(icon_cacher),
|
| - /*supervisor=*/nullptr, std::move(home_page_client));
|
| + /*supervisor=*/nullptr);
|
| }
|
|
|
| bool IsPopularSitesEnabledViaVariations() const { return GetParam(); }
|
| @@ -392,6 +395,13 @@ class MostVisitedSitesTest : public ::testing::TestWithParam<bool> {
|
| return success;
|
| }
|
|
|
| + FakeHomePageClient* RegisterNewHomePageClient() {
|
| + auto home_page_client = base::MakeUnique<FakeHomePageClient>();
|
| + FakeHomePageClient* raw_client_ptr = home_page_client.get();
|
| + most_visited_sites_->SetHomePageClient(std::move(home_page_client));
|
| + return raw_client_ptr;
|
| + }
|
| +
|
| void DisableRemoteSuggestions() {
|
| EXPECT_CALL(mock_suggestions_service_, AddCallback(_))
|
| .Times(AnyNumber())
|
| @@ -415,7 +425,6 @@ class MostVisitedSitesTest : public ::testing::TestWithParam<bool> {
|
| scoped_refptr<StrictMock<MockTopSites>> mock_top_sites_;
|
| StrictMock<MockSuggestionsService> mock_suggestions_service_;
|
| StrictMock<MockMostVisitedSitesObserver> mock_observer_;
|
| - FakeHomePageClient* home_page_client_;
|
| std::unique_ptr<MostVisitedSites> most_visited_sites_;
|
| base::test::ScopedFeatureList feature_list_;
|
| MockIconCacher* icon_cacher_;
|
| @@ -430,7 +439,8 @@ TEST_P(MostVisitedSitesTest, ShouldStartNoCallInConstructor) {
|
| TEST_P(MostVisitedSitesTest, ShouldIncludeTileForHomePage) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(MostVisitedURLList{}));
|
| @@ -445,10 +455,26 @@ TEST_P(MostVisitedSitesTest, ShouldIncludeTileForHomePage) {
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| +TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageWithoutClient) {
|
| + base::test::ScopedFeatureList features;
|
| + features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| + DisableRemoteSuggestions();
|
| + EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| + .WillRepeatedly(InvokeCallbackArgument<0>(MostVisitedURLList{}));
|
| + EXPECT_CALL(*mock_top_sites_, SyncWithHistory());
|
| + EXPECT_CALL(mock_observer_,
|
| + OnMostVisitedURLsAvailable(Not(Contains(
|
| + MatchesTile("", kHomePageUrl, TileSource::HOMEPAGE)))));
|
| + most_visited_sites_->SetMostVisitedURLsObserver(&mock_observer_,
|
| + /*num_sites=*/3);
|
| + base::RunLoop().RunUntilIdle();
|
| +}
|
| +
|
| TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfFeatureDisabled) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndDisableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(MostVisitedURLList{}));
|
| @@ -467,7 +493,8 @@ TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfFeatureDisabled) {
|
| TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfNoTileRequested) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(MostVisitedURLList{}));
|
| @@ -484,7 +511,8 @@ TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfNoTileRequested) {
|
| TEST_P(MostVisitedSitesTest, ShouldReturnOnlyHomePageIfOneTileRequested) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(
|
| @@ -504,7 +532,8 @@ TEST_P(MostVisitedSitesTest, ShouldReturnOnlyHomePageIfOneTileRequested) {
|
| TEST_P(MostVisitedSitesTest, ShouldDeduplicateHomePageWithTopSites) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(
|
| @@ -527,8 +556,9 @@ TEST_P(MostVisitedSitesTest, ShouldDeduplicateHomePageWithTopSites) {
|
| TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfItIsNewTabPage) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| - home_page_client_->SetNtpIsHomePage(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| + home_page_client->SetNtpIsHomePage(true);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(MostVisitedURLList{}));
|
| @@ -547,7 +577,8 @@ TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfItIsNewTabPage) {
|
| TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfThereIsNone) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(false);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(false);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(MostVisitedURLList{}));
|
| @@ -563,10 +594,33 @@ TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfThereIsNone) {
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| +TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfEmptyUrl) {
|
| + const std::string kEmptyHomePageUrl;
|
| + base::test::ScopedFeatureList features;
|
| + features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| + home_page_client->SetHomePageUrl(GURL(kEmptyHomePageUrl));
|
| + DisableRemoteSuggestions();
|
| + EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| + .WillRepeatedly(InvokeCallbackArgument<0>(MostVisitedURLList{}));
|
| + EXPECT_CALL(*mock_top_sites_, SyncWithHistory());
|
| + EXPECT_CALL(*mock_top_sites_, IsBlacklisted(Eq(kEmptyHomePageUrl)))
|
| + .Times(AnyNumber())
|
| + .WillRepeatedly(Return(false));
|
| + EXPECT_CALL(mock_observer_,
|
| + OnMostVisitedURLsAvailable(Not(
|
| + FirstTileIs("", kEmptyHomePageUrl, TileSource::HOMEPAGE))));
|
| + most_visited_sites_->SetMostVisitedURLsObserver(&mock_observer_,
|
| + /*num_sites=*/3);
|
| + base::RunLoop().RunUntilIdle();
|
| +}
|
| +
|
| TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfBlacklisted) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
| .WillRepeatedly(InvokeCallbackArgument<0>(
|
| @@ -591,7 +645,8 @@ TEST_P(MostVisitedSitesTest, ShouldNotIncludeHomePageIfBlacklisted) {
|
| TEST_P(MostVisitedSitesTest, ShouldPinHomePageAgainIfBlacklistingUndone) {
|
| base::test::ScopedFeatureList features;
|
| features.InitAndEnableFeature(ntp_tiles::kPinHomePageAsTileFeature);
|
| - home_page_client_->SetHomePageEnabled(true);
|
| + FakeHomePageClient* home_page_client = RegisterNewHomePageClient();
|
| + home_page_client->SetHomePageEnabled(true);
|
|
|
| DisableRemoteSuggestions();
|
| EXPECT_CALL(*mock_top_sites_, GetMostVisitedURLs(_, false))
|
|
|