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