| 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 d196ce408a8143175648886aed4374d5c6c163e4..b7f3725b5245f365271868ff70726679273f76d0 100644
|
| --- a/chrome/browser/sync/profile_sync_service_autofill_unittest.cc
|
| +++ b/chrome/browser/sync/profile_sync_service_autofill_unittest.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +#include "base/bind.h"
|
| #include "base/callback.h"
|
| #include "base/location.h"
|
| #include "base/memory/ref_counted.h"
|
| @@ -60,7 +61,6 @@ using browser_sync::AutofillChangeProcessor;
|
| using browser_sync::AutofillDataTypeController;
|
| using browser_sync::AutofillModelAssociator;
|
| using browser_sync::AutofillProfileDataTypeController;
|
| -using browser_sync::AutofillProfileSyncableService;
|
| using browser_sync::DataTypeController;
|
| using browser_sync::GenericChangeProcessor;
|
| using browser_sync::SyncableServiceAdapter;
|
| @@ -184,7 +184,7 @@ ACTION_P3(MakeAutofillProfileSyncComponents, service, wd, dtc) {
|
| if (!BrowserThread::CurrentlyOn(BrowserThread::DB))
|
| return ProfileSyncFactory::SyncComponents(NULL, NULL);
|
| AutofillProfileSyncableService* sync_service =
|
| - new AutofillProfileSyncableService(wd, service->profile());
|
| + wd->GetAutofillTable()->GetSyncableService(wd, service->profile());
|
| sync_api::UserShare* user_share = service->GetUserShare();
|
| GenericChangeProcessor* change_processor =
|
| new GenericChangeProcessor(sync_service, dtc, user_share);
|
| @@ -215,14 +215,13 @@ class AutofillEntryFactory : public AbstractAutofillFactory {
|
| ProfileSyncFactory* factory,
|
| ProfileMock* profile,
|
| ProfileSyncService* service) {
|
| - return new AutofillDataTypeController(factory,
|
| - profile);
|
| + return new AutofillDataTypeController(factory, profile);
|
| }
|
|
|
| void SetExpectation(ProfileSyncFactoryMock* factory,
|
| - ProfileSyncService* service,
|
| - WebDatabase* wd,
|
| - DataTypeController* dtc) {
|
| + ProfileSyncService* service,
|
| + WebDatabase* wd,
|
| + DataTypeController* dtc) {
|
| EXPECT_CALL(*factory, CreateAutofillSyncComponents(_,_,_)).
|
| WillOnce(MakeAutofillSyncComponents(service, wd, dtc));
|
| }
|
| @@ -234,14 +233,13 @@ class AutofillProfileFactory : public AbstractAutofillFactory {
|
| ProfileSyncFactory* factory,
|
| ProfileMock* profile,
|
| ProfileSyncService* service) {
|
| - return new AutofillProfileDataTypeController(factory,
|
| - profile);
|
| + return new AutofillProfileDataTypeController(factory, profile);
|
| }
|
|
|
| void SetExpectation(ProfileSyncFactoryMock* factory,
|
| - ProfileSyncService* service,
|
| - WebDatabase* wd,
|
| - DataTypeController* dtc) {
|
| + ProfileSyncService* service,
|
| + WebDatabase* wd,
|
| + DataTypeController* dtc) {
|
| EXPECT_CALL(*factory, CreateAutofillProfileSyncComponents(_,_,_)).
|
| WillOnce(MakeAutofillProfileSyncComponents(service, wd, dtc));
|
| }
|
| @@ -262,7 +260,9 @@ template <class T> class AddAutofillTask;
|
|
|
| class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| protected:
|
| - ProfileSyncServiceAutofillTest() {}
|
| + ProfileSyncServiceAutofillTest()
|
| + : autofill_table_created_or_destroyed_(false, false) {
|
| + }
|
|
|
| AutofillProfileFactory profile_factory_;
|
| AutofillEntryFactory entry_factory_;
|
| @@ -281,7 +281,14 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| virtual void SetUp() {
|
| AbstractProfileSyncServiceTest::SetUp();
|
| profile_.CreateRequestContext();
|
| - web_database_.reset(new WebDatabaseFake(&autofill_table_));
|
| +
|
| + // The |autofill_table_| must be constructed on the DB thread.
|
| + BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
|
| + base::Bind(&ProfileSyncServiceAutofillTest::CreateAutofillTable,
|
| + base::Unretained(this)));
|
| + ASSERT_TRUE(autofill_table_created_or_destroyed_.Wait());
|
| +
|
| + web_database_.reset(new WebDatabaseFake(autofill_table_.get()));
|
| web_data_service_ = new WebDataServiceFake(web_database_.get());
|
| personal_data_manager_ = static_cast<PersonalDataManagerMock*>(
|
| PersonalDataManagerFactory::GetInstance()->SetTestingFactoryAndUse(
|
| @@ -303,10 +310,29 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| virtual void TearDown() {
|
| service_.reset();
|
| notification_service_->TearDown();
|
| +
|
| + // The |autofill_table_| must be destroyed on the DB thread.
|
| + BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
|
| + base::Bind(&ProfileSyncServiceAutofillTest::DestroyAutofillTable,
|
| + base::Unretained(this)));
|
| + ASSERT_TRUE(autofill_table_created_or_destroyed_.Wait());
|
| +
|
| profile_.ResetRequestContext();
|
| AbstractProfileSyncServiceTest::TearDown();
|
| }
|
|
|
| + void CreateAutofillTable() {
|
| + ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB));
|
| + autofill_table_.reset(new AutofillTableMock);
|
| + autofill_table_created_or_destroyed_.Signal();
|
| + }
|
| +
|
| + void DestroyAutofillTable() {
|
| + ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::DB));
|
| + autofill_table_.reset();
|
| + autofill_table_created_or_destroyed_.Signal();
|
| + }
|
| +
|
| void StartSyncService(Task* task,
|
| bool will_fail_association,
|
| syncable::ModelType type) {
|
| @@ -335,8 +361,7 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| WillRepeatedly(Return(true));
|
|
|
| // We need tokens to get the tests going
|
| - token_service_->IssueAuthTokenForTest(
|
| - GaiaConstants::kSyncService, "token");
|
| + token_service_->IssueAuthTokenForTest(GaiaConstants::kSyncService, "token");
|
|
|
| EXPECT_CALL(profile_, GetTokenService()).
|
| WillRepeatedly(Return(token_service_.get()));
|
| @@ -365,7 +390,7 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| bool AddAutofillSyncNode(const AutofillProfile& profile) {
|
| sync_api::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
|
| sync_api::ReadNode autofill_root(&trans);
|
| - if (!autofill_root.InitByTagLookup(browser_sync::kAutofillProfileTag))
|
| + if (!autofill_root.InitByTagLookup(kAutofillProfileTag))
|
| return false;
|
| sync_api::WriteNode node(&trans);
|
| std::string tag = profile.guid();
|
| @@ -421,7 +446,7 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| std::vector<AutofillProfile>* profiles) {
|
| sync_api::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
|
| sync_api::ReadNode autofill_root(&trans);
|
| - if (!autofill_root.InitByTagLookup(browser_sync::kAutofillProfileTag))
|
| + if (!autofill_root.InitByTagLookup(kAutofillProfileTag))
|
| return false;
|
|
|
| int64 child_id = autofill_root.GetFirstChildId();
|
| @@ -443,9 +468,9 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| }
|
|
|
| void SetIdleChangeProcessorExpectations() {
|
| - EXPECT_CALL(autofill_table_, RemoveFormElement(_, _)).Times(0);
|
| - EXPECT_CALL(autofill_table_, GetAutofillTimestamps(_, _, _)).Times(0);
|
| - EXPECT_CALL(autofill_table_, UpdateAutofillEntries(_)).Times(0);
|
| + EXPECT_CALL(*autofill_table_, RemoveFormElement(_, _)).Times(0);
|
| + EXPECT_CALL(*autofill_table_, GetAutofillTimestamps(_, _, _)).Times(0);
|
| + EXPECT_CALL(*autofill_table_, UpdateAutofillEntries(_)).Times(0);
|
| }
|
|
|
| static AutofillEntry MakeAutofillEntry(const char* name,
|
| @@ -474,7 +499,8 @@ class ProfileSyncServiceAutofillTest : public AbstractProfileSyncServiceTest {
|
| scoped_refptr<ThreadNotificationService> notification_service_;
|
|
|
| ProfileMock profile_;
|
| - AutofillTableMock autofill_table_;
|
| + scoped_ptr<AutofillTableMock> autofill_table_;
|
| + WaitableEvent autofill_table_created_or_destroyed_;
|
| scoped_ptr<WebDatabaseFake> web_database_;
|
| scoped_refptr<WebDataService> web_data_service_;
|
| PersonalDataManagerMock* personal_data_manager_;
|
| @@ -484,7 +510,7 @@ template <class T>
|
| class AddAutofillTask : public Task {
|
| public:
|
| AddAutofillTask(ProfileSyncServiceAutofillTest* test,
|
| - const std::vector<T>& entries)
|
| + const std::vector<T>& entries)
|
| : test_(test), entries_(entries), success_(false) {
|
| }
|
|
|
| @@ -640,8 +666,9 @@ TEST_F(ProfileSyncServiceAutofillTest, FailModelAssociation) {
|
| }
|
|
|
| TEST_F(ProfileSyncServiceAutofillTest, EmptyNativeEmptySync) {
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_,
|
| + GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| SetIdleChangeProcessorExpectations();
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| @@ -657,9 +684,9 @@ TEST_F(ProfileSyncServiceAutofillTest, EmptyNativeEmptySync) {
|
| TEST_F(ProfileSyncServiceAutofillTest, HasNativeEntriesEmptySync) {
|
| std::vector<AutofillEntry> entries;
|
| entries.push_back(MakeAutofillEntry("foo", "bar", 1));
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAllAutofillEntries(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true)));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| SetIdleChangeProcessorExpectations();
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| @@ -685,7 +712,7 @@ TEST_F(ProfileSyncServiceAutofillTest, HasProfileEmptySync) {
|
| "91601", "US", "12345678910");
|
| profiles.push_back(profile0);
|
| expected_profiles.push_back(*profile0);
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(profiles), Return(true)));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| SetIdleChangeProcessorExpectations();
|
| @@ -705,9 +732,9 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeWithDuplicatesEmptySync) {
|
| entries.push_back(MakeAutofillEntry("foo", "bar", 1));
|
| entries.push_back(MakeAutofillEntry("dup", "", 2));
|
| entries.push_back(MakeAutofillEntry("dup", "", 3));
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAllAutofillEntries(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true)));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| SetIdleChangeProcessorExpectations();
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| @@ -726,17 +753,17 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeHasSyncNoMerge) {
|
| std::vector<AutofillEntry> native_entries;
|
| native_entries.push_back(native_entry);
|
|
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAllAutofillEntries(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
|
|
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
|
|
| std::vector<AutofillEntry> sync_entries;
|
| sync_entries.push_back(sync_entry);
|
|
|
| AddAutofillTask<AutofillEntry> task(this, sync_entries);
|
|
|
| - EXPECT_CALL(autofill_table_, UpdateAutofillEntries(ElementsAre(sync_entry))).
|
| + EXPECT_CALL(*autofill_table_, UpdateAutofillEntries(ElementsAre(sync_entry))).
|
| WillOnce(Return(true));
|
|
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| @@ -764,15 +791,15 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeHasSyncMergeEntry) {
|
|
|
| std::vector<AutofillEntry> native_entries;
|
| native_entries.push_back(native_entry);
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAllAutofillEntries(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true)));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
|
|
| std::vector<AutofillEntry> sync_entries;
|
| sync_entries.push_back(sync_entry);
|
| AddAutofillTask<AutofillEntry> task(this, sync_entries);
|
|
|
| - EXPECT_CALL(autofill_table_,
|
| + EXPECT_CALL(*autofill_table_,
|
| UpdateAutofillEntries(ElementsAre(merged_entry))).WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| StartSyncService(&task, false, syncable::AUTOFILL);
|
| @@ -802,14 +829,14 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeHasSyncMergeProfile) {
|
|
|
| std::vector<AutofillProfile*> native_profiles;
|
| native_profiles.push_back(native_profile);
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(native_profiles), Return(true)));
|
|
|
| std::vector<AutofillProfile> sync_profiles;
|
| sync_profiles.push_back(sync_profile);
|
| AddAutofillTask<AutofillProfile> task(this, sync_profiles);
|
|
|
| - EXPECT_CALL(autofill_table_, UpdateAutofillProfile(_)).
|
| + EXPECT_CALL(*autofill_table_, UpdateAutofillProfile(_)).
|
| WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| StartSyncService(&task, false, syncable::AUTOFILL_PROFILE);
|
| @@ -841,16 +868,16 @@ TEST_F(ProfileSyncServiceAutofillTest, MergeProfileWithDifferentGuid) {
|
|
|
| std::vector<AutofillProfile*> native_profiles;
|
| native_profiles.push_back(native_profile);
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(native_profiles), Return(true)));
|
|
|
| std::vector<AutofillProfile> sync_profiles;
|
| sync_profiles.push_back(sync_profile);
|
| AddAutofillTask<AutofillProfile> task(this, sync_profiles);
|
|
|
| - EXPECT_CALL(autofill_table_, AddAutofillProfile(_)).
|
| + EXPECT_CALL(*autofill_table_, AddAutofillProfile(_)).
|
| WillOnce(Return(true));
|
| - EXPECT_CALL(autofill_table_, RemoveAutofillProfile(native_guid)).
|
| + EXPECT_CALL(*autofill_table_, RemoveAutofillProfile(native_guid)).
|
| WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| StartSyncService(&task, false, syncable::AUTOFILL_PROFILE);
|
| @@ -865,8 +892,9 @@ TEST_F(ProfileSyncServiceAutofillTest, MergeProfileWithDifferentGuid) {
|
| }
|
|
|
| TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeAddEntry) {
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_,
|
| + GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| SetIdleChangeProcessorExpectations();
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
| @@ -876,7 +904,7 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeAddEntry) {
|
| AutofillEntry added_entry(MakeAutofillEntry("added", "entry", 1));
|
| std::vector<base::Time> timestamps(added_entry.timestamps());
|
|
|
| - EXPECT_CALL(autofill_table_, GetAutofillTimestamps(_, _, _)).
|
| + EXPECT_CALL(*autofill_table_, GetAutofillTimestamps(_, _, _)).
|
| WillOnce(DoAll(SetArgumentPointee<2>(timestamps), Return(true)));
|
|
|
| AutofillChangeList changes;
|
| @@ -895,7 +923,7 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeAddEntry) {
|
| }
|
|
|
| TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeAddProfile) {
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| SetIdleChangeProcessorExpectations();
|
| CreateRootTask task(this, syncable::AUTOFILL_PROFILE);
|
| @@ -927,9 +955,9 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeUpdateEntry) {
|
| std::vector<AutofillEntry> original_entries;
|
| original_entries.push_back(original_entry);
|
|
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAllAutofillEntries(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
| StartSyncService(&task, false, syncable::AUTOFILL);
|
| @@ -938,7 +966,7 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeUpdateEntry) {
|
| AutofillEntry updated_entry(MakeAutofillEntry("my", "entry", 1, 2));
|
| std::vector<base::Time> timestamps(updated_entry.timestamps());
|
|
|
| - EXPECT_CALL(autofill_table_, GetAutofillTimestamps(_, _, _)).
|
| + EXPECT_CALL(*autofill_table_, GetAutofillTimestamps(_, _, _)).
|
| WillOnce(DoAll(SetArgumentPointee<2>(timestamps), Return(true)));
|
|
|
| AutofillChangeList changes;
|
| @@ -963,9 +991,9 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeRemoveEntry) {
|
| std::vector<AutofillEntry> original_entries;
|
| original_entries.push_back(original_entry);
|
|
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAllAutofillEntries(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true)));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
| StartSyncService(&task, false, syncable::AUTOFILL);
|
| @@ -1000,7 +1028,7 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeRemoveProfile) {
|
|
|
| std::vector<AutofillProfile*> native_profiles;
|
| native_profiles.push_back(native_profile);
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).
|
| WillOnce(DoAll(SetArgumentPointee<0>(native_profiles), Return(true)));
|
|
|
| std::vector<AutofillProfile> sync_profiles;
|
| @@ -1024,8 +1052,9 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeRemoveProfile) {
|
| }
|
|
|
| TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeError) {
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_,
|
| + GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh());
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
| StartSyncService(&task, false, syncable::AUTOFILL);
|
| @@ -1059,9 +1088,10 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeError) {
|
|
|
| // Crashy, http://crbug.com/57884
|
| TEST_F(ProfileSyncServiceAutofillTest, DISABLED_ServerChangeRace) {
|
| - EXPECT_CALL(autofill_table_, GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| - EXPECT_CALL(autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| - EXPECT_CALL(autofill_table_, UpdateAutofillEntries(_)).
|
| + EXPECT_CALL(*autofill_table_,
|
| + GetAllAutofillEntries(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, GetAutofillProfiles(_)).WillOnce(Return(true));
|
| + EXPECT_CALL(*autofill_table_, UpdateAutofillEntries(_)).
|
| WillRepeatedly(Return(true));
|
| EXPECT_CALL(*personal_data_manager_, Refresh()).Times(3);
|
| CreateRootTask task(this, syncable::AUTOFILL);
|
|
|