Chromium Code Reviews| Index: components/ntp_snippets/remote/remote_suggestions_provider_unittest.cc |
| diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_provider_unittest.cc |
| index 27ac0a2efee7c070fe71981ad46f0b1da1bf3161..06e1db3f78188b0aab239325e9c8a084828da0ed 100644 |
| --- a/components/ntp_snippets/remote/remote_suggestions_provider_unittest.cc |
| +++ b/components/ntp_snippets/remote/remote_suggestions_provider_unittest.cc |
| @@ -32,8 +32,8 @@ |
| #include "components/ntp_snippets/pref_names.h" |
| #include "components/ntp_snippets/remote/ntp_snippet.h" |
| #include "components/ntp_snippets/remote/ntp_snippets_fetcher.h" |
| -#include "components/ntp_snippets/remote/ntp_snippets_scheduler.h" |
| #include "components/ntp_snippets/remote/remote_suggestions_database.h" |
| +#include "components/ntp_snippets/remote/remote_suggestions_hard_scheduler.h" |
| #include "components/ntp_snippets/remote/test_utils.h" |
| #include "components/ntp_snippets/user_classifier.h" |
| #include "components/prefs/testing_pref_service.h" |
| @@ -307,7 +307,7 @@ class FailingFakeURLFetcherFactory : public net::URLFetcherFactory { |
| } |
| }; |
| -class MockScheduler : public NTPSnippetsScheduler { |
| +class MockHardScheduler : public RemoteSuggestionsHardScheduler { |
| public: |
| MOCK_METHOD2(Schedule, |
| bool(base::TimeDelta period_wifi, |
| @@ -452,7 +452,7 @@ class RemoteSuggestionsProviderTest : public ::testing::Test { |
| observer_ = base::MakeUnique<FakeContentSuggestionsProviderObserver>(); |
| return base::MakeUnique<RemoteSuggestionsProvider>( |
| observer_.get(), &category_factory_, utils_.pref_service(), "fr", |
| - &user_classifier_, &scheduler_, std::move(snippets_fetcher), |
| + &user_classifier_, &hard_scheduler_, std::move(snippets_fetcher), |
| std::move(image_fetcher), std::move(image_decoder), |
| base::MakeUnique<RemoteSuggestionsDatabase>(database_dir_.GetPath(), |
| task_runner), |
| @@ -503,7 +503,7 @@ class RemoteSuggestionsProviderTest : public ::testing::Test { |
| protected: |
| const GURL& test_url() { return test_url_; } |
| FakeContentSuggestionsProviderObserver& observer() { return *observer_; } |
| - MockScheduler& mock_scheduler() { return scheduler_; } |
| + MockHardScheduler& mock_scheduler() { return hard_scheduler_; } |
| // TODO(tschumann): Make this a strict-mock. We want to avoid unneccesary |
| // network requests. |
| NiceMock<MockImageFetcher>* image_fetcher() { return image_fetcher_; } |
| @@ -543,7 +543,7 @@ class RemoteSuggestionsProviderTest : public ::testing::Test { |
| const GURL test_url_; |
| std::unique_ptr<OAuth2TokenService> fake_token_service_; |
| UserClassifier user_classifier_; |
| - NiceMock<MockScheduler> scheduler_; |
| + NiceMock<MockHardScheduler> hard_scheduler_; |
| std::unique_ptr<FakeContentSuggestionsProviderObserver> observer_; |
| CategoryFactory category_factory_; |
| NiceMock<MockImageFetcher>* image_fetcher_; |
| @@ -554,46 +554,6 @@ class RemoteSuggestionsProviderTest : public ::testing::Test { |
| DISALLOW_COPY_AND_ASSIGN(RemoteSuggestionsProviderTest); |
| }; |
| -TEST_F(RemoteSuggestionsProviderTest, ScheduleOnStart) { |
|
Marc Treib
2016/12/09 12:25:26
I think some of the removed tests kinda still appl
jkrcal
2016/12/19 09:40:23
Not relevant any more. I've added some more tests
|
| - // We should get two |Schedule| calls: The first when initialization |
| - // completes, the second one after the automatic (since the service doesn't |
| - // have any data yet) fetch finishes. |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)).Times(2); |
| - EXPECT_CALL(mock_scheduler(), Unschedule()).Times(0); |
| - auto service = MakeSnippetsService(); |
| - |
| - // When we have no snippets are all, loading the service initiates a fetch. |
| - EXPECT_EQ("OK", service->snippets_fetcher()->last_status()); |
| -} |
| - |
| -TEST_F(RemoteSuggestionsProviderTest, DontRescheduleOnStart) { |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)).Times(2); |
| - EXPECT_CALL(mock_scheduler(), Unschedule()).Times(0); |
| - SetUpFetchResponse(GetTestJson({GetSnippet()})); |
| - auto service = MakeSnippetsService(/*set_empty_response=*/false); |
| - |
| - // When recreating the service, we should not get any |Schedule| calls: |
| - // The tasks are already scheduled with the correct intervals, so nothing on |
| - // initialization, and the service has data from the DB, so no automatic fetch |
| - // should happen. |
| - Mock::VerifyAndClearExpectations(&mock_scheduler()); |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)).Times(0); |
| - EXPECT_CALL(mock_scheduler(), Unschedule()).Times(0); |
| - ResetSnippetsService(&service); |
| -} |
| - |
| -TEST_F(RemoteSuggestionsProviderTest, RescheduleAfterSuccessfulFetch) { |
| - // We should get two |Schedule| calls: The first when initialization |
| - // completes, the second one after the automatic (since the service doesn't |
| - // have any data yet) fetch finishes. |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)).Times(2); |
| - auto service = MakeSnippetsService(); |
| - |
| - // A successful fetch should trigger another |Schedule|. |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)); |
| - LoadFromJSONString(service.get(), GetTestJson({GetSnippet()})); |
| -} |
| - |
| TEST_F(RemoteSuggestionsProviderTest, DontRescheduleAfterFailedFetch) { |
| // We should get two |Schedule| calls: The first when initialization |
| // completes, the second one after the automatic (since the service doesn't |
| @@ -606,37 +566,6 @@ TEST_F(RemoteSuggestionsProviderTest, DontRescheduleAfterFailedFetch) { |
| LoadFromJSONString(service.get(), GetTestJson({GetInvalidSnippet()})); |
| } |
| -TEST_F(RemoteSuggestionsProviderTest, IgnoreRescheduleBeforeInit) { |
| - // We should get two |Schedule| calls: The first when initialization |
| - // completes, the second one after the automatic (since the service doesn't |
| - // have any data yet) fetch finishes. |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)).Times(2); |
| - // The |RescheduleFetching| call shouldn't do anything (in particular not |
| - // result in an |Unschedule|), since the service isn't initialized yet. |
| - EXPECT_CALL(mock_scheduler(), Unschedule()).Times(0); |
| - auto service = MakeSnippetsServiceWithoutInitialization(); |
| - service->RescheduleFetching(false); |
| - WaitForSnippetsServiceInitialization(service.get(), |
| - /*set_empty_response=*/true); |
| -} |
| - |
| -TEST_F(RemoteSuggestionsProviderTest, HandleForcedRescheduleBeforeInit) { |
| - { |
| - InSequence s; |
| - // The |RescheduleFetching| call with force=true should result in an |
| - // |Unschedule|, since the service isn't initialized yet. |
| - EXPECT_CALL(mock_scheduler(), Unschedule()).Times(1); |
| - // We should get two |Schedule| calls: The first when initialization |
| - // completes, the second one after the automatic (since the service doesn't |
| - // have any data yet) fetch finishes. |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)).Times(2); |
| - } |
| - auto service = MakeSnippetsServiceWithoutInitialization(); |
| - service->RescheduleFetching(true); |
| - WaitForSnippetsServiceInitialization(service.get(), |
| - /*set_empty_response=*/true); |
| -} |
| - |
| TEST_F(RemoteSuggestionsProviderTest, RescheduleOnStateChange) { |
| { |
| InSequence s; |
| @@ -661,15 +590,6 @@ TEST_F(RemoteSuggestionsProviderTest, RescheduleOnStateChange) { |
| base::RunLoop().RunUntilIdle(); |
| } |
| -TEST_F(RemoteSuggestionsProviderTest, DontUnscheduleOnShutdown) { |
| - EXPECT_CALL(mock_scheduler(), Schedule(_, _)).Times(2); |
| - EXPECT_CALL(mock_scheduler(), Unschedule()).Times(0); |
| - |
| - auto service = MakeSnippetsService(); |
| - |
| - service.reset(); |
| - base::RunLoop().RunUntilIdle(); |
| -} |
| TEST_F(RemoteSuggestionsProviderTest, Full) { |
| std::string json_str(GetTestJson({GetSnippet()})); |
| @@ -1618,7 +1538,10 @@ TEST_F(RemoteSuggestionsProviderTest, StoreLastSuccessfullBackgroundFetchTime) { |
| // Advance the time and check whether the time was updated correctly after the |
| // background fetch. |
| simple_test_tick_clock_ptr->Advance(TimeDelta::FromHours(1)); |
| - service->FetchSnippetsInTheBackground(); |
| + |
| + // TODO(jkrcal): Move together with the pref storage into the scheduler. |
| + static_cast<RemoteSuggestionsScheduler::Updater*>(service.get()) |
| + ->UpdateRemoteSuggestionsBySchedule(); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ( |
| simple_test_tick_clock_ptr->NowTicks().ToInternalValue(), |