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

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

Issue 6380004: [Sync] Tidy up SyncBackendHost interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix windows compile Created 9 years, 11 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_ 5 #ifndef CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
6 #define CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_ 6 #define CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 // |initial_condition_setup_task| can be used to populate nodes before the 58 // |initial_condition_setup_task| can be used to populate nodes before the
59 // OnBackendInitialized callback fires. 59 // OnBackendInitialized callback fires.
60 // |set_initial_sync_ended_on_init| determines whether we pretend that a full 60 // |set_initial_sync_ended_on_init| determines whether we pretend that a full
61 // initial download has occurred and set bits for enabled data types. If 61 // initial download has occurred and set bits for enabled data types. If
62 // this is false, configuring data types will require a syncer nudge. 62 // this is false, configuring data types will require a syncer nudge.
63 // |synchronous_init| causes initialization to block until the syncapi has 63 // |synchronous_init| causes initialization to block until the syncapi has
64 // completed setting itself up and called us back. 64 // completed setting itself up and called us back.
65 SyncBackendHostForProfileSyncTest( 65 SyncBackendHostForProfileSyncTest(
66 TestProfileSyncService* service, 66 TestProfileSyncService* service,
67 Profile* profile, 67 Profile* profile,
68 const FilePath& profile_path,
69 const DataTypeController::TypeMap& data_type_controllers,
70 Task* initial_condition_setup_task, 68 Task* initial_condition_setup_task,
71 int num_expected_resumes, 69 int num_expected_resumes,
72 int num_expected_pauses, 70 int num_expected_pauses,
73 bool set_initial_sync_ended_on_init, 71 bool set_initial_sync_ended_on_init,
74 bool synchronous_init); 72 bool synchronous_init);
75 73
76 MOCK_METHOD0(RequestPause, bool()); 74 MOCK_METHOD0(RequestPause, bool());
77 MOCK_METHOD0(RequestResume, bool()); 75 MOCK_METHOD0(RequestResume, bool());
78 MOCK_METHOD0(RequestNudge, void()); 76 MOCK_METHOD0(RequestNudge, void());
79 77
80 void SetInitialSyncEndedForEnabledTypes() { 78 void SetInitialSyncEndedForEnabledTypes() {
81 UserShare* user_share = core_->syncapi()->GetUserShare(); 79 UserShare* user_share = core_->syncapi()->GetUserShare();
82 DirectoryManager* dir_manager = user_share->dir_manager.get(); 80 DirectoryManager* dir_manager = user_share->dir_manager.get();
83 81
84 ScopedDirLookup dir(dir_manager, user_share->name); 82 ScopedDirLookup dir(dir_manager, user_share->name);
85 if (!dir.good()) 83 if (!dir.good())
86 FAIL(); 84 FAIL();
87 85
88 ModelSafeRoutingInfo enabled_types; 86 ModelSafeRoutingInfo enabled_types;
89 GetModelSafeRoutingInfo(&enabled_types); 87 GetModelSafeRoutingInfo(&enabled_types);
90 for (ModelSafeRoutingInfo::const_iterator i = enabled_types.begin(); 88 for (ModelSafeRoutingInfo::const_iterator i = enabled_types.begin();
91 i != enabled_types.end(); ++i) { 89 i != enabled_types.end(); ++i) {
92 dir->set_initial_sync_ended_for_type(i->first, true); 90 dir->set_initial_sync_ended_for_type(i->first, true);
93 } 91 }
94 } 92 }
95 93
96 virtual void ConfigureDataTypes(const syncable::ModelTypeSet& types, 94 virtual void ConfigureDataTypes(
95 const DataTypeController::TypeMap& data_type_controllers,
96 const syncable::ModelTypeSet& types,
97 CancelableTask* ready_task) { 97 CancelableTask* ready_task) {
98 SetAutofillMigrationState(syncable::MIGRATED); 98 SetAutofillMigrationState(syncable::MIGRATED);
99 SyncBackendHost::ConfigureDataTypes(types, ready_task); 99 SyncBackendHost::ConfigureDataTypes(
100 data_type_controllers, types, ready_task);
100 } 101 }
101 102
102 // Called when a nudge comes in. 103 // Called when a nudge comes in.
103 void SimulateSyncCycleCompletedInitialSyncEnded() { 104 void SimulateSyncCycleCompletedInitialSyncEnded() {
104 syncable::ModelTypeBitSet sync_ended; 105 syncable::ModelTypeBitSet sync_ended;
105 ModelSafeRoutingInfo enabled_types; 106 ModelSafeRoutingInfo enabled_types;
106 GetModelSafeRoutingInfo(&enabled_types); 107 GetModelSafeRoutingInfo(&enabled_types);
107 std::string download_progress_markers[syncable::MODEL_TYPE_COUNT]; 108 std::string download_progress_markers[syncable::MODEL_TYPE_COUNT];
108 for (ModelSafeRoutingInfo::const_iterator i = enabled_types.begin(); 109 for (ModelSafeRoutingInfo::const_iterator i = enabled_types.begin();
109 i != enabled_types.end(); ++i) { 110 i != enabled_types.end(); ++i) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 158
158 } // namespace browser_sync 159 } // namespace browser_sync
159 160
160 class TestProfileSyncService : public ProfileSyncService { 161 class TestProfileSyncService : public ProfileSyncService {
161 public: 162 public:
162 TestProfileSyncService(ProfileSyncFactory* factory, 163 TestProfileSyncService(ProfileSyncFactory* factory,
163 Profile* profile, 164 Profile* profile,
164 const std::string& test_user, 165 const std::string& test_user,
165 bool synchronous_backend_initialization, 166 bool synchronous_backend_initialization,
166 Task* initial_condition_setup_task) 167 Task* initial_condition_setup_task)
167 : ProfileSyncService(factory, profile, 168 : ProfileSyncService(factory, profile, test_user),
168 !test_user.empty() ?
169 test_user : ""),
170 synchronous_backend_initialization_( 169 synchronous_backend_initialization_(
171 synchronous_backend_initialization), 170 synchronous_backend_initialization),
172 synchronous_sync_configuration_(false), 171 synchronous_sync_configuration_(false),
173 num_expected_resumes_(1), 172 num_expected_resumes_(1),
174 num_expected_pauses_(1), 173 num_expected_pauses_(1),
175 initial_condition_setup_task_(initial_condition_setup_task), 174 initial_condition_setup_task_(initial_condition_setup_task),
176 set_initial_sync_ended_on_init_(true) { 175 set_initial_sync_ended_on_init_(true) {
177 RegisterPreferences(); 176 RegisterPreferences();
178 SetSyncSetupCompleted(); 177 SetSyncSetupCompleted();
179 } 178 }
180 virtual ~TestProfileSyncService() { } 179 virtual ~TestProfileSyncService() { }
181 180
182 virtual void CreateBackend() {
183 backend_.reset(new browser_sync::SyncBackendHostForProfileSyncTest(
184 this, profile(),
185 profile()->GetPath(), data_type_controllers(),
186 initial_condition_setup_task_.release(),
187 num_expected_resumes_, num_expected_pauses_,
188 set_initial_sync_ended_on_init_,
189 synchronous_backend_initialization_));
190 }
191
192 virtual void OnBackendInitialized() { 181 virtual void OnBackendInitialized() {
193 ProfileSyncService::OnBackendInitialized(); 182 ProfileSyncService::OnBackendInitialized();
194 // TODO(akalin): Figure out a better way to do this. 183 // TODO(akalin): Figure out a better way to do this.
195 if (synchronous_backend_initialization_) { 184 if (synchronous_backend_initialization_) {
196 MessageLoop::current()->Quit(); 185 MessageLoop::current()->Quit();
197 } 186 }
198 } 187 }
199 188
200 virtual void Observe(NotificationType type, 189 virtual void Observe(NotificationType type,
201 const NotificationSource& source, 190 const NotificationSource& source,
(...skipping 13 matching lines...) Expand all
215 } 204 }
216 void dont_set_initial_sync_ended_on_init() { 205 void dont_set_initial_sync_ended_on_init() {
217 set_initial_sync_ended_on_init_ = false; 206 set_initial_sync_ended_on_init_ = false;
218 } 207 }
219 void set_synchronous_sync_configuration() { 208 void set_synchronous_sync_configuration() {
220 synchronous_sync_configuration_ = true; 209 synchronous_sync_configuration_ = true;
221 } 210 }
222 211
223 browser_sync::TestIdFactory* id_factory() { return &id_factory_; } 212 browser_sync::TestIdFactory* id_factory() { return &id_factory_; }
224 213
214 protected:
215 virtual void CreateBackend();
216
225 private: 217 private:
226 // When testing under ChromiumOS, this method must not return an empty 218 // When testing under ChromiumOS, this method must not return an empty
227 // value value in order for the profile sync service to start. 219 // value value in order for the profile sync service to start.
228 virtual std::string GetLsidForAuthBootstraping() { 220 virtual std::string GetLsidForAuthBootstraping() {
229 return "foo"; 221 return "foo";
230 } 222 }
231 223
232 bool synchronous_backend_initialization_; 224 bool synchronous_backend_initialization_;
233 225
234 // Set to true when a mock data type manager is being used and the configure 226 // Set to true when a mock data type manager is being used and the configure
235 // step is performed synchronously. 227 // step is performed synchronously.
236 bool synchronous_sync_configuration_; 228 bool synchronous_sync_configuration_;
237 bool set_expect_resume_expectations_; 229 bool set_expect_resume_expectations_;
238 int num_expected_resumes_; 230 int num_expected_resumes_;
239 int num_expected_pauses_; 231 int num_expected_pauses_;
240 232
241 scoped_ptr<Task> initial_condition_setup_task_; 233 scoped_ptr<Task> initial_condition_setup_task_;
242 bool set_initial_sync_ended_on_init_; 234 bool set_initial_sync_ended_on_init_;
243 browser_sync::TestIdFactory id_factory_; 235 browser_sync::TestIdFactory id_factory_;
244 }; 236 };
245 237
246 238
247 239
248 #endif // CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_ 240 #endif // CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698