Chromium Code Reviews| Index: chrome/browser/sync/engine/sync_scheduler_unittest.cc |
| diff --git a/chrome/browser/sync/engine/sync_scheduler_unittest.cc b/chrome/browser/sync/engine/sync_scheduler_unittest.cc |
| index b83322dacb65da921ed7339a88347b682c8010c3..095f822f2016a492b90f480b03e89b016d1b9d16 100644 |
| --- a/chrome/browser/sync/engine/sync_scheduler_unittest.cc |
| +++ b/chrome/browser/sync/engine/sync_scheduler_unittest.cc |
| @@ -480,6 +480,43 @@ TEST_F(SyncSchedulerTest, NudgeCoalescing) { |
| r2.snapshots[0]->source.updates_source); |
| } |
| +// Test that nudges are coalesced. |
| +TEST_F(SyncSchedulerTest, NudgeCoalescingWithDifferentTimings) { |
| + StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
| + RunLoop(); |
| + |
| + SyncShareRecords r; |
| + EXPECT_CALL(*syncer(), SyncShare(_,_,_)) |
| + .WillOnce(DoAll(Invoke(sessions::test_util::SimulateSuccess), |
| + WithArg<0>(RecordSyncShare(&r)))); |
| + syncable::ModelTypeBitSet types1, types2, types3; |
| + types1[syncable::BOOKMARKS] = true; |
| + types2[syncable::AUTOFILL] = true; |
| + |
| + // Create a huge time delay. |
| + TimeDelta delay = TimeDelta::FromSeconds(1200); |
|
tim (not reviewing)
2011/12/09 23:07:22
OCD nit :) I think FromDays(1) is more readable fo
lipalani1
2011/12/15 01:35:16
Done.
|
| + |
| + scheduler()->ScheduleNudge( |
| + delay, NUDGE_SOURCE_UNKNOWN, types1, FROM_HERE); |
| + |
| + scheduler()->ScheduleNudge( |
| + zero(), NUDGE_SOURCE_UNKNOWN, types2, FROM_HERE); |
| + |
| + TimeTicks min_time = TimeTicks::Now(); |
| + TimeTicks max_time = TimeTicks::Now() + delay; |
| + |
| + RunLoop(); |
| + |
| + // Make sure the sync has happened. |
| + ASSERT_EQ(1U, r.snapshots.size()); |
| + EXPECT_TRUE(CompareModelTypeBitSetToModelTypePayloadMap( |
| + types1 | types2, r.snapshots[0]->source.types)); |
| + |
| + // Make sure the sync happened at the right time. |
| + EXPECT_GE(r.times[0], min_time); |
| + EXPECT_LE(r.times[0], max_time); |
| +} |
| + |
| // Test nudge scheduling. |
| TEST_F(SyncSchedulerTest, NudgeWithPayloads) { |
| StartSyncScheduler(SyncScheduler::NORMAL_MODE); |