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

Side by Side Diff: chrome/browser/sync/test_profile_sync_service.cc

Issue 10520010: Not for review: Support sync init with missing or corrupt store (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Documentation Created 8 years, 6 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 "chrome/browser/sync/test_profile_sync_service.h" 5 #include "chrome/browser/sync/test_profile_sync_service.h"
6 6
7 #include "chrome/browser/signin/signin_manager.h" 7 #include "chrome/browser/signin/signin_manager.h"
8 #include "chrome/browser/sync/abstract_profile_sync_service_test.h" 8 #include "chrome/browser/sync/abstract_profile_sync_service_test.h"
9 #include "chrome/browser/sync/glue/data_type_controller.h" 9 #include "chrome/browser/sync/glue/data_type_controller.h"
10 #include "chrome/browser/sync/glue/sync_backend_host.h" 10 #include "chrome/browser/sync/glue/sync_backend_host.h"
11 #include "chrome/browser/sync/profile_sync_components_factory.h" 11 #include "chrome/browser/sync/profile_sync_components_factory.h"
12 #include "chrome/browser/sync/test/test_http_bridge_factory.h" 12 #include "chrome/browser/sync/test/test_http_bridge_factory.h"
13 #include "chrome/common/chrome_notification_types.h" 13 #include "chrome/common/chrome_notification_types.h"
14 #include "sync/internal_api/user_share.h" 14 #include "sync/internal_api/user_share.h"
15 #include "sync/js/js_reply_handler.h" 15 #include "sync/js/js_reply_handler.h"
16 #include "sync/protocol/encryption.pb.h" 16 #include "sync/protocol/encryption.pb.h"
17 #include "sync/sessions/session_state.h" 17 #include "sync/sessions/session_state.h"
18 #include "sync/syncable/syncable.h" 18 #include "sync/syncable/syncable.h"
19 19
20 #include "chrome/browser/sync/glue/sync_backend_registrar.h"
21
20 using browser_sync::ModelSafeRoutingInfo; 22 using browser_sync::ModelSafeRoutingInfo;
21 using browser_sync::sessions::ErrorCounters; 23 using browser_sync::sessions::ErrorCounters;
22 using browser_sync::sessions::SyncSourceInfo; 24 using browser_sync::sessions::SyncSourceInfo;
23 using browser_sync::sessions::SyncerStatus; 25 using browser_sync::sessions::SyncerStatus;
24 using browser_sync::sessions::SyncSessionSnapshot; 26 using browser_sync::sessions::SyncSessionSnapshot;
25 using syncable::Directory; 27 using syncable::Directory;
26 using syncable::ModelType; 28 using syncable::ModelType;
27 using sync_api::UserShare; 29 using sync_api::UserShare;
28 30
29 namespace browser_sync { 31 namespace browser_sync {
30 32
31 SyncBackendHostForProfileSyncTest::SyncBackendHostForProfileSyncTest( 33 SyncBackendHostForProfileSyncTest::SyncBackendHostForProfileSyncTest(
32 Profile* profile, 34 Profile* profile,
33 const base::WeakPtr<SyncPrefs>& sync_prefs, 35 const base::WeakPtr<SyncPrefs>& sync_prefs,
34 const base::WeakPtr<InvalidatorStorage>& invalidator_storage, 36 const base::WeakPtr<InvalidatorStorage>& invalidator_storage,
35 bool set_initial_sync_ended_on_init,
36 bool synchronous_init, 37 bool synchronous_init,
37 bool fail_initial_download, 38 bool fail_all_downloads,
38 bool use_real_database) 39 bool use_real_database)
39 : browser_sync::SyncBackendHost( 40 : browser_sync::SyncBackendHost(
40 profile->GetDebugName(), profile, sync_prefs, invalidator_storage), 41 profile->GetDebugName(), profile, sync_prefs, invalidator_storage),
41 synchronous_init_(synchronous_init), 42 synchronous_init_(synchronous_init),
42 fail_initial_download_(fail_initial_download), 43 fail_all_downloads_(fail_all_downloads),
43 use_real_database_(use_real_database) {} 44 use_real_database_(use_real_database) {}
44 45
45 SyncBackendHostForProfileSyncTest::~SyncBackendHostForProfileSyncTest() {} 46 SyncBackendHostForProfileSyncTest::~SyncBackendHostForProfileSyncTest() {}
46 47
47 void SyncBackendHostForProfileSyncTest::
48 SimulateSyncCycleCompletedInitialSyncEnded(
49 const tracked_objects::Location& location) {
50 syncable::ModelTypeSet sync_ended;
51 if (!fail_initial_download_)
52 sync_ended = syncable::ModelTypeSet::All();
53 syncable::ModelTypePayloadMap download_progress_markers;
54 HandleSyncCycleCompletedOnFrontendLoop(SyncSessionSnapshot(
55 SyncerStatus(), ErrorCounters(), 0, false,
56 sync_ended, download_progress_markers, false, false, 0, 0, 0, 0,
57 SyncSourceInfo(), false, 0, base::Time::Now(), false));
58 }
59
60 namespace { 48 namespace {
61 49
62 sync_api::HttpPostProviderFactory* MakeTestHttpBridgeFactory() { 50 sync_api::HttpPostProviderFactory* MakeTestHttpBridgeFactory() {
63 return new browser_sync::TestHttpBridgeFactory(); 51 return new browser_sync::TestHttpBridgeFactory();
64 } 52 }
65 53
66 } // namespace 54 } // namespace
67 55
68 void SyncBackendHostForProfileSyncTest::InitCore( 56 void SyncBackendHostForProfileSyncTest::InitCore(
69 const DoInitializeOptions& options) { 57 const DoInitializeOptions& options) {
(...skipping 11 matching lines...) Expand all
81 if (synchronous_init_) { 69 if (synchronous_init_) {
82 // The SyncBackend posts a task to the current loop when 70 // The SyncBackend posts a task to the current loop when
83 // initialization completes. 71 // initialization completes.
84 MessageLoop::current()->Run(); 72 MessageLoop::current()->Run();
85 } 73 }
86 } 74 }
87 75
88 void SyncBackendHostForProfileSyncTest::StartConfiguration( 76 void SyncBackendHostForProfileSyncTest::StartConfiguration(
89 const base::Closure& callback) { 77 const base::Closure& callback) {
90 SyncBackendHost::FinishConfigureDataTypesOnFrontendLoop(); 78 SyncBackendHost::FinishConfigureDataTypesOnFrontendLoop();
91 if (IsDownloadingNigoriForTest()) {
92 syncable::ModelTypeSet sync_ended;
93 79
94 if (!fail_initial_download_) 80 if (!fail_all_downloads_ && pending_download_state_.get()) {
95 sync_ended.Put(syncable::NIGORI); 81 // Give the SBH the callback it is waiting for.
96 syncable::ModelTypePayloadMap download_progress_markers; 82 syncable::ModelTypePayloadMap download_progress_markers;
97 HandleSyncCycleCompletedOnFrontendLoop(SyncSessionSnapshot( 83 HandleSyncCycleCompletedOnFrontendLoop(SyncSessionSnapshot(
98 SyncerStatus(), ErrorCounters(), 0, false, 84 SyncerStatus(), ErrorCounters(), 0, false,
99 sync_ended, download_progress_markers, false, false, 0, 0, 0, 0, 85 pending_download_state_->types_to_add,
86 download_progress_markers, false, false, 0, 0, 0, 0,
100 SyncSourceInfo(), false, 0, base::Time::Now(), false)); 87 SyncSourceInfo(), false, 0, base::Time::Now(), false));
101 } 88 }
102 } 89 }
103 90
104 void SyncBackendHostForProfileSyncTest::SetHistoryServiceExpectations( 91 void SyncBackendHostForProfileSyncTest::SetHistoryServiceExpectations(
105 ProfileMock* profile) { 92 ProfileMock* profile) {
106 EXPECT_CALL(*profile, GetHistoryService(testing::_)). 93 EXPECT_CALL(*profile, GetHistoryService(testing::_)).
107 WillOnce(testing::Return((HistoryService*)NULL)); 94 WillOnce(testing::Return((HistoryService*)NULL));
108 } 95 }
109 96
(...skipping 18 matching lines...) Expand all
128 const base::Closure& callback) 115 const base::Closure& callback)
129 : ProfileSyncService(factory, 116 : ProfileSyncService(factory,
130 profile, 117 profile,
131 signin, 118 signin,
132 behavior), 119 behavior),
133 synchronous_backend_initialization_( 120 synchronous_backend_initialization_(
134 synchronous_backend_initialization), 121 synchronous_backend_initialization),
135 synchronous_sync_configuration_(false), 122 synchronous_sync_configuration_(false),
136 callback_(callback), 123 callback_(callback),
137 set_initial_sync_ended_on_init_(true), 124 set_initial_sync_ended_on_init_(true),
138 fail_initial_download_(false), 125 fail_all_downloads_(false),
139 use_real_database_(false) { 126 use_real_database_(false) {
140 SetSyncSetupCompleted(); 127 SetSyncSetupCompleted();
141 } 128 }
142 129
143 TestProfileSyncService::~TestProfileSyncService() { 130 TestProfileSyncService::~TestProfileSyncService() {
144 } 131 }
145 132
146 void TestProfileSyncService::SetInitialSyncEndedForAllTypes() { 133 void TestProfileSyncService::SetInitialSyncEndedForAllTypes() {
147 UserShare* user_share = GetUserShare(); 134 UserShare* user_share = GetUserShare();
148 Directory* directory = user_share->directory.get(); 135 Directory* directory = user_share->directory.get();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 MessageLoop::current()->Quit(); 195 MessageLoop::current()->Quit();
209 } 196 }
210 } 197 }
211 198
212 void TestProfileSyncService::dont_set_initial_sync_ended_on_init() { 199 void TestProfileSyncService::dont_set_initial_sync_ended_on_init() {
213 set_initial_sync_ended_on_init_ = false; 200 set_initial_sync_ended_on_init_ = false;
214 } 201 }
215 void TestProfileSyncService::set_synchronous_sync_configuration() { 202 void TestProfileSyncService::set_synchronous_sync_configuration() {
216 synchronous_sync_configuration_ = true; 203 synchronous_sync_configuration_ = true;
217 } 204 }
218 void TestProfileSyncService::fail_initial_download() { 205 void TestProfileSyncService::fail_all_downloads() {
219 fail_initial_download_ = true; 206 fail_all_downloads_ = true;
220 } 207 }
221 void TestProfileSyncService::set_use_real_database() { 208 void TestProfileSyncService::set_use_real_database() {
222 use_real_database_ = true; 209 use_real_database_ = true;
223 } 210 }
224 211
225 void TestProfileSyncService::CreateBackend() { 212 void TestProfileSyncService::CreateBackend() {
226 backend_.reset(new browser_sync::SyncBackendHostForProfileSyncTest( 213 backend_.reset(new browser_sync::SyncBackendHostForProfileSyncTest(
227 profile(), 214 profile(),
228 sync_prefs_.AsWeakPtr(), 215 sync_prefs_.AsWeakPtr(),
229 invalidator_storage_.AsWeakPtr(), 216 invalidator_storage_.AsWeakPtr(),
230 set_initial_sync_ended_on_init_,
231 synchronous_backend_initialization_, 217 synchronous_backend_initialization_,
232 fail_initial_download_, 218 fail_all_downloads_,
233 use_real_database_)); 219 use_real_database_));
234 } 220 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698