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 "sync/engine/backoff_delay_provider.h" | 5 #include "sync/engine/backoff_delay_provider.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include <memory> |
| 8 |
8 #include "base/time/time.h" | 9 #include "base/time/time.h" |
9 #include "sync/internal_api/public/engine/polling_constants.h" | 10 #include "sync/internal_api/public/engine/polling_constants.h" |
10 #include "sync/internal_api/public/sessions/model_neutral_state.h" | 11 #include "sync/internal_api/public/sessions/model_neutral_state.h" |
11 #include "sync/internal_api/public/util/syncer_error.h" | 12 #include "sync/internal_api/public/util/syncer_error.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
13 | 14 |
14 using base::TimeDelta; | 15 using base::TimeDelta; |
15 | 16 |
16 namespace syncer { | 17 namespace syncer { |
17 | 18 |
18 class BackoffDelayProviderTest : public testing::Test {}; | 19 class BackoffDelayProviderTest : public testing::Test {}; |
19 | 20 |
20 TEST_F(BackoffDelayProviderTest, GetRecommendedDelay) { | 21 TEST_F(BackoffDelayProviderTest, GetRecommendedDelay) { |
21 scoped_ptr<BackoffDelayProvider> delay(BackoffDelayProvider::FromDefaults()); | 22 std::unique_ptr<BackoffDelayProvider> delay( |
| 23 BackoffDelayProvider::FromDefaults()); |
22 EXPECT_EQ(TimeDelta::FromSeconds(1), | 24 EXPECT_EQ(TimeDelta::FromSeconds(1), |
23 delay->GetDelay(TimeDelta::FromSeconds(0))); | 25 delay->GetDelay(TimeDelta::FromSeconds(0))); |
24 EXPECT_LE(TimeDelta::FromSeconds(1), | 26 EXPECT_LE(TimeDelta::FromSeconds(1), |
25 delay->GetDelay(TimeDelta::FromSeconds(1))); | 27 delay->GetDelay(TimeDelta::FromSeconds(1))); |
26 EXPECT_LE(TimeDelta::FromSeconds(50), | 28 EXPECT_LE(TimeDelta::FromSeconds(50), |
27 delay->GetDelay(TimeDelta::FromSeconds(50))); | 29 delay->GetDelay(TimeDelta::FromSeconds(50))); |
28 EXPECT_LE(TimeDelta::FromSeconds(10), | 30 EXPECT_LE(TimeDelta::FromSeconds(10), |
29 delay->GetDelay(TimeDelta::FromSeconds(10))); | 31 delay->GetDelay(TimeDelta::FromSeconds(10))); |
30 EXPECT_EQ(TimeDelta::FromSeconds(kMaxBackoffSeconds), | 32 EXPECT_EQ(TimeDelta::FromSeconds(kMaxBackoffSeconds), |
31 delay->GetDelay(TimeDelta::FromSeconds(kMaxBackoffSeconds))); | 33 delay->GetDelay(TimeDelta::FromSeconds(kMaxBackoffSeconds))); |
32 EXPECT_EQ(TimeDelta::FromSeconds(kMaxBackoffSeconds), | 34 EXPECT_EQ(TimeDelta::FromSeconds(kMaxBackoffSeconds), |
33 delay->GetDelay(TimeDelta::FromSeconds(kMaxBackoffSeconds + 1))); | 35 delay->GetDelay(TimeDelta::FromSeconds(kMaxBackoffSeconds + 1))); |
34 } | 36 } |
35 | 37 |
36 TEST_F(BackoffDelayProviderTest, GetInitialDelay) { | 38 TEST_F(BackoffDelayProviderTest, GetInitialDelay) { |
37 scoped_ptr<BackoffDelayProvider> delay(BackoffDelayProvider::FromDefaults()); | 39 std::unique_ptr<BackoffDelayProvider> delay( |
| 40 BackoffDelayProvider::FromDefaults()); |
38 sessions::ModelNeutralState state; | 41 sessions::ModelNeutralState state; |
39 state.last_get_key_result = SYNC_SERVER_ERROR; | 42 state.last_get_key_result = SYNC_SERVER_ERROR; |
40 EXPECT_EQ(kInitialBackoffRetrySeconds, | 43 EXPECT_EQ(kInitialBackoffRetrySeconds, |
41 delay->GetInitialDelay(state).InSeconds()); | 44 delay->GetInitialDelay(state).InSeconds()); |
42 | 45 |
43 state.last_get_key_result = UNSET; | 46 state.last_get_key_result = UNSET; |
44 state.last_download_updates_result = SERVER_RETURN_MIGRATION_DONE; | 47 state.last_download_updates_result = SERVER_RETURN_MIGRATION_DONE; |
45 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, | 48 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, |
46 delay->GetInitialDelay(state).InSeconds()); | 49 delay->GetInitialDelay(state).InSeconds()); |
47 | 50 |
(...skipping 28 matching lines...) Expand all Loading... |
76 state.commit_result = NETWORK_CONNECTION_UNAVAILABLE; | 79 state.commit_result = NETWORK_CONNECTION_UNAVAILABLE; |
77 EXPECT_EQ(kInitialBackoffRetrySeconds, | 80 EXPECT_EQ(kInitialBackoffRetrySeconds, |
78 delay->GetInitialDelay(state).InSeconds()); | 81 delay->GetInitialDelay(state).InSeconds()); |
79 | 82 |
80 state.commit_result = SERVER_RETURN_CONFLICT; | 83 state.commit_result = SERVER_RETURN_CONFLICT; |
81 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, | 84 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, |
82 delay->GetInitialDelay(state).InSeconds()); | 85 delay->GetInitialDelay(state).InSeconds()); |
83 } | 86 } |
84 | 87 |
85 TEST_F(BackoffDelayProviderTest, GetInitialDelayWithOverride) { | 88 TEST_F(BackoffDelayProviderTest, GetInitialDelayWithOverride) { |
86 scoped_ptr<BackoffDelayProvider> delay( | 89 std::unique_ptr<BackoffDelayProvider> delay( |
87 BackoffDelayProvider::WithShortInitialRetryOverride()); | 90 BackoffDelayProvider::WithShortInitialRetryOverride()); |
88 sessions::ModelNeutralState state; | 91 sessions::ModelNeutralState state; |
89 state.last_get_key_result = SYNC_SERVER_ERROR; | 92 state.last_get_key_result = SYNC_SERVER_ERROR; |
90 EXPECT_EQ(kInitialBackoffShortRetrySeconds, | 93 EXPECT_EQ(kInitialBackoffShortRetrySeconds, |
91 delay->GetInitialDelay(state).InSeconds()); | 94 delay->GetInitialDelay(state).InSeconds()); |
92 | 95 |
93 state.last_get_key_result = UNSET; | 96 state.last_get_key_result = UNSET; |
94 state.last_download_updates_result = SERVER_RETURN_MIGRATION_DONE; | 97 state.last_download_updates_result = SERVER_RETURN_MIGRATION_DONE; |
95 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, | 98 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, |
96 delay->GetInitialDelay(state).InSeconds()); | 99 delay->GetInitialDelay(state).InSeconds()); |
(...skipping 21 matching lines...) Expand all Loading... |
118 state.commit_result = SERVER_RETURN_MIGRATION_DONE; | 121 state.commit_result = SERVER_RETURN_MIGRATION_DONE; |
119 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, | 122 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, |
120 delay->GetInitialDelay(state).InSeconds()); | 123 delay->GetInitialDelay(state).InSeconds()); |
121 | 124 |
122 state.commit_result = SERVER_RETURN_CONFLICT; | 125 state.commit_result = SERVER_RETURN_CONFLICT; |
123 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, | 126 EXPECT_EQ(kInitialBackoffImmediateRetrySeconds, |
124 delay->GetInitialDelay(state).InSeconds()); | 127 delay->GetInitialDelay(state).InSeconds()); |
125 } | 128 } |
126 | 129 |
127 } // namespace syncer | 130 } // namespace syncer |
OLD | NEW |