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

Unified Diff: sync/engine/sync_scheduler_unittest.cc

Issue 1251203002: [Sync] Add ClearServerData support to Sync Scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Improve comments Created 5 years, 5 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
Index: sync/engine/sync_scheduler_unittest.cc
diff --git a/sync/engine/sync_scheduler_unittest.cc b/sync/engine/sync_scheduler_unittest.cc
index b6cdf6adf96c60cb37a8da27159e1a7f0728fa43..9f621a093be813f20efa518a3a5ca2ee018ea3a4 100644
--- a/sync/engine/sync_scheduler_unittest.cc
+++ b/sync/engine/sync_scheduler_unittest.cc
@@ -1437,4 +1437,40 @@ TEST_F(SyncSchedulerTest, ReceiveNewRetryDelay) {
StopSyncScheduler();
}
+TEST_F(SyncSchedulerTest, ScheduleClearServerData_Succeeds) {
+ StartSyncConfiguration();
+ scheduler()->Start(SyncScheduler::CLEAR_SERVER_DATA_MODE, base::Time());
+ CallbackCounter success_counter;
+ ClearParams params(base::Bind(&CallbackCounter::Callback,
+ base::Unretained(&success_counter)));
+ scheduler()->ScheduleClearServerData(params);
+ PumpLoop();
+ ASSERT_EQ(1, success_counter.times_called());
+}
+
+TEST_F(SyncSchedulerTest, ScheduleClearServerData_FailsRetriesSucceeds) {
+ UseMockDelayProvider();
+ TimeDelta delta(TimeDelta::FromMilliseconds(20));
+ EXPECT_CALL(*delay(), GetDelay(_)).WillRepeatedly(Return(delta));
+
+ StartSyncConfiguration();
+ scheduler()->Start(SyncScheduler::CLEAR_SERVER_DATA_MODE, base::Time());
+ CallbackCounter success_counter;
+ ClearParams params(base::Bind(&CallbackCounter::Callback,
+ base::Unretained(&success_counter)));
+
+ // Next request will fail.
+ connection()->SetServerNotReachable();
+ scheduler()->ScheduleClearServerData(params);
+ PumpLoop();
+ ASSERT_EQ(0, success_counter.times_called());
+ ASSERT_TRUE(scheduler()->IsBackingOff());
+
+ // Now succeed.
+ connection()->SetServerReachable();
+ PumpLoopFor(2 * delta);
+ ASSERT_EQ(1, success_counter.times_called());
+ ASSERT_FALSE(scheduler()->IsBackingOff());
+}
+
} // namespace syncer

Powered by Google App Engine
This is Rietveld 408576698