| Index: components/autofill/core/browser/personal_data_manager_unittest.cc
|
| diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
|
| index ae63c8606dd63aee9187d64634ef771acc7c136f..9082808567acedf6d173738b1af89e5fce6f9ee3 100644
|
| --- a/components/autofill/core/browser/personal_data_manager_unittest.cc
|
| +++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
|
| @@ -25,9 +25,12 @@
|
| #include "components/autofill/core/common/autofill_pref_names.h"
|
| #include "components/autofill/core/common/autofill_switches.h"
|
| #include "components/autofill/core/common/form_data.h"
|
| +#include "components/signin/core/browser/account_tracker_service.h"
|
| +#include "components/signin/core/browser/test_signin_client.h"
|
| #include "components/signin/core/common/signin_pref_names.h"
|
| #include "components/webdata/common/web_data_service_base.h"
|
| #include "components/webdata/common/web_database_service.h"
|
| +#include "google_apis/gaia/fake_oauth2_token_service.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -94,6 +97,14 @@ class PersonalDataManagerTest : public testing::Test {
|
| web_database_ = new WebDatabaseService(path,
|
| base::MessageLoopProxy::current(),
|
| base::MessageLoopProxy::current());
|
| +
|
| + // Setup account tracker.
|
| + signin_client_.reset(new TestSigninClient(prefs_.get()));
|
| + fake_oauth2_token_service_.reset(new FakeOAuth2TokenService());
|
| + account_tracker_.reset(new AccountTrackerService());
|
| + account_tracker_->Initialize(fake_oauth2_token_service_.get(),
|
| + signin_client_.get());
|
| +
|
| // Hacky: hold onto a pointer but pass ownership.
|
| autofill_table_ = new AutofillTable("en-US");
|
| web_database_->AddTable(scoped_ptr<WebDatabaseTable>(autofill_table_));
|
| @@ -109,12 +120,22 @@ class PersonalDataManagerTest : public testing::Test {
|
| ResetPersonalDataManager(USER_MODE_NORMAL);
|
| }
|
|
|
| + void TearDown() override {
|
| + // Order of destruction is important as AutofillManager relies on
|
| + // PersonalDataManager to be around when it gets destroyed.
|
| + account_tracker_->Shutdown();
|
| + fake_oauth2_token_service_.reset();
|
| + account_tracker_.reset();
|
| + signin_client_.reset();
|
| + }
|
| +
|
| void ResetPersonalDataManager(UserMode user_mode) {
|
| bool is_incognito = (user_mode == USER_MODE_INCOGNITO);
|
| personal_data_.reset(new PersonalDataManager("en"));
|
| personal_data_->Init(
|
| scoped_refptr<AutofillWebDataService>(autofill_database_service_),
|
| prefs_.get(),
|
| + account_tracker_.get(),
|
| is_incognito);
|
| personal_data_->AddObserver(&personal_data_observer_);
|
|
|
| @@ -126,7 +147,9 @@ class PersonalDataManagerTest : public testing::Test {
|
|
|
| void EnableWalletCardImport() {
|
| prefs_->SetBoolean(prefs::kAutofillWalletSyncExperimentEnabled, true);
|
| - prefs_->SetString(::prefs::kGoogleServicesUsername, "syncuser@example.com");
|
| + std::string account_id =
|
| + account_tracker_->SeedAccountInfo("12345", "syncuser@example.com");
|
| + prefs_->SetString(::prefs::kGoogleServicesAccountId, account_id);
|
| }
|
|
|
| // The temporary directory should be deleted at the end to ensure that
|
| @@ -134,6 +157,9 @@ class PersonalDataManagerTest : public testing::Test {
|
| base::ScopedTempDir temp_dir_;
|
| base::MessageLoopForUI message_loop_;
|
| scoped_ptr<PrefService> prefs_;
|
| + scoped_ptr<FakeOAuth2TokenService> fake_oauth2_token_service_;
|
| + scoped_ptr<AccountTrackerService> account_tracker_;
|
| + scoped_ptr<TestSigninClient> signin_client_;
|
| scoped_refptr<AutofillWebDataService> autofill_database_service_;
|
| scoped_refptr<WebDatabaseService> web_database_;
|
| AutofillTable* autofill_table_; // weak ref
|
|
|