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