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

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

Issue 12491017: Make WebDataService no longer depend on ProfileKeyedService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head for commit. Created 7 years, 9 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 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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 MOCK_METHOD1(AddAutofillProfile, 112 MOCK_METHOD1(AddAutofillProfile,
113 bool(const AutofillProfile&)); // NOLINT 113 bool(const AutofillProfile&)); // NOLINT
114 MOCK_METHOD1(RemoveAutofillProfile, 114 MOCK_METHOD1(RemoveAutofillProfile,
115 bool(const std::string&)); // NOLINT 115 bool(const std::string&)); // NOLINT
116 }; 116 };
117 117
118 MATCHER_P(MatchProfiles, profile, "") { 118 MATCHER_P(MatchProfiles, profile, "") {
119 return (profile.Compare(arg) == 0); 119 return (profile.Compare(arg) == 0);
120 } 120 }
121 121
122
123 class WebDatabaseFake : public WebDatabase { 122 class WebDatabaseFake : public WebDatabase {
124 public: 123 public:
125 explicit WebDatabaseFake(AutofillTable* autofill_table) 124 explicit WebDatabaseFake(AutofillTable* autofill_table)
126 : autofill_table_(autofill_table) {} 125 : autofill_table_(autofill_table) {}
127 126
128 virtual AutofillTable* GetAutofillTable() OVERRIDE { 127 virtual AutofillTable* GetAutofillTable() OVERRIDE {
129 return autofill_table_; 128 return autofill_table_;
130 } 129 }
131 130
132 private: 131 private:
(...skipping 17 matching lines...) Expand all
150 return syncer::AUTOFILL_PROFILE; 149 return syncer::AUTOFILL_PROFILE;
151 } 150 }
152 151
153 class WebDataServiceFake : public WebDataService { 152 class WebDataServiceFake : public WebDataService {
154 public: 153 public:
155 WebDataServiceFake() 154 WebDataServiceFake()
156 : web_database_(NULL), 155 : web_database_(NULL),
157 syncable_service_created_or_destroyed_(false, false) { 156 syncable_service_created_or_destroyed_(false, false) {
158 } 157 }
159 158
160 static scoped_refptr<RefcountedProfileKeyedService> Build(Profile* profile) {
161 return new WebDataServiceFake;
162 }
163
164 void SetDatabase(WebDatabase* web_database) { 159 void SetDatabase(WebDatabase* web_database) {
165 web_database_ = web_database; 160 web_database_ = web_database;
166 } 161 }
167 162
168 void StartSyncableService() { 163 void StartSyncableService() {
169 // The |autofill_profile_syncable_service_| must be constructed on the DB 164 // The |autofill_profile_syncable_service_| must be constructed on the DB
170 // thread. 165 // thread.
171 BrowserThread::PostTask(BrowserThread::DB, FROM_HERE, 166 BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
172 base::Bind(&WebDataServiceFake::CreateSyncableService, 167 base::Bind(&WebDataServiceFake::CreateSyncableService,
173 base::Unretained(this))); 168 base::Unretained(this)));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 } 207 }
213 208
214 virtual AutofillProfileSyncableService* 209 virtual AutofillProfileSyncableService*
215 GetAutofillProfileSyncableService() const OVERRIDE { 210 GetAutofillProfileSyncableService() const OVERRIDE {
216 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); 211 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB));
217 EXPECT_TRUE(autofill_profile_syncable_service_); 212 EXPECT_TRUE(autofill_profile_syncable_service_);
218 213
219 return autofill_profile_syncable_service_; 214 return autofill_profile_syncable_service_;
220 } 215 }
221 216
222 virtual void ShutdownOnUIThread() OVERRIDE {}
223
224 private: 217 private:
225 virtual ~WebDataServiceFake() {} 218 virtual ~WebDataServiceFake() {}
226 219
227 void CreateSyncableService() { 220 void CreateSyncableService() {
228 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); 221 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB));
229 // These services are deleted in DestroySyncableService(). 222 // These services are deleted in DestroySyncableService().
230 autocomplete_syncable_service_ = new AutocompleteSyncableService(this); 223 autocomplete_syncable_service_ = new AutocompleteSyncableService(this);
231 autofill_profile_syncable_service_ = 224 autofill_profile_syncable_service_ =
232 new AutofillProfileSyncableService(this); 225 new AutofillProfileSyncableService(this);
233 syncable_service_created_or_destroyed_.Signal(); 226 syncable_service_created_or_destroyed_.Signal();
234 } 227 }
235 228
236 void DestroySyncableService() { 229 void DestroySyncableService() {
237 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); 230 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB));
238 delete autofill_profile_syncable_service_; 231 delete autofill_profile_syncable_service_;
239 delete autocomplete_syncable_service_; 232 delete autocomplete_syncable_service_;
240 syncable_service_created_or_destroyed_.Signal(); 233 syncable_service_created_or_destroyed_.Signal();
241 } 234 }
242 235
243 WebDatabase* web_database_; 236 WebDatabase* web_database_;
244 237
245 // We own the syncable services, but don't use a |scoped_ptr| because the 238 // We own the syncable services, but don't use a |scoped_ptr| because the
246 // lifetime must be managed on the DB thread. 239 // lifetime must be managed on the DB thread.
247 AutocompleteSyncableService* autocomplete_syncable_service_; 240 AutocompleteSyncableService* autocomplete_syncable_service_;
248 AutofillProfileSyncableService* autofill_profile_syncable_service_; 241 AutofillProfileSyncableService* autofill_profile_syncable_service_;
249 WaitableEvent syncable_service_created_or_destroyed_; 242 WaitableEvent syncable_service_created_or_destroyed_;
250 }; 243 };
251 244
245 class MockWebDataServiceWrapper : public WebDataServiceWrapper {
246 public:
247 static ProfileKeyedService* Build(Profile* profile) {
248 return new MockWebDataServiceWrapper();
249 }
250
251 MockWebDataServiceWrapper() {
252 web_data_service_fake_ = new WebDataServiceFake();
253 }
254
255 void Shutdown() OVERRIDE {
256 }
257
258 scoped_refptr<WebDataService> GetWebData() OVERRIDE {
259 return web_data_service_fake_;
260 }
261
262 ~MockWebDataServiceWrapper() {
263 web_data_service_fake_ = NULL;
264 }
265
266 private:
267 scoped_refptr<WebDataServiceFake> web_data_service_fake_;
268
269 };
270
252 ACTION_P(MakeAutocompleteSyncComponents, wds) { 271 ACTION_P(MakeAutocompleteSyncComponents, wds) {
253 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); 272 EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB));
254 if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) 273 if (!BrowserThread::CurrentlyOn(BrowserThread::DB))
255 return base::WeakPtr<syncer::SyncableService>(); 274 return base::WeakPtr<syncer::SyncableService>();
256 return wds->GetAutocompleteSyncableService()->AsWeakPtr(); 275 return wds->GetAutocompleteSyncableService()->AsWeakPtr();
257 } 276 }
258 277
259 ACTION_P(ReturnNewDataTypeManagerWithDebugListener, debug_listener) { 278 ACTION_P(ReturnNewDataTypeManagerWithDebugListener, debug_listener) {
260 return new browser_sync::DataTypeManagerImpl( 279 return new browser_sync::DataTypeManagerImpl(
261 debug_listener, 280 debug_listener,
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 NOTREACHED(); 422 NOTREACHED();
404 return NULL; 423 return NULL;
405 } 424 }
406 } 425 }
407 426
408 virtual void SetUp() OVERRIDE { 427 virtual void SetUp() OVERRIDE {
409 AbstractProfileSyncServiceTest::SetUp(); 428 AbstractProfileSyncServiceTest::SetUp();
410 profile_.reset(new ProfileMock()); 429 profile_.reset(new ProfileMock());
411 profile_->CreateRequestContext(); 430 profile_->CreateRequestContext();
412 web_database_.reset(new WebDatabaseFake(&autofill_table_)); 431 web_database_.reset(new WebDatabaseFake(&autofill_table_));
413 web_data_service_ = static_cast<WebDataServiceFake*>( 432 MockWebDataServiceWrapper* wrapper =
414 WebDataServiceFactory::GetInstance()->SetTestingFactoryAndUse( 433 static_cast<MockWebDataServiceWrapper*>(
415 profile_.get(), WebDataServiceFake::Build).get()); 434 WebDataServiceFactory::GetInstance()->SetTestingFactoryAndUse(
435 profile_.get(), MockWebDataServiceWrapper::Build));
436 web_data_service_ =
437 static_cast<WebDataServiceFake*>(wrapper->GetWebData().get());
416 web_data_service_->SetDatabase(web_database_.get()); 438 web_data_service_->SetDatabase(web_database_.get());
417 439
418 MockPersonalDataManagerService* personal_data_manager_service = 440 MockPersonalDataManagerService* personal_data_manager_service =
419 static_cast<MockPersonalDataManagerService*>( 441 static_cast<MockPersonalDataManagerService*>(
420 PersonalDataManagerFactory::GetInstance()->SetTestingFactoryAndUse( 442 PersonalDataManagerFactory::GetInstance()->SetTestingFactoryAndUse(
421 profile_.get(), MockPersonalDataManagerService::Build)); 443 profile_.get(), MockPersonalDataManagerService::Build));
422 personal_data_manager_ = 444 personal_data_manager_ =
423 personal_data_manager_service->GetPersonalDataManager(); 445 personal_data_manager_service->GetPersonalDataManager();
424 446
425 token_service_ = static_cast<TokenService*>( 447 token_service_ = static_cast<TokenService*>(
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 std::vector<AutofillEntry> sync_entries; 1340 std::vector<AutofillEntry> sync_entries;
1319 std::vector<AutofillProfile> sync_profiles; 1341 std::vector<AutofillProfile> sync_profiles;
1320 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); 1342 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles));
1321 EXPECT_EQ(3U, sync_entries.size()); 1343 EXPECT_EQ(3U, sync_entries.size());
1322 EXPECT_EQ(0U, sync_profiles.size()); 1344 EXPECT_EQ(0U, sync_profiles.size());
1323 for (size_t i = 0; i < sync_entries.size(); i++) { 1345 for (size_t i = 0; i < sync_entries.size(); i++) {
1324 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() 1346 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name()
1325 << ", " << sync_entries[i].key().value(); 1347 << ", " << sync_entries[i].key().value();
1326 } 1348 }
1327 } 1349 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/autofill_data_type_controller_unittest.cc ('k') | chrome/browser/webdata/web_data_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698