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

Unified Diff: components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.cc

Issue 2469933002: Offline Pages: Replace Observer::OfflinePageModelChanged with OfflinePageAdded. (Closed)
Patch Set: nits Created 4 years 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
Index: components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.cc
diff --git a/components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.cc b/components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.cc
index 18f9e1d62eb5606d30ef6df4bf64053d2cf9959b..c8c3eb5920a986de3c4e6f033e3df0590c883a85 100644
--- a/components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.cc
+++ b/components/ntp_snippets/offline_pages/recent_tab_suggestions_provider_unittest.cc
@@ -80,12 +80,17 @@ class RecentTabSuggestionsProviderTest : public testing::Test {
return ContentSuggestion::ID(recent_tabs_category(), base::IntToString(id));
}
- void FireOfflinePageModelChanged(const std::vector<OfflinePageItem>& items) {
- *(model_.mutable_items()) = items;
- provider_->OfflinePageModelChanged(&model_);
+ void AddOfflinePageToModel(const OfflinePageItem& item) {
+ model_.mutable_items()->push_back(item);
+ provider_->OfflinePageAdded(&model_, item);
}
void FireOfflinePageDeleted(const OfflinePageItem& item) {
+ auto iter = std::remove(model_.mutable_items()->begin(),
+ model_.mutable_items()->end(), item);
+ auto end = model_.mutable_items()->end();
+ model_.mutable_items()->erase(iter, end);
+
provider_->OfflinePageDeleted(item.offline_id, item.client_id);
}
@@ -110,6 +115,11 @@ class RecentTabSuggestionsProviderTest : public testing::Test {
};
TEST_F(RecentTabSuggestionsProviderTest, ShouldConvertToSuggestions) {
+ auto recent_tabs_list = CreateDummyRecentTabs({1, 2});
+ EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(2);
+ for (OfflinePageItem& recent_tab : recent_tabs_list)
+ AddOfflinePageToModel(recent_tab);
+
EXPECT_CALL(
*observer(),
OnNewSuggestions(_, recent_tabs_category(),
@@ -120,17 +130,34 @@ TEST_F(RecentTabSuggestionsProviderTest, ShouldConvertToSuggestions) {
GURL("http://dummy.com/2")),
Property(&ContentSuggestion::url,
GURL("http://dummy.com/3")))));
- FireOfflinePageModelChanged(CreateDummyRecentTabs({1, 2, 3}));
+ AddOfflinePageToModel(CreateDummyRecentTab(3));
}
TEST_F(RecentTabSuggestionsProviderTest, ShouldSortByCreationTime) {
base::Time now = base::Time::Now();
base::Time yesterday = now - base::TimeDelta::FromDays(1);
base::Time tomorrow = now + base::TimeDelta::FromDays(1);
+
std::vector<OfflinePageItem> offline_pages = {
CreateDummyRecentTab(1, now), CreateDummyRecentTab(2, yesterday),
CreateDummyRecentTab(3, tomorrow)};
+ EXPECT_CALL(
+ *observer(),
+ OnNewSuggestions(_, recent_tabs_category(),
+ ElementsAre(Property(&ContentSuggestion::url,
+ GURL("http://dummy.com/1")))));
+ AddOfflinePageToModel(CreateDummyRecentTab(1, now));
+
+ EXPECT_CALL(
+ *observer(),
+ OnNewSuggestions(
+ _, recent_tabs_category(),
+ ElementsAre(
+ Property(&ContentSuggestion::url, GURL("http://dummy.com/1")),
+ Property(&ContentSuggestion::url, GURL("http://dummy.com/2")))));
+ AddOfflinePageToModel(CreateDummyRecentTab(2, yesterday));
+
offline_pages[1].last_access_time =
offline_pages[0].last_access_time + base::TimeDelta::FromHours(1);
@@ -144,7 +171,7 @@ TEST_F(RecentTabSuggestionsProviderTest, ShouldSortByCreationTime) {
GURL("http://dummy.com/1")),
Property(&ContentSuggestion::url,
GURL("http://dummy.com/2")))));
- FireOfflinePageModelChanged(offline_pages);
+ AddOfflinePageToModel(CreateDummyRecentTab(3, tomorrow));
}
TEST_F(RecentTabSuggestionsProviderTest, ShouldDeliverCorrectCategoryInfo) {
@@ -158,7 +185,10 @@ TEST_F(RecentTabSuggestionsProviderTest, ShouldDeliverCorrectCategoryInfo) {
}
TEST_F(RecentTabSuggestionsProviderTest, ShouldDismiss) {
- FireOfflinePageModelChanged(CreateDummyRecentTabs({1, 2, 3, 4}));
+ EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(4);
+ auto recent_tabs_list = CreateDummyRecentTabs({1, 2, 3, 4});
+ for (OfflinePageItem& recent_tab : recent_tabs_list)
+ AddOfflinePageToModel(recent_tab);
// Dismiss 2 and 3.
EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(0);
@@ -176,7 +206,8 @@ TEST_F(RecentTabSuggestionsProviderTest, ShouldDismiss) {
Property(&ContentSuggestion::url,
GURL("http://dummy.com/4")))));
- FireOfflinePageModelChanged(model()->items());
+ AddOfflinePageToModel(ntp_snippets::test::CreateDummyOfflinePageItem(
+ 4, offline_pages::kDefaultNamespace));
Mock::VerifyAndClearExpectations(observer());
// And appear in the dismissed suggestions.
@@ -204,14 +235,17 @@ TEST_F(RecentTabSuggestionsProviderTest, ShouldDismiss) {
// And appear in the reported suggestions for the category again.
EXPECT_CALL(*observer(),
OnNewSuggestions(_, recent_tabs_category(), SizeIs(4)));
- FireOfflinePageModelChanged(model()->items());
+ AddOfflinePageToModel(ntp_snippets::test::CreateDummyOfflinePageItem(
+ 5, offline_pages::kDefaultNamespace));
Mock::VerifyAndClearExpectations(observer());
}
TEST_F(RecentTabSuggestionsProviderTest,
ShouldInvalidateWhenOfflinePageDeleted) {
+ EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(3);
std::vector<OfflinePageItem> offline_pages = CreateDummyRecentTabs({1, 2, 3});
- FireOfflinePageModelChanged(offline_pages);
+ for (OfflinePageItem& recent_tab : offline_pages)
+ AddOfflinePageToModel(recent_tab);
// Invalidation of suggestion 2 should be forwarded.
EXPECT_CALL(*observer(), OnSuggestionInvalidated(_, GetDummySuggestionId(2)));
@@ -219,8 +253,10 @@ TEST_F(RecentTabSuggestionsProviderTest,
}
TEST_F(RecentTabSuggestionsProviderTest, ShouldClearDismissedOnInvalidate) {
+ EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(3);
std::vector<OfflinePageItem> offline_pages = CreateDummyRecentTabs({1, 2, 3});
- FireOfflinePageModelChanged(offline_pages);
+ for (OfflinePageItem& recent_tab : offline_pages)
+ AddOfflinePageToModel(recent_tab);
EXPECT_THAT(ReadDismissedIDsFromPrefs(), IsEmpty());
provider()->DismissSuggestion(GetDummySuggestionId(2));
@@ -231,16 +267,20 @@ TEST_F(RecentTabSuggestionsProviderTest, ShouldClearDismissedOnInvalidate) {
}
TEST_F(RecentTabSuggestionsProviderTest, ShouldClearDismissedOnFetch) {
- FireOfflinePageModelChanged(CreateDummyRecentTabs({1, 2, 3}));
+ EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(3);
+ std::vector<OfflinePageItem> offline_pages = CreateDummyRecentTabs({1, 2, 3});
+ for (OfflinePageItem& recent_tab : offline_pages)
+ AddOfflinePageToModel(recent_tab);
provider()->DismissSuggestion(GetDummySuggestionId(2));
provider()->DismissSuggestion(GetDummySuggestionId(3));
EXPECT_THAT(ReadDismissedIDsFromPrefs(), SizeIs(2));
- FireOfflinePageModelChanged(CreateDummyRecentTabs({2}));
+ FireOfflinePageDeleted(offline_pages[0]);
+ FireOfflinePageDeleted(offline_pages[2]);
EXPECT_THAT(ReadDismissedIDsFromPrefs(), SizeIs(1));
- FireOfflinePageModelChanged(std::vector<OfflinePageItem>());
+ FireOfflinePageDeleted(offline_pages[1]);
EXPECT_THAT(ReadDismissedIDsFromPrefs(), IsEmpty());
}
@@ -255,13 +295,17 @@ TEST_F(RecentTabSuggestionsProviderTest, ShouldNotShowSameUrlMutlipleTimes) {
// We leave IDs different, but make the URLs the same.
offline_pages[2].url = offline_pages[0].url;
+ AddOfflinePageToModel(offline_pages[0]);
+ AddOfflinePageToModel(offline_pages[1]);
+ Mock::VerifyAndClearExpectations(observer());
EXPECT_CALL(*observer(),
OnNewSuggestions(
_, recent_tabs_category(),
UnorderedElementsAre(
Property(&ContentSuggestion::publish_date, now),
Property(&ContentSuggestion::publish_date, tomorrow))));
- FireOfflinePageModelChanged(offline_pages);
+
+ AddOfflinePageToModel(offline_pages[2]);
}
} // namespace ntp_snippets

Powered by Google App Engine
This is Rietveld 408576698