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* | 196 virtual void ShutdownOnUIThread() OVERRIDE {} |
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 | 197 |
212 private: | 198 private: |
213 virtual ~WebDataServiceFake() {} | 199 virtual ~WebDataServiceFake() {} |
214 | 200 |
215 void CreateSyncableService() { | 201 void CreateSyncableService() { |
216 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 202 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
217 // These services are deleted in DestroySyncableService(). | 203 // These services are deleted in DestroySyncableService(). |
218 autocomplete_syncable_service_ = new AutocompleteSyncableService(this); | 204 AutocompleteSyncableService::CreateForWebDataService(this); |
219 autofill_profile_syncable_service_ = | 205 AutofillProfileSyncableService::CreateForWebDataService(this); |
220 new AutofillProfileSyncableService(this); | |
221 syncable_service_created_or_destroyed_.Signal(); | 206 syncable_service_created_or_destroyed_.Signal(); |
222 } | 207 } |
223 | 208 |
224 void DestroySyncableService() { | 209 void DestroySyncableService() { |
225 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 210 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
226 delete autofill_profile_syncable_service_; | 211 WebDataServiceBase::ShutdownOnDBThread(); |
227 delete autocomplete_syncable_service_; | |
228 syncable_service_created_or_destroyed_.Signal(); | 212 syncable_service_created_or_destroyed_.Signal(); |
229 } | 213 } |
230 | 214 |
231 WebDatabase* web_database_; | 215 WebDatabase* web_database_; |
232 | 216 |
233 // We own the syncable services, but don't use a |scoped_ptr| because the | |
234 // lifetime must be managed on the DB thread. | |
235 AutocompleteSyncableService* autocomplete_syncable_service_; | |
236 AutofillProfileSyncableService* autofill_profile_syncable_service_; | |
237 WaitableEvent syncable_service_created_or_destroyed_; | 217 WaitableEvent syncable_service_created_or_destroyed_; |
238 }; | 218 }; |
239 | 219 |
240 ProfileKeyedService* BuildMockWebDataServiceWrapper(Profile* profile) { | 220 ProfileKeyedService* BuildMockWebDataServiceWrapper(Profile* profile) { |
241 return new MockWebDataServiceWrapper(new WebDataServiceFake()); | 221 return new MockWebDataServiceWrapper(new WebDataServiceFake()); |
242 } | 222 } |
243 | 223 |
244 ACTION_P(MakeAutocompleteSyncComponents, wds) { | 224 ACTION_P(MakeAutocompleteSyncComponents, wds) { |
245 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 225 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
246 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) | 226 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) |
247 return base::WeakPtr<syncer::SyncableService>(); | 227 return base::WeakPtr<syncer::SyncableService>(); |
248 return wds->GetAutocompleteSyncableService()->AsWeakPtr(); | 228 return AutocompleteSyncableService::FromWebDataService(wds)->AsWeakPtr(); |
249 } | 229 } |
250 | 230 |
251 ACTION_P(ReturnNewDataTypeManagerWithDebugListener, debug_listener) { | 231 ACTION_P(ReturnNewDataTypeManagerWithDebugListener, debug_listener) { |
252 return new browser_sync::DataTypeManagerImpl( | 232 return new browser_sync::DataTypeManagerImpl( |
253 debug_listener, | 233 debug_listener, |
254 arg1, | 234 arg1, |
255 arg2, | 235 arg2, |
256 arg3, | 236 arg3, |
257 arg4); | 237 arg4); |
258 } | 238 } |
259 | 239 |
260 ACTION(MakeGenericChangeProcessor) { | 240 ACTION(MakeGenericChangeProcessor) { |
261 syncer::UserShare* user_share = arg0->GetUserShare(); | 241 syncer::UserShare* user_share = arg0->GetUserShare(); |
262 return new GenericChangeProcessor( | 242 return new GenericChangeProcessor( |
263 arg1, | 243 arg1, |
264 arg2, | 244 arg2, |
265 arg3, | 245 arg3, |
266 user_share); | 246 user_share); |
267 } | 247 } |
268 | 248 |
269 ACTION(MakeSharedChangeProcessor) { | 249 ACTION(MakeSharedChangeProcessor) { |
270 return new SharedChangeProcessor(); | 250 return new SharedChangeProcessor(); |
271 } | 251 } |
272 | 252 |
273 ACTION_P(MakeAutofillProfileSyncComponents, wds) { | 253 ACTION_P(MakeAutofillProfileSyncComponents, wds) { |
274 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 254 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
275 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) | 255 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) |
276 return base::WeakPtr<syncer::SyncableService>();; | 256 return base::WeakPtr<syncer::SyncableService>();; |
277 return wds->GetAutofillProfileSyncableService()->AsWeakPtr(); | 257 return AutofillProfileSyncableService::FromWebDataService(wds)->AsWeakPtr(); |
278 } | 258 } |
279 | 259 |
280 class AbstractAutofillFactory { | 260 class AbstractAutofillFactory { |
281 public: | 261 public: |
282 virtual DataTypeController* CreateDataTypeController( | 262 virtual DataTypeController* CreateDataTypeController( |
283 ProfileSyncComponentsFactory* factory, | 263 ProfileSyncComponentsFactory* factory, |
284 ProfileMock* profile, | 264 ProfileMock* profile, |
285 ProfileSyncService* service) = 0; | 265 ProfileSyncService* service) = 0; |
286 virtual void SetExpectation(ProfileSyncComponentsFactoryMock* factory, | 266 virtual void SetExpectation(ProfileSyncComponentsFactoryMock* factory, |
287 ProfileSyncService* service, | 267 ProfileSyncService* service, |
(...skipping 1025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1313 std::vector<AutofillEntry> sync_entries; | 1293 std::vector<AutofillEntry> sync_entries; |
1314 std::vector<AutofillProfile> sync_profiles; | 1294 std::vector<AutofillProfile> sync_profiles; |
1315 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); | 1295 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); |
1316 EXPECT_EQ(3U, sync_entries.size()); | 1296 EXPECT_EQ(3U, sync_entries.size()); |
1317 EXPECT_EQ(0U, sync_profiles.size()); | 1297 EXPECT_EQ(0U, sync_profiles.size()); |
1318 for (size_t i = 0; i < sync_entries.size(); i++) { | 1298 for (size_t i = 0; i < sync_entries.size(); i++) { |
1319 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() | 1299 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() |
1320 << ", " << sync_entries[i].key().value(); | 1300 << ", " << sync_entries[i].key().value(); |
1321 } | 1301 } |
1322 } | 1302 } |
OLD | NEW |