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

Unified Diff: components/ntp_tiles/most_visited_sites_unittest.cc

Issue 2897293002: Adding CrHome-specific implementation for home page tile. (Closed)
Patch Set: Refactor tests and initialization Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/ntp_tiles/most_visited_sites.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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))
« no previous file with comments | « components/ntp_tiles/most_visited_sites.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698