| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/macros.h" | 6 #include "base/macros.h" |
| 7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
| 8 #include "chrome/browser/sync/test/integration/bookmarks_helper.h" | 8 #include "chrome/browser/sync/test/integration/bookmarks_helper.h" |
| 9 #include "chrome/browser/sync/test/integration/retry_verifier.h" | 9 #include "chrome/browser/sync/test/integration/retry_verifier.h" |
| 10 #include "chrome/browser/sync/test/integration/single_client_status_change_check
er.h" | 10 #include "chrome/browser/sync/test/integration/single_client_status_change_check
er.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 RetryVerifier retry_verifier_; | 61 RetryVerifier retry_verifier_; |
| 62 | 62 |
| 63 DISALLOW_COPY_AND_ASSIGN(ExponentialBackoffChecker); | 63 DISALLOW_COPY_AND_ASSIGN(ExponentialBackoffChecker); |
| 64 }; | 64 }; |
| 65 | 65 |
| 66 IN_PROC_BROWSER_TEST_F(SyncExponentialBackoffTest, OfflineToOnline) { | 66 IN_PROC_BROWSER_TEST_F(SyncExponentialBackoffTest, OfflineToOnline) { |
| 67 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 67 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
| 68 | 68 |
| 69 // Add an item and ensure that sync is successful. | 69 // Add an item and ensure that sync is successful. |
| 70 ASSERT_TRUE(AddFolder(0, 0, "folder1")); | 70 ASSERT_TRUE(AddFolder(0, 0, "folder1")); |
| 71 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0)))); | 71 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService(0))); |
| 72 | 72 |
| 73 GetFakeServer()->DisableNetwork(); | 73 GetFakeServer()->DisableNetwork(); |
| 74 | 74 |
| 75 // Add a new item to trigger another sync cycle. | 75 // Add a new item to trigger another sync cycle. |
| 76 ASSERT_TRUE(AddFolder(0, 0, "folder2")); | 76 ASSERT_TRUE(AddFolder(0, 0, "folder2")); |
| 77 | 77 |
| 78 // Verify that the client goes into exponential backoff while it is unable to | 78 // Verify that the client goes into exponential backoff while it is unable to |
| 79 // reach the sync server. | 79 // reach the sync server. |
| 80 ExponentialBackoffChecker exponential_backoff_checker( | 80 ExponentialBackoffChecker exponential_backoff_checker(GetSyncService(0)); |
| 81 GetSyncService((0))); | |
| 82 exponential_backoff_checker.Wait(); | 81 exponential_backoff_checker.Wait(); |
| 83 ASSERT_FALSE(exponential_backoff_checker.TimedOut()); | 82 ASSERT_FALSE(exponential_backoff_checker.TimedOut()); |
| 84 | 83 |
| 85 // Trigger network change notification and remember time when it happened. | 84 // Trigger network change notification and remember time when it happened. |
| 86 // Ensure that scheduler runs canary job immediately. | 85 // Ensure that scheduler runs canary job immediately. |
| 87 GetFakeServer()->EnableNetwork(); | 86 GetFakeServer()->EnableNetwork(); |
| 88 net::NetworkChangeNotifier::NotifyObserversOfConnectionTypeChangeForTests( | 87 net::NetworkChangeNotifier::NotifyObserversOfConnectionTypeChangeForTests( |
| 89 net::NetworkChangeNotifier::CONNECTION_ETHERNET); | 88 net::NetworkChangeNotifier::CONNECTION_ETHERNET); |
| 90 | 89 |
| 91 base::Time network_notification_time = base::Time::Now(); | 90 base::Time network_notification_time = base::Time::Now(); |
| 92 | 91 |
| 93 // Verify that sync was able to recover. | 92 // Verify that sync was able to recover. |
| 94 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0)))); | 93 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService(0))); |
| 95 ASSERT_TRUE(ModelMatchesVerifier(0)); | 94 ASSERT_TRUE(ModelMatchesVerifier(0)); |
| 96 | 95 |
| 97 // Verify that recovery time is short. Without canary job recovery time would | 96 // Verify that recovery time is short. Without canary job recovery time would |
| 98 // be more than 5 seconds. | 97 // be more than 5 seconds. |
| 99 base::TimeDelta recovery_time = | 98 base::TimeDelta recovery_time = |
| 100 GetSyncService(0)->GetLastCycleSnapshot().sync_start_time() - | 99 GetSyncService(0)->GetLastCycleSnapshot().sync_start_time() - |
| 101 network_notification_time; | 100 network_notification_time; |
| 102 ASSERT_LE(recovery_time, base::TimeDelta::FromSeconds(2)); | 101 ASSERT_LE(recovery_time, base::TimeDelta::FromSeconds(2)); |
| 103 } | 102 } |
| 104 | 103 |
| 105 IN_PROC_BROWSER_TEST_F(SyncExponentialBackoffTest, TransientErrorTest) { | 104 IN_PROC_BROWSER_TEST_F(SyncExponentialBackoffTest, TransientErrorTest) { |
| 106 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 105 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
| 107 | 106 |
| 108 // Add an item and ensure that sync is successful. | 107 // Add an item and ensure that sync is successful. |
| 109 ASSERT_TRUE(AddFolder(0, 0, "folder1")); | 108 ASSERT_TRUE(AddFolder(0, 0, "folder1")); |
| 110 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0)))); | 109 ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService(0))); |
| 111 | 110 |
| 112 GetFakeServer()->TriggerError(sync_pb::SyncEnums::TRANSIENT_ERROR); | 111 GetFakeServer()->TriggerError(sync_pb::SyncEnums::TRANSIENT_ERROR); |
| 113 | 112 |
| 114 // Add a new item to trigger another sync cycle. | 113 // Add a new item to trigger another sync cycle. |
| 115 ASSERT_TRUE(AddFolder(0, 0, "folder2")); | 114 ASSERT_TRUE(AddFolder(0, 0, "folder2")); |
| 116 | 115 |
| 117 // Verify that the client goes into exponential backoff while it is unable to | 116 // Verify that the client goes into exponential backoff while it is unable to |
| 118 // reach the sync server. | 117 // reach the sync server. |
| 119 ExponentialBackoffChecker exponential_backoff_checker( | 118 ExponentialBackoffChecker exponential_backoff_checker(GetSyncService(0)); |
| 120 GetSyncService((0))); | |
| 121 exponential_backoff_checker.Wait(); | 119 exponential_backoff_checker.Wait(); |
| 122 ASSERT_FALSE(exponential_backoff_checker.TimedOut()); | 120 ASSERT_FALSE(exponential_backoff_checker.TimedOut()); |
| 123 } | 121 } |
| 124 | 122 |
| 125 } // namespace | 123 } // namespace |
| OLD | NEW |