Index: sync/engine/sync_scheduler_unittest.cc |
diff --git a/sync/engine/sync_scheduler_unittest.cc b/sync/engine/sync_scheduler_unittest.cc |
index 268fae2c768b550241e9e3b389be868c8fa8b29f..9ae06b85c646adf938cc7b2e32333fc8dace106d 100644 |
--- a/sync/engine/sync_scheduler_unittest.cc |
+++ b/sync/engine/sync_scheduler_unittest.cc |
@@ -127,7 +127,7 @@ class SyncSchedulerTest : public testing::Test { |
extensions_activity_ = new ExtensionsActivity(); |
routing_info_[BOOKMARKS] = GROUP_UI; |
- routing_info_[AUTOFILL] = GROUP_DB; |
+ routing_info_[TYPED_URLS] = GROUP_DB; |
routing_info_[THEMES] = GROUP_UI; |
routing_info_[NIGORI] = GROUP_PASSIVE; |
@@ -159,6 +159,11 @@ class SyncSchedulerTest : public testing::Test { |
BackoffDelayProvider::FromDefaults(), |
context(), |
syncer_)); |
+ scheduler_->SetDefaultNudgeDelay(default_delay().InMilliseconds()); |
+ std::map<ModelType, int> delay_map; |
+ // Override the bookmarks value since so many tests rely on it. |
+ delay_map[BOOKMARKS] = default_delay().InMilliseconds(); |
+ scheduler_->OnReceivedCustomNudgeDelays(delay_map); |
} |
SyncSchedulerImpl* scheduler() { return scheduler_.get(); } |
@@ -166,7 +171,7 @@ class SyncSchedulerTest : public testing::Test { |
MockSyncer* syncer() { return syncer_; } |
MockDelayProvider* delay() { return delay_; } |
MockConnectionManager* connection() { return connection_.get(); } |
- TimeDelta zero() { return TimeDelta::FromSeconds(0); } |
+ TimeDelta default_delay() { return TimeDelta::FromSeconds(0); } |
TimeDelta timeout() { |
return TestTimeouts::action_timeout(); |
} |
@@ -209,7 +214,7 @@ class SyncSchedulerTest : public testing::Test { |
ModelTypeSet nudge_types(BOOKMARKS); |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- scheduler()->ScheduleLocalNudge(zero(), nudge_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(nudge_types, FROM_HERE); |
RunLoop(); |
return scheduler()->IsBackingOff(); |
@@ -307,7 +312,7 @@ TEST_F(SyncSchedulerTest, Nudge) { |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- scheduler()->ScheduleLocalNudge(zero(), model_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(model_types, FROM_HERE); |
RunLoop(); |
Mock::VerifyAndClearExpectations(syncer()); |
@@ -315,11 +320,11 @@ TEST_F(SyncSchedulerTest, Nudge) { |
// Make sure a second, later, nudge is unaffected by first (no coalescing). |
SyncShareTimes times2; |
model_types.Remove(BOOKMARKS); |
- model_types.Put(AUTOFILL); |
+ model_types.Put(TYPED_URLS); |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
RecordSyncShare(×2))); |
- scheduler()->ScheduleLocalNudge(zero(), model_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(model_types, FROM_HERE); |
RunLoop(); |
} |
@@ -459,7 +464,7 @@ TEST_F(SyncSchedulerTest, NudgeWithConfigWithBackingOff) { |
EXPECT_CALL(*syncer(), ConfigureSyncShare(_,_,_)) |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateConfigureFailed), |
RecordSyncShare(×))); |
- scheduler()->ScheduleLocalNudge(zero(), model_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(model_types, FROM_HERE); |
RunLoop(); |
// Note that we're not RunLoop()ing for the NUDGE we just scheduled, but |
// for the first retry attempt from the config job (after |
@@ -489,11 +494,11 @@ TEST_F(SyncSchedulerTest, NudgeCoalescing) { |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
RecordSyncShare(×))); |
- const ModelTypeSet types1(BOOKMARKS), types2(AUTOFILL), types3(THEMES); |
- TimeDelta delay = zero(); |
+ const ModelTypeSet types1(BOOKMARKS), types2(TYPED_URLS), types3(THEMES); |
+ TimeDelta delay = default_delay(); |
rlarocque
2014/08/20 00:13:31
Remove |delay|?
Nicolas Zea
2014/08/20 22:49:43
Done.
|
TimeTicks optimal_time = TimeTicks::Now() + delay; |
- scheduler()->ScheduleLocalNudge(delay, types1, FROM_HERE); |
- scheduler()->ScheduleLocalNudge(zero(), types2, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types1, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types2, FROM_HERE); |
RunLoop(); |
ASSERT_EQ(1U, times.size()); |
@@ -505,7 +510,7 @@ TEST_F(SyncSchedulerTest, NudgeCoalescing) { |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
RecordSyncShare(×2))); |
- scheduler()->ScheduleLocalNudge(zero(), types3, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types3, FROM_HERE); |
RunLoop(); |
} |
@@ -517,13 +522,16 @@ TEST_F(SyncSchedulerTest, NudgeCoalescingWithDifferentTimings) { |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
RecordSyncShare(×))); |
- ModelTypeSet types1(BOOKMARKS), types2(AUTOFILL), types3; |
+ ModelTypeSet types1(BOOKMARKS), types2(TYPED_URLS), types3; |
// Create a huge time delay. |
TimeDelta delay = TimeDelta::FromDays(1); |
- scheduler()->ScheduleLocalNudge(delay, types1, FROM_HERE); |
- scheduler()->ScheduleLocalNudge(zero(), types2, FROM_HERE); |
+ std::map<ModelType, int> delay_map; |
+ delay_map[types1.First().Get()] = delay.InMilliseconds(); |
+ scheduler()->OnReceivedCustomNudgeDelays(delay_map); |
+ scheduler()->ScheduleLocalNudge(types1, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types2, FROM_HERE); |
TimeTicks min_time = TimeTicks::Now(); |
TimeTicks max_time = TimeTicks::Now() + delay; |
@@ -547,7 +555,7 @@ TEST_F(SyncSchedulerTest, NudgeWithStates) { |
RecordSyncShare(×1))) |
.RetiresOnSaturation(); |
scheduler()->ScheduleInvalidationNudge( |
- zero(), BOOKMARKS, BuildInvalidation(10, "test"), FROM_HERE); |
+ BOOKMARKS, BuildInvalidation(10, "test"), FROM_HERE); |
RunLoop(); |
Mock::VerifyAndClearExpectations(syncer()); |
@@ -558,7 +566,7 @@ TEST_F(SyncSchedulerTest, NudgeWithStates) { |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
RecordSyncShare(×2))); |
scheduler()->ScheduleInvalidationNudge( |
- zero(), AUTOFILL, BuildInvalidation(10, "test2"), FROM_HERE); |
+ TYPED_URLS, BuildInvalidation(10, "test2"), FROM_HERE); |
RunLoop(); |
} |
@@ -632,11 +640,13 @@ TEST_F(SyncSchedulerTest, PollIntervalUpdate) { |
} |
// Test that the sessions commit delay is updated when needed. |
-TEST_F(SyncSchedulerTest, SessionsCommitDelay) { |
+TEST_F(SyncSchedulerTest, CustomNudgeDelays) { |
SyncShareTimes times; |
TimeDelta delay1(TimeDelta::FromMilliseconds(120)); |
TimeDelta delay2(TimeDelta::FromMilliseconds(30)); |
- scheduler()->OnReceivedSessionsCommitDelay(delay1); |
+ std::map<ModelType, int> delay_map; |
+ delay_map[SESSIONS] = delay1.InMilliseconds(); |
+ scheduler()->OnReceivedCustomNudgeDelays(delay_map); |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
.WillOnce( |
@@ -647,15 +657,15 @@ TEST_F(SyncSchedulerTest, SessionsCommitDelay) { |
Invoke(sessions::test_util::SimulateNormalSuccess), |
QuitLoopNowAction())); |
- EXPECT_EQ(delay1, scheduler()->GetSessionsCommitDelay()); |
+ EXPECT_EQ(delay1, scheduler()->GetNudgeDelayForTypes(ModelTypeSet(SESSIONS))); |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- EXPECT_EQ(delay1, scheduler()->GetSessionsCommitDelay()); |
+ EXPECT_EQ(delay1, scheduler()->GetNudgeDelayForTypes(ModelTypeSet(SESSIONS))); |
const ModelTypeSet model_types(BOOKMARKS); |
- scheduler()->ScheduleLocalNudge(zero(), model_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(model_types, FROM_HERE); |
RunLoop(); |
- EXPECT_EQ(delay2, scheduler()->GetSessionsCommitDelay()); |
+ EXPECT_EQ(delay2, scheduler()->GetNudgeDelayForTypes(ModelTypeSet(SESSIONS))); |
StopSyncScheduler(); |
} |
@@ -674,8 +684,7 @@ TEST_F(SyncSchedulerTest, ThrottlingDoesThrottle) { |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- scheduler()->ScheduleLocalNudge( |
- TimeDelta::FromMicroseconds(1), types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types, FROM_HERE); |
PumpLoop(); |
StartSyncScheduler(SyncScheduler::CONFIGURATION_MODE); |
@@ -740,7 +749,7 @@ TEST_F(SyncSchedulerTest, ThrottlingExpiresFromNudge) { |
const ModelTypeSet types(BOOKMARKS); |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- scheduler()->ScheduleLocalNudge(zero(), types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types, FROM_HERE); |
PumpLoop(); // To get PerformDelayedNudge called. |
PumpLoop(); // To get TrySyncSessionJob called |
@@ -793,7 +802,7 @@ TEST_F(SyncSchedulerTest, ThrottlingExpiresFromConfigure) { |
TEST_F(SyncSchedulerTest, TypeThrottlingBlocksNudge) { |
UseMockDelayProvider(); |
EXPECT_CALL(*delay(), GetDelay(_)) |
- .WillRepeatedly(Return(zero())); |
+ .WillRepeatedly(Return(default_delay())); |
TimeDelta poll(TimeDelta::FromDays(1)); |
TimeDelta throttle1(TimeDelta::FromSeconds(60)); |
@@ -810,13 +819,13 @@ TEST_F(SyncSchedulerTest, TypeThrottlingBlocksNudge) { |
.RetiresOnSaturation(); |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- scheduler()->ScheduleLocalNudge(zero(), types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types, FROM_HERE); |
PumpLoop(); // To get PerformDelayedNudge called. |
PumpLoop(); // To get TrySyncSessionJob called |
EXPECT_TRUE(GetThrottledTypes().HasAll(types)); |
// This won't cause a sync cycle because the types are throttled. |
- scheduler()->ScheduleLocalNudge(zero(), types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types, FROM_HERE); |
PumpLoop(); |
StopSyncScheduler(); |
@@ -825,7 +834,7 @@ TEST_F(SyncSchedulerTest, TypeThrottlingBlocksNudge) { |
TEST_F(SyncSchedulerTest, TypeThrottlingDoesBlockOtherSources) { |
UseMockDelayProvider(); |
EXPECT_CALL(*delay(), GetDelay(_)) |
- .WillRepeatedly(Return(zero())); |
+ .WillRepeatedly(Return(default_delay())); |
SyncShareTimes times; |
TimeDelta poll(TimeDelta::FromDays(1)); |
@@ -845,18 +854,18 @@ TEST_F(SyncSchedulerTest, TypeThrottlingDoesBlockOtherSources) { |
.RetiresOnSaturation(); |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- scheduler()->ScheduleLocalNudge(zero(), throttled_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(throttled_types, FROM_HERE); |
PumpLoop(); // To get PerformDelayedNudge called. |
PumpLoop(); // To get TrySyncSessionJob called |
EXPECT_TRUE(GetThrottledTypes().HasAll(throttled_types)); |
// Ignore invalidations for throttled types. |
scheduler()->ScheduleInvalidationNudge( |
- zero(), BOOKMARKS, BuildInvalidation(10, "test"), FROM_HERE); |
+ BOOKMARKS, BuildInvalidation(10, "test"), FROM_HERE); |
PumpLoop(); |
// Ignore refresh requests for throttled types. |
- scheduler()->ScheduleLocalRefreshRequest(zero(), throttled_types, FROM_HERE); |
+ scheduler()->ScheduleLocalRefreshRequest(throttled_types, FROM_HERE); |
PumpLoop(); |
Mock::VerifyAndClearExpectations(syncer()); |
@@ -865,7 +874,7 @@ TEST_F(SyncSchedulerTest, TypeThrottlingDoesBlockOtherSources) { |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
.WillRepeatedly(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
RecordSyncShare(×))); |
- scheduler()->ScheduleLocalNudge(zero(), unthrottled_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(unthrottled_types, FROM_HERE); |
RunLoop(); |
Mock::VerifyAndClearExpectations(syncer()); |
@@ -880,9 +889,9 @@ TEST_F(SyncSchedulerTest, ConfigurationMode) { |
StartSyncScheduler(SyncScheduler::CONFIGURATION_MODE); |
- const ModelTypeSet nudge_types(AUTOFILL); |
- scheduler()->ScheduleLocalNudge(zero(), nudge_types, FROM_HERE); |
- scheduler()->ScheduleLocalNudge(zero(), nudge_types, FROM_HERE); |
+ const ModelTypeSet nudge_types(TYPED_URLS); |
+ scheduler()->ScheduleLocalNudge(nudge_types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(nudge_types, FROM_HERE); |
const ModelTypeSet config_types(BOOKMARKS); |
@@ -1026,7 +1035,7 @@ TEST_F(SyncSchedulerTest, BackoffDropsJobs) { |
// This nudge should fail and put us into backoff. Thanks to our mock |
// GetDelay() setup above, this will be a long backoff. |
- scheduler()->ScheduleLocalNudge(zero(), types, FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types, FROM_HERE); |
RunLoop(); |
// From this point forward, no SyncShare functions should be invoked. |
@@ -1036,10 +1045,7 @@ TEST_F(SyncSchedulerTest, BackoffDropsJobs) { |
PumpLoopFor(poll * 10); |
// Try (and fail) to schedule a nudge. |
- scheduler()->ScheduleLocalNudge( |
- base::TimeDelta::FromMilliseconds(10), |
- types, |
- FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(types, FROM_HERE); |
Mock::VerifyAndClearExpectations(syncer()); |
Mock::VerifyAndClearExpectations(delay()); |
@@ -1092,7 +1098,7 @@ TEST_F(SyncSchedulerTest, BackoffElevation) { |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
// Run again with a nudge. |
- scheduler()->ScheduleLocalNudge(zero(), ModelTypeSet(BOOKMARKS), FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(ModelTypeSet(BOOKMARKS), FROM_HERE); |
RunLoop(); |
ASSERT_EQ(kMinNumSamples, times.size()); |
@@ -1120,7 +1126,7 @@ TEST_F(SyncSchedulerTest, BackoffRelief) { |
EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateCommitFailed), |
RecordSyncShare(×))); |
- scheduler()->ScheduleLocalNudge(zero(), ModelTypeSet(BOOKMARKS), FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(ModelTypeSet(BOOKMARKS), FROM_HERE); |
RunLoop(); |
Mock::VerifyAndClearExpectations(syncer()); |
TimeTicks optimal_job_time = optimal_start; |
@@ -1192,7 +1198,7 @@ TEST_F(SyncSchedulerTest, StartWhenNotConnected) { |
Return(true))); |
StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
- scheduler()->ScheduleLocalNudge(zero(), ModelTypeSet(BOOKMARKS), FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(ModelTypeSet(BOOKMARKS), FROM_HERE); |
// Should save the nudge for until after the server is reachable. |
base::MessageLoop::current()->RunUntilIdle(); |
@@ -1217,7 +1223,7 @@ TEST_F(SyncSchedulerTest, ServerConnectionChangeDuringBackoff) { |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
Return(true))); |
- scheduler()->ScheduleLocalNudge(zero(), ModelTypeSet(BOOKMARKS), FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(ModelTypeSet(BOOKMARKS), FROM_HERE); |
PumpLoop(); // To get PerformDelayedNudge called. |
PumpLoop(); // Run the nudge, that will fail and schedule a quick retry. |
ASSERT_TRUE(scheduler()->IsBackingOff()); |
@@ -1249,7 +1255,7 @@ TEST_F(SyncSchedulerTest, ConnectionChangeCanaryPreemptedByNudge) { |
.WillOnce(DoAll(Invoke(sessions::test_util::SimulateNormalSuccess), |
QuitLoopNowAction())); |
- scheduler()->ScheduleLocalNudge(zero(), ModelTypeSet(BOOKMARKS), FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(ModelTypeSet(BOOKMARKS), FROM_HERE); |
PumpLoop(); // To get PerformDelayedNudge called. |
PumpLoop(); // Run the nudge, that will fail and schedule a quick retry. |
@@ -1260,7 +1266,7 @@ TEST_F(SyncSchedulerTest, ConnectionChangeCanaryPreemptedByNudge) { |
PumpLoop(); |
connection()->SetServerReachable(); |
connection()->UpdateConnectionStatus(); |
- scheduler()->ScheduleLocalNudge(zero(), ModelTypeSet(BOOKMARKS), FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(ModelTypeSet(BOOKMARKS), FROM_HERE); |
base::MessageLoop::current()->RunUntilIdle(); |
} |
@@ -1381,8 +1387,7 @@ TEST_F(SyncSchedulerTest, ReceiveNewRetryDelay) { |
base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(100); |
base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(200); |
- scheduler()->ScheduleLocalRefreshRequest(zero(), ModelTypeSet(BOOKMARKS), |
- FROM_HERE); |
+ scheduler()->ScheduleLocalNudge(ModelTypeSet(BOOKMARKS), FROM_HERE); |
scheduler()->OnReceivedGuRetryDelay(delay1); |
EXPECT_EQ(delay1, GetRetryTimerDelay()); |
@@ -1406,4 +1411,64 @@ TEST_F(SyncSchedulerTest, ReceiveNewRetryDelay) { |
StopSyncScheduler(); |
} |
+// Test the default nudge delays for various types, and that we can overwrite |
+// them with custom delays. |
+TEST_F(SyncSchedulerTest, NudgeDelayTest) { |
+ // Reset all delays to default |
+ std::map<ModelType, int> delay_map; |
+ ModelTypeSet protocol_types = syncer::ProtocolTypes(); |
+ for (ModelTypeSet::Iterator iter = protocol_types.First(); iter.Good(); |
+ iter.Inc()) { |
+ delay_map[iter.Get()] = -1; |
+ } |
+ scheduler()->OnReceivedCustomNudgeDelays(delay_map); |
+ |
+ // Bookmarks and preference both have "slow nudge" delays. |
+ EXPECT_EQ(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(BOOKMARKS)), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(PREFERENCES))); |
+ |
+ // Typed URLs has a default delay. |
+ EXPECT_EQ(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(TYPED_URLS)), |
+ default_delay()); |
+ |
+ // "Slow nudge" delays are longer than the default. |
+ EXPECT_GT(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(BOOKMARKS)), |
+ default_delay()); |
+ |
+ // Sessions is longer than "slow nudge". |
+ EXPECT_GT(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(SESSIONS)), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(BOOKMARKS))); |
+ |
+ // Favicons have the same delay as sessions. |
+ EXPECT_EQ(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(SESSIONS)), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(FAVICON_TRACKING))); |
+ |
+ // Autofill has the longer delay of all. |
+ EXPECT_GT(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(AUTOFILL)), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(SESSIONS))); |
+ |
+ // A nudge with no types takes the longest delay. |
+ EXPECT_GT(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(AUTOFILL)), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet())); |
+ |
+ // The actual nudge delay should be the shortest of the set. |
+ EXPECT_EQ( |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(TYPED_URLS)), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(TYPED_URLS, AUTOFILL))); |
+ |
+ // Set some custom delays. |
+ delay_map[BOOKMARKS] = 10000; |
+ delay_map[SESSIONS] = 2000; |
+ scheduler()->OnReceivedCustomNudgeDelays(delay_map); |
+ |
+ // Only those with custom delays should be affected, not another type. |
+ EXPECT_NE(scheduler()->GetNudgeDelayForTypes(ModelTypeSet(BOOKMARKS)), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(PREFERENCES))); |
+ |
+ EXPECT_EQ(base::TimeDelta::FromMilliseconds(10000), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(BOOKMARKS))); |
+ EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000), |
+ scheduler()->GetNudgeDelayForTypes(ModelTypeSet(SESSIONS))); |
+} |
+ |
} // namespace syncer |