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/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/test/test_timeouts.h" | 10 #include "base/test/test_timeouts.h" |
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 ConfigurationParams params( | 712 ConfigurationParams params( |
713 GetUpdatesCallerInfo::RECONFIGURATION, | 713 GetUpdatesCallerInfo::RECONFIGURATION, |
714 types, | 714 types, |
715 TypesToRoutingInfo(types), | 715 TypesToRoutingInfo(types), |
716 base::Bind(&CallbackCounter::Callback, base::Unretained(&ready_counter)), | 716 base::Bind(&CallbackCounter::Callback, base::Unretained(&ready_counter)), |
717 base::Bind(&CallbackCounter::Callback, base::Unretained(&retry_counter))); | 717 base::Bind(&CallbackCounter::Callback, base::Unretained(&retry_counter))); |
718 scheduler()->ScheduleConfiguration(params); | 718 scheduler()->ScheduleConfiguration(params); |
719 PumpLoop(); | 719 PumpLoop(); |
720 ASSERT_EQ(0, ready_counter.times_called()); | 720 ASSERT_EQ(0, ready_counter.times_called()); |
721 ASSERT_EQ(1, retry_counter.times_called()); | 721 ASSERT_EQ(1, retry_counter.times_called()); |
722 | |
723 } | 722 } |
724 | 723 |
725 TEST_F(SyncSchedulerTest, ThrottlingExpiresFromPoll) { | 724 TEST_F(SyncSchedulerTest, ThrottlingExpiresFromPoll) { |
726 SyncShareTimes times; | 725 SyncShareTimes times; |
727 TimeDelta poll(TimeDelta::FromMilliseconds(15)); | 726 TimeDelta poll(TimeDelta::FromMilliseconds(15)); |
728 TimeDelta throttle1(TimeDelta::FromMilliseconds(150)); | 727 TimeDelta throttle1(TimeDelta::FromMilliseconds(150)); |
729 scheduler()->OnReceivedLongPollIntervalUpdate(poll); | 728 scheduler()->OnReceivedLongPollIntervalUpdate(poll); |
730 | 729 |
731 ::testing::InSequence seq; | 730 ::testing::InSequence seq; |
732 EXPECT_CALL(*syncer(), PollSyncShare(_,_)) | 731 EXPECT_CALL(*syncer(), PollSyncShare(_,_)) |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1077 ConfigurationParams params( | 1076 ConfigurationParams params( |
1078 GetUpdatesCallerInfo::RECONFIGURATION, | 1077 GetUpdatesCallerInfo::RECONFIGURATION, |
1079 types, | 1078 types, |
1080 TypesToRoutingInfo(types), | 1079 TypesToRoutingInfo(types), |
1081 base::Bind(&CallbackCounter::Callback, base::Unretained(&ready_counter)), | 1080 base::Bind(&CallbackCounter::Callback, base::Unretained(&ready_counter)), |
1082 base::Bind(&CallbackCounter::Callback, base::Unretained(&retry_counter))); | 1081 base::Bind(&CallbackCounter::Callback, base::Unretained(&retry_counter))); |
1083 scheduler()->ScheduleConfiguration(params); | 1082 scheduler()->ScheduleConfiguration(params); |
1084 PumpLoop(); | 1083 PumpLoop(); |
1085 ASSERT_EQ(0, ready_counter.times_called()); | 1084 ASSERT_EQ(0, ready_counter.times_called()); |
1086 ASSERT_EQ(1, retry_counter.times_called()); | 1085 ASSERT_EQ(1, retry_counter.times_called()); |
1087 | |
1088 } | 1086 } |
1089 | 1087 |
1090 // Test that backoff is shaping traffic properly with consecutive errors. | 1088 // Test that backoff is shaping traffic properly with consecutive errors. |
1091 TEST_F(SyncSchedulerTest, BackoffElevation) { | 1089 TEST_F(SyncSchedulerTest, BackoffElevation) { |
1092 SyncShareTimes times; | 1090 SyncShareTimes times; |
1093 UseMockDelayProvider(); | 1091 UseMockDelayProvider(); |
1094 | 1092 |
1095 EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)).Times(kMinNumSamples) | 1093 EXPECT_CALL(*syncer(), NormalSyncShare(_,_,_)).Times(kMinNumSamples) |
1096 .WillRepeatedly(DoAll(Invoke(sessions::test_util::SimulateCommitFailed), | 1094 .WillRepeatedly(DoAll(Invoke(sessions::test_util::SimulateCommitFailed), |
1097 RecordSyncShareMultiple(×, kMinNumSamples, false))); | 1095 RecordSyncShareMultiple(×, kMinNumSamples, false))); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1194 .WillRepeatedly(Return(TimeDelta::FromMilliseconds(0))); | 1192 .WillRepeatedly(Return(TimeDelta::FromMilliseconds(0))); |
1195 | 1193 |
1196 EXPECT_CALL(*syncer(), PollSyncShare(_,_)) | 1194 EXPECT_CALL(*syncer(), PollSyncShare(_,_)) |
1197 .WillOnce(DoAll(Invoke(sessions::test_util::SimulatePollFailed), | 1195 .WillOnce(DoAll(Invoke(sessions::test_util::SimulatePollFailed), |
1198 RecordSyncShare(×, false))) | 1196 RecordSyncShare(×, false))) |
1199 .WillOnce(DoAll(Invoke(sessions::test_util::SimulatePollSuccess), | 1197 .WillOnce(DoAll(Invoke(sessions::test_util::SimulatePollSuccess), |
1200 RecordSyncShare(×, true))); | 1198 RecordSyncShare(×, true))); |
1201 | 1199 |
1202 StartSyncScheduler(base::Time()); | 1200 StartSyncScheduler(base::Time()); |
1203 | 1201 |
1204 // Run the unsucessful poll. The failed poll should not trigger backoff. | 1202 // Run the unsuccessful poll. The failed poll should not trigger backoff. |
1205 RunLoop(); | 1203 RunLoop(); |
1206 EXPECT_TRUE(scheduler()->IsBackingOff()); | 1204 EXPECT_TRUE(scheduler()->IsBackingOff()); |
1207 | 1205 |
1208 // Run the successful poll. | 1206 // Run the successful poll. |
1209 RunLoop(); | 1207 RunLoop(); |
1210 EXPECT_FALSE(scheduler()->IsBackingOff()); | 1208 EXPECT_FALSE(scheduler()->IsBackingOff()); |
1211 } | 1209 } |
1212 | 1210 |
1213 // Test that starting the syncer thread without a valid connection doesn't | 1211 // Test that starting the syncer thread without a valid connection doesn't |
1214 // break things when a connection is detected. | 1212 // break things when a connection is detected. |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1467 ASSERT_TRUE(scheduler()->IsBackingOff()); | 1465 ASSERT_TRUE(scheduler()->IsBackingOff()); |
1468 | 1466 |
1469 // Now succeed. | 1467 // Now succeed. |
1470 connection()->SetServerReachable(); | 1468 connection()->SetServerReachable(); |
1471 PumpLoopFor(2 * delta); | 1469 PumpLoopFor(2 * delta); |
1472 ASSERT_EQ(1, success_counter.times_called()); | 1470 ASSERT_EQ(1, success_counter.times_called()); |
1473 ASSERT_FALSE(scheduler()->IsBackingOff()); | 1471 ASSERT_FALSE(scheduler()->IsBackingOff()); |
1474 } | 1472 } |
1475 | 1473 |
1476 } // namespace syncer | 1474 } // namespace syncer |
OLD | NEW |