OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 <set> | 5 #include <set> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 // TODO(tim): It would be nice if WebDataService was injected on | 186 // TODO(tim): It would be nice if WebDataService was injected on |
187 // construction of TokenService rather than fetched by Initialize so that | 187 // construction of TokenService rather than fetched by Initialize so that |
188 // this isn't necessary (we could pass a NULL service). We currently do | 188 // this isn't necessary (we could pass a NULL service). We currently do |
189 // return it via EXPECT_CALLs, but without depending on order-of- | 189 // return it via EXPECT_CALLs, but without depending on order-of- |
190 // initialization (which seems way more fragile) we can't tell which | 190 // initialization (which seems way more fragile) we can't tell which |
191 // component is asking at what time, and some components in these Autofill | 191 // component is asking at what time, and some components in these Autofill |
192 // tests require a WebDataService. | 192 // tests require a WebDataService. |
193 return 0; | 193 return 0; |
194 } | 194 } |
195 | 195 |
196 virtual AutocompleteSyncableService* | |
197 GetAutocompleteSyncableService() const OVERRIDE { | |
198 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | |
199 EXPECT_TRUE(autocomplete_syncable_service_); | |
200 | |
201 return autocomplete_syncable_service_; | |
202 } | |
203 | |
204 virtual AutofillProfileSyncableService* | |
205 GetAutofillProfileSyncableService() const OVERRIDE { | |
206 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | |
207 EXPECT_TRUE(autofill_profile_syncable_service_); | |
208 | |
209 return autofill_profile_syncable_service_; | |
210 } | |
211 | |
212 virtual void ShutdownOnUIThread() OVERRIDE {} | 196 virtual void ShutdownOnUIThread() OVERRIDE {} |
213 | 197 |
214 private: | 198 private: |
215 virtual ~WebDataServiceFake() {} | 199 virtual ~WebDataServiceFake() {} |
216 | 200 |
217 void CreateSyncableService() { | 201 void CreateSyncableService() { |
218 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 202 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
219 // These services are deleted in DestroySyncableService(). | 203 // These services are deleted in DestroySyncableService(). |
220 autocomplete_syncable_service_ = new AutocompleteSyncableService(this); | 204 AutocompleteSyncableService::AttachToWebData( |
221 autofill_profile_syncable_service_ = | 205 make_scoped_ptr(new AutocompleteSyncableService(this)), this); |
222 new AutofillProfileSyncableService(this); | 206 AutofillProfileSyncableService::AttachToWebData( |
| 207 make_scoped_ptr(new AutofillProfileSyncableService(this)), this); |
223 syncable_service_created_or_destroyed_.Signal(); | 208 syncable_service_created_or_destroyed_.Signal(); |
224 } | 209 } |
225 | 210 |
226 void DestroySyncableService() { | 211 void DestroySyncableService() { |
227 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 212 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
228 delete autofill_profile_syncable_service_; | 213 WebDataServiceBase::ShutdownOnDBThread(); |
229 delete autocomplete_syncable_service_; | |
230 syncable_service_created_or_destroyed_.Signal(); | 214 syncable_service_created_or_destroyed_.Signal(); |
231 } | 215 } |
232 | 216 |
233 WebDatabase* web_database_; | 217 WebDatabase* web_database_; |
234 | 218 |
235 // We own the syncable services, but don't use a |scoped_ptr| because the | |
236 // lifetime must be managed on the DB thread. | |
237 AutocompleteSyncableService* autocomplete_syncable_service_; | |
238 AutofillProfileSyncableService* autofill_profile_syncable_service_; | |
239 WaitableEvent syncable_service_created_or_destroyed_; | 219 WaitableEvent syncable_service_created_or_destroyed_; |
240 }; | 220 }; |
241 | 221 |
242 class MockWebDataServiceWrapper : public WebDataServiceWrapper { | 222 class MockWebDataServiceWrapper : public WebDataServiceWrapper { |
243 public: | 223 public: |
244 static ProfileKeyedService* Build(Profile* profile) { | 224 static ProfileKeyedService* Build(Profile* profile) { |
245 return new MockWebDataServiceWrapper(); | 225 return new MockWebDataServiceWrapper(); |
246 } | 226 } |
247 | 227 |
248 MockWebDataServiceWrapper() { | 228 MockWebDataServiceWrapper() { |
(...skipping 13 matching lines...) Expand all Loading... |
262 | 242 |
263 private: | 243 private: |
264 scoped_refptr<WebDataServiceFake> web_data_service_fake_; | 244 scoped_refptr<WebDataServiceFake> web_data_service_fake_; |
265 | 245 |
266 }; | 246 }; |
267 | 247 |
268 ACTION_P(MakeAutocompleteSyncComponents, wds) { | 248 ACTION_P(MakeAutocompleteSyncComponents, wds) { |
269 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 249 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
270 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) | 250 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) |
271 return base::WeakPtr<syncer::SyncableService>(); | 251 return base::WeakPtr<syncer::SyncableService>(); |
272 return wds->GetAutocompleteSyncableService()->AsWeakPtr(); | 252 return AutocompleteSyncableService::FromWebData(wds)->AsWeakPtr(); |
273 } | 253 } |
274 | 254 |
275 ACTION_P(ReturnNewDataTypeManagerWithDebugListener, debug_listener) { | 255 ACTION_P(ReturnNewDataTypeManagerWithDebugListener, debug_listener) { |
276 return new browser_sync::DataTypeManagerImpl( | 256 return new browser_sync::DataTypeManagerImpl( |
277 debug_listener, | 257 debug_listener, |
278 arg1, | 258 arg1, |
279 arg2, | 259 arg2, |
280 arg3, | 260 arg3, |
281 arg4); | 261 arg4); |
282 } | 262 } |
283 | 263 |
284 ACTION(MakeGenericChangeProcessor) { | 264 ACTION(MakeGenericChangeProcessor) { |
285 syncer::UserShare* user_share = arg0->GetUserShare(); | 265 syncer::UserShare* user_share = arg0->GetUserShare(); |
286 return new GenericChangeProcessor( | 266 return new GenericChangeProcessor( |
287 arg1, | 267 arg1, |
288 arg2, | 268 arg2, |
289 arg3, | 269 arg3, |
290 user_share); | 270 user_share); |
291 } | 271 } |
292 | 272 |
293 ACTION(MakeSharedChangeProcessor) { | 273 ACTION(MakeSharedChangeProcessor) { |
294 return new SharedChangeProcessor(); | 274 return new SharedChangeProcessor(); |
295 } | 275 } |
296 | 276 |
297 ACTION_P(MakeAutofillProfileSyncComponents, wds) { | 277 ACTION_P(MakeAutofillProfileSyncComponents, wds) { |
298 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 278 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
299 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) | 279 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) |
300 return base::WeakPtr<syncer::SyncableService>();; | 280 return base::WeakPtr<syncer::SyncableService>();; |
301 return wds->GetAutofillProfileSyncableService()->AsWeakPtr(); | 281 return AutofillProfileSyncableService::FromWebData(wds)->AsWeakPtr(); |
302 } | 282 } |
303 | 283 |
304 class AbstractAutofillFactory { | 284 class AbstractAutofillFactory { |
305 public: | 285 public: |
306 virtual DataTypeController* CreateDataTypeController( | 286 virtual DataTypeController* CreateDataTypeController( |
307 ProfileSyncComponentsFactory* factory, | 287 ProfileSyncComponentsFactory* factory, |
308 ProfileMock* profile, | 288 ProfileMock* profile, |
309 ProfileSyncService* service) = 0; | 289 ProfileSyncService* service) = 0; |
310 virtual void SetExpectation(ProfileSyncComponentsFactoryMock* factory, | 290 virtual void SetExpectation(ProfileSyncComponentsFactoryMock* factory, |
311 ProfileSyncService* service, | 291 ProfileSyncService* service, |
(...skipping 1025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1337 std::vector<AutofillEntry> sync_entries; | 1317 std::vector<AutofillEntry> sync_entries; |
1338 std::vector<AutofillProfile> sync_profiles; | 1318 std::vector<AutofillProfile> sync_profiles; |
1339 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); | 1319 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); |
1340 EXPECT_EQ(3U, sync_entries.size()); | 1320 EXPECT_EQ(3U, sync_entries.size()); |
1341 EXPECT_EQ(0U, sync_profiles.size()); | 1321 EXPECT_EQ(0U, sync_profiles.size()); |
1342 for (size_t i = 0; i < sync_entries.size(); i++) { | 1322 for (size_t i = 0; i < sync_entries.size(); i++) { |
1343 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() | 1323 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() |
1344 << ", " << sync_entries[i].key().value(); | 1324 << ", " << sync_entries[i].key().value(); |
1345 } | 1325 } |
1346 } | 1326 } |
OLD | NEW |