| Index: components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc
|
| diff --git a/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc b/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc
|
| index 907a5c377eb5974c9df98433fa77e388533e7310..22f9399497e0026f5b74fd8d445914711f3a533b 100644
|
| --- a/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc
|
| +++ b/components/ntp_snippets/reading_list/reading_list_suggestions_provider_unittest.cc
|
| @@ -15,17 +15,27 @@ namespace ntp_snippets {
|
|
|
| namespace {
|
|
|
| +using ::testing::Property;
|
| +
|
| class ReadingListSuggestionsProviderTest : public ::testing::Test {
|
| public:
|
| ReadingListSuggestionsProviderTest() {
|
| + std::unique_ptr<base::SimpleTestClock> clock =
|
| + base::MakeUnique<base::SimpleTestClock>();
|
| + clock_ = clock.get();
|
| model_ = base::MakeUnique<ReadingListModelImpl>(
|
| - /*storage_layer=*/nullptr, /*pref_service=*/nullptr,
|
| - base::MakeUnique<base::SimpleTestClock>());
|
| + /*storage_layer=*/nullptr, /*pref_service=*/nullptr, std::move(clock));
|
| + }
|
| +
|
| + void CreateProvider() {
|
| EXPECT_CALL(observer_,
|
| OnCategoryStatusChanged(testing::_, ReadingListCategory(),
|
| CategoryStatus::AVAILABLE_LOADING))
|
| .RetiresOnSaturation();
|
| -
|
| + EXPECT_CALL(observer_,
|
| + OnCategoryStatusChanged(testing::_, ReadingListCategory(),
|
| + CategoryStatus::AVAILABLE))
|
| + .RetiresOnSaturation();
|
| provider_ = base::MakeUnique<ReadingListSuggestionsProvider>(&observer_,
|
| model_.get());
|
| }
|
| @@ -35,16 +45,61 @@ class ReadingListSuggestionsProviderTest : public ::testing::Test {
|
| }
|
|
|
| protected:
|
| + base::SimpleTestClock* clock_;
|
| std::unique_ptr<ReadingListModelImpl> model_;
|
| testing::StrictMock<MockContentSuggestionsProviderObserver> observer_;
|
| std::unique_ptr<ReadingListSuggestionsProvider> provider_;
|
| };
|
|
|
| TEST_F(ReadingListSuggestionsProviderTest, CategoryInfo) {
|
| + EXPECT_CALL(observer_, OnNewSuggestions(testing::_, ReadingListCategory(),
|
| + testing::IsEmpty()))
|
| + .RetiresOnSaturation();
|
| + CreateProvider();
|
| +
|
| CategoryInfo categoryInfo = provider_->GetCategoryInfo(ReadingListCategory());
|
| EXPECT_EQ(ContentSuggestionsAdditionalAction::VIEW_ALL,
|
| categoryInfo.additional_action());
|
| }
|
|
|
| +TEST_F(ReadingListSuggestionsProviderTest, testReturnedSuggestions) {
|
| + GURL urlUnread1 = GURL("http://www.foo1.bar");
|
| + GURL urlUnread2 = GURL("http://www.foo2.bar");
|
| + GURL urlUnread3 = GURL("http://www.foo3.bar");
|
| + GURL urlUnread4 = GURL("http://www.foo4.bar");
|
| + GURL urlRead1 = GURL("http://www.bar.foor");
|
| + std::string unreadTitle1 = "title1";
|
| + std::string unreadTitle2 = "title2";
|
| + std::string unreadTitle3 = "title3";
|
| + std::string unreadTitle4 = "title3";
|
| + std::string readTitle1 = "readTitle4";
|
| + model_->AddEntry(urlUnread1, unreadTitle1,
|
| + reading_list::ADDED_VIA_CURRENT_APP);
|
| + clock_->Advance(base::TimeDelta::FromMilliseconds(10));
|
| + model_->AddEntry(urlUnread2, unreadTitle2,
|
| + reading_list::ADDED_VIA_CURRENT_APP);
|
| + clock_->Advance(base::TimeDelta::FromMilliseconds(10));
|
| + model_->AddEntry(urlRead1, readTitle1, reading_list::ADDED_VIA_CURRENT_APP);
|
| + model_->SetReadStatus(urlRead1, true);
|
| + clock_->Advance(base::TimeDelta::FromMilliseconds(10));
|
| + model_->AddEntry(urlUnread3, unreadTitle3,
|
| + reading_list::ADDED_VIA_CURRENT_APP);
|
| + clock_->Advance(base::TimeDelta::FromMilliseconds(10));
|
| + model_->AddEntry(urlUnread4, unreadTitle4,
|
| + reading_list::ADDED_VIA_CURRENT_APP);
|
| + clock_->Advance(base::TimeDelta::FromMilliseconds(10));
|
| +
|
| + EXPECT_CALL(
|
| + observer_,
|
| + OnNewSuggestions(
|
| + testing::_, ReadingListCategory(),
|
| + testing::ElementsAre(Property(&ContentSuggestion::url, urlUnread4),
|
| + Property(&ContentSuggestion::url, urlUnread3),
|
| + Property(&ContentSuggestion::url, urlUnread2))));
|
| +
|
| + CreateProvider();
|
| +}
|
| +
|
| } // namespace
|
| +
|
| } // namespace ntp_snippets
|
|
|