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

Side by Side Diff: sync/engine/sync_scheduler_unittest.cc

Issue 146113003: sync: GU retry with less explicit TimeTicks logic (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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(&times))); 1321 RecordSyncShare(&times)));
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
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(&times))); 1382 RecordSyncShare(&times)));
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(&times)));
1386 RecordSyncShare(&times)));
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698