Index: chrome/browser/sync/profile_sync_service_autofill_unittest.cc |
diff --git a/chrome/browser/sync/profile_sync_service_autofill_unittest.cc b/chrome/browser/sync/profile_sync_service_autofill_unittest.cc |
index cc0b4f356f8c6c72aeeb0bddee57a88b8b7ef4ad..f82ba9608cb31dd2e43cb3b9747f0845012265f5 100644 |
--- a/chrome/browser/sync/profile_sync_service_autofill_unittest.cc |
+++ b/chrome/browser/sync/profile_sync_service_autofill_unittest.cc |
@@ -42,6 +42,7 @@ |
#include "chrome/browser/webdata/autofill_table.h" |
#include "chrome/browser/webdata/web_data_service.h" |
#include "chrome/browser/webdata/web_data_service_factory.h" |
+#include "chrome/browser/webdata/web_data_service_test_util.h" |
#include "chrome/browser/webdata/web_database.h" |
#include "chrome/common/chrome_notification_types.h" |
#include "components/autofill/browser/autofill_common_test.h" |
@@ -94,7 +95,7 @@ class HistoryService; |
class AutofillTableMock : public AutofillTable { |
public: |
- AutofillTableMock() : AutofillTable(NULL, NULL) {} |
+ AutofillTableMock() : AutofillTable() {} |
MOCK_METHOD2(RemoveFormElement, |
bool(const string16& name, const string16& value)); // NOLINT |
MOCK_METHOD1(GetAllAutofillEntries, |
@@ -119,18 +120,11 @@ MATCHER_P(MatchProfiles, profile, "") { |
return (profile.Compare(arg) == 0); |
} |
- |
class WebDatabaseFake : public WebDatabase { |
public: |
- explicit WebDatabaseFake(AutofillTable* autofill_table) |
- : autofill_table_(autofill_table) {} |
- |
- virtual AutofillTable* GetAutofillTable() OVERRIDE { |
- return autofill_table_; |
+ explicit WebDatabaseFake(AutofillTable* autofill_table) { |
+ AddTable(autofill_table); |
} |
- |
- private: |
- AutofillTable* autofill_table_; |
}; |
class ProfileSyncServiceAutofillTest; |
@@ -157,10 +151,6 @@ class WebDataServiceFake : public WebDataService { |
syncable_service_created_or_destroyed_(false, false) { |
} |
- static scoped_refptr<RefcountedProfileKeyedService> Build(Profile* profile) { |
- return new WebDataServiceFake; |
- } |
- |
void SetDatabase(WebDatabase* web_database) { |
web_database_ = web_database; |
} |
@@ -203,22 +193,6 @@ class WebDataServiceFake : public WebDataService { |
return 0; |
} |
- virtual AutocompleteSyncableService* |
- GetAutocompleteSyncableService() const OVERRIDE { |
- EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
- EXPECT_TRUE(autocomplete_syncable_service_); |
- |
- return autocomplete_syncable_service_; |
- } |
- |
- virtual AutofillProfileSyncableService* |
- GetAutofillProfileSyncableService() const OVERRIDE { |
- EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
- EXPECT_TRUE(autofill_profile_syncable_service_); |
- |
- return autofill_profile_syncable_service_; |
- } |
- |
virtual void ShutdownOnUIThread() OVERRIDE {} |
private: |
@@ -227,33 +201,31 @@ class WebDataServiceFake : public WebDataService { |
void CreateSyncableService() { |
ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
// These services are deleted in DestroySyncableService(). |
- autocomplete_syncable_service_ = new AutocompleteSyncableService(this); |
- autofill_profile_syncable_service_ = |
- new AutofillProfileSyncableService(this); |
+ AutocompleteSyncableService::CreateForWebDataService(this); |
+ AutofillProfileSyncableService::CreateForWebDataService(this); |
syncable_service_created_or_destroyed_.Signal(); |
} |
void DestroySyncableService() { |
ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
- delete autofill_profile_syncable_service_; |
- delete autocomplete_syncable_service_; |
+ WebDataServiceBase::ShutdownOnDBThread(); |
syncable_service_created_or_destroyed_.Signal(); |
} |
WebDatabase* web_database_; |
- // We own the syncable services, but don't use a |scoped_ptr| because the |
- // lifetime must be managed on the DB thread. |
- AutocompleteSyncableService* autocomplete_syncable_service_; |
- AutofillProfileSyncableService* autofill_profile_syncable_service_; |
WaitableEvent syncable_service_created_or_destroyed_; |
}; |
+ProfileKeyedService* BuildMockWebDataServiceWrapper(Profile* profile) { |
+ return new MockWebDataServiceWrapper(new WebDataServiceFake()); |
+} |
+ |
ACTION_P(MakeAutocompleteSyncComponents, wds) { |
EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) |
return base::WeakPtr<syncer::SyncableService>(); |
- return wds->GetAutocompleteSyncableService()->AsWeakPtr(); |
+ return AutocompleteSyncableService::FromWebDataService(wds)->AsWeakPtr(); |
} |
ACTION_P(ReturnNewDataTypeManagerWithDebugListener, debug_listener) { |
@@ -282,7 +254,7 @@ ACTION_P(MakeAutofillProfileSyncComponents, wds) { |
EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
if (!BrowserThread::CurrentlyOn(BrowserThread::DB)) |
return base::WeakPtr<syncer::SyncableService>();; |
- return wds->GetAutofillProfileSyncableService()->AsWeakPtr(); |
+ return AutofillProfileSyncableService::FromWebDataService(wds)->AsWeakPtr(); |
} |
class AbstractAutofillFactory { |
@@ -410,9 +382,12 @@ class ProfileSyncServiceAutofillTest |
profile_.reset(new ProfileMock()); |
profile_->CreateRequestContext(); |
web_database_.reset(new WebDatabaseFake(&autofill_table_)); |
- web_data_service_ = static_cast<WebDataServiceFake*>( |
- WebDataServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
- profile_.get(), WebDataServiceFake::Build).get()); |
+ MockWebDataServiceWrapper* wrapper = |
+ static_cast<MockWebDataServiceWrapper*>( |
+ WebDataServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
+ profile_.get(), BuildMockWebDataServiceWrapper)); |
+ web_data_service_ = |
+ static_cast<WebDataServiceFake*>(wrapper->GetWebData().get()); |
web_data_service_->SetDatabase(web_database_.get()); |
MockPersonalDataManagerService* personal_data_manager_service = |