OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/callback.h" | 6 #include "base/callback.h" |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/test/test_timeouts.h" | 10 #include "base/test/test_timeouts.h" |
(...skipping 1294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1305 RunLoop(); | 1305 RunLoop(); |
1306 StopSyncScheduler(); | 1306 StopSyncScheduler(); |
1307 } | 1307 } |
1308 | 1308 |
1309 TEST_F(SyncSchedulerTest, SuccessfulRetry) { | 1309 TEST_F(SyncSchedulerTest, SuccessfulRetry) { |
1310 StartSyncScheduler(SyncScheduler::NORMAL_MODE); | 1310 StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
1311 | 1311 |
1312 SyncShareTimes times; | 1312 SyncShareTimes times; |
1313 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1); | 1313 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1); |
1314 scheduler()->OnReceivedGuRetryDelay(delay); | 1314 scheduler()->OnReceivedGuRetryDelay(delay); |
| 1315 scheduler()->ProcessReceivedGuRetryDelay(); |
1315 EXPECT_EQ(delay, GetRetryTimerDelay()); | 1316 EXPECT_EQ(delay, GetRetryTimerDelay()); |
1316 | 1317 |
1317 EXPECT_CALL(*syncer(), RetrySyncShare(_,_)) | 1318 EXPECT_CALL(*syncer(), RetrySyncShare(_,_)) |
1318 .WillOnce( | 1319 .WillOnce( |
1319 DoAll(Invoke(sessions::test_util::SimulatePollRetrySuccess), | 1320 DoAll(Invoke(sessions::test_util::SimulatePollRetrySuccess), |
1320 RecordSyncShare(×))); | 1321 RecordSyncShare(×))); |
1321 | 1322 |
1322 // Run to wait for retrying. | 1323 // Run to wait for retrying. |
1323 RunLoop(); | 1324 RunLoop(); |
1324 | 1325 |
1325 StopSyncScheduler(); | 1326 StopSyncScheduler(); |
1326 } | 1327 } |
1327 | 1328 |
1328 TEST_F(SyncSchedulerTest, FailedRetry) { | 1329 TEST_F(SyncSchedulerTest, FailedRetry) { |
1329 UseMockDelayProvider(); | 1330 UseMockDelayProvider(); |
1330 EXPECT_CALL(*delay(), GetDelay(_)) | 1331 EXPECT_CALL(*delay(), GetDelay(_)) |
1331 .WillRepeatedly(Return(TimeDelta::FromMilliseconds(1))); | 1332 .WillRepeatedly(Return(TimeDelta::FromMilliseconds(1))); |
1332 | 1333 |
1333 StartSyncScheduler(SyncScheduler::NORMAL_MODE); | 1334 StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
1334 | 1335 |
1335 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1); | 1336 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(1); |
1336 scheduler()->OnReceivedGuRetryDelay(delay); | 1337 scheduler()->OnReceivedGuRetryDelay(delay); |
| 1338 scheduler()->ProcessReceivedGuRetryDelay(); |
1337 | 1339 |
1338 EXPECT_CALL(*syncer(), RetrySyncShare(_,_)) | 1340 EXPECT_CALL(*syncer(), RetrySyncShare(_,_)) |
1339 .WillOnce( | 1341 .WillOnce( |
1340 DoAll(Invoke(sessions::test_util::SimulatePollRetryFailed), | 1342 DoAll(Invoke(sessions::test_util::SimulatePollRetryFailed), |
1341 QuitLoopNowAction())); | 1343 QuitLoopNowAction())); |
1342 | 1344 |
1343 // Run to wait for retrying. | 1345 // Run to wait for retrying. |
1344 RunLoop(); | 1346 RunLoop(); |
1345 | 1347 |
1346 EXPECT_TRUE(scheduler()->IsBackingOff()); | 1348 EXPECT_TRUE(scheduler()->IsBackingOff()); |
(...skipping 15 matching lines...) Expand all Loading... |
1362 TEST_F(SyncSchedulerTest, ReceiveNewRetryDelay) { | 1364 TEST_F(SyncSchedulerTest, ReceiveNewRetryDelay) { |
1363 StartSyncScheduler(SyncScheduler::NORMAL_MODE); | 1365 StartSyncScheduler(SyncScheduler::NORMAL_MODE); |
1364 | 1366 |
1365 SyncShareTimes times; | 1367 SyncShareTimes times; |
1366 base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(100); | 1368 base::TimeDelta delay1 = base::TimeDelta::FromMilliseconds(100); |
1367 base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(200); | 1369 base::TimeDelta delay2 = base::TimeDelta::FromMilliseconds(200); |
1368 | 1370 |
1369 scheduler()->ScheduleLocalRefreshRequest(zero(), ModelTypeSet(BOOKMARKS), | 1371 scheduler()->ScheduleLocalRefreshRequest(zero(), ModelTypeSet(BOOKMARKS), |
1370 FROM_HERE); | 1372 FROM_HERE); |
1371 scheduler()->OnReceivedGuRetryDelay(delay1); | 1373 scheduler()->OnReceivedGuRetryDelay(delay1); |
| 1374 scheduler()->ProcessReceivedGuRetryDelay(); |
| 1375 EXPECT_EQ(delay1, GetRetryTimerDelay()); |
1372 | 1376 |
| 1377 scheduler()->ClearReceivedGuRetryDelayFlag(); |
1373 EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) | 1378 EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)) |
1374 .WillOnce(DoAll( | 1379 .WillOnce(DoAll( |
1375 WithoutArgs(VerifyRetryTimerDelay(this, delay1)), | 1380 WithoutArgs(VerifyRetryTimerDelay(this, delay1)), |
1376 WithArg<2>(sessions::test_util::SimulateGuRetryDelayCommand(delay2)), | 1381 WithArg<2>(sessions::test_util::SimulateGuRetryDelayCommand(delay2)), |
1377 WithoutArgs(VerifyRetryTimerDelay(this, delay2)), | |
1378 RecordSyncShare(×))); | 1382 RecordSyncShare(×))); |
1379 | 1383 |
1380 // Run nudge GU. | 1384 // Run nudge GU. |
1381 RunLoop(); | 1385 RunLoop(); |
| 1386 EXPECT_EQ(delay2, GetRetryTimerDelay()); |
1382 | 1387 |
1383 EXPECT_CALL(*syncer(), RetrySyncShare(_,_)) | 1388 EXPECT_CALL(*syncer(), RetrySyncShare(_,_)) |
1384 .WillOnce( | 1389 .WillOnce(DoAll(Invoke(sessions::test_util::SimulatePollRetrySuccess), |
1385 DoAll(Invoke(sessions::test_util::SimulatePollRetrySuccess), | 1390 RecordSyncShare(×))); |
1386 RecordSyncShare(×))); | |
1387 | 1391 |
1388 // Run to wait for retrying. | 1392 // Run to wait for retrying. |
1389 RunLoop(); | 1393 RunLoop(); |
1390 | 1394 |
1391 StopSyncScheduler(); | 1395 StopSyncScheduler(); |
1392 } | 1396 } |
1393 | 1397 |
1394 } // namespace syncer | 1398 } // namespace syncer |
OLD | NEW |