| Index: chrome/browser/signin/account_reconcilor_unittest.cc
|
| diff --git a/chrome/browser/signin/account_reconcilor_unittest.cc b/chrome/browser/signin/account_reconcilor_unittest.cc
|
| index d5f2dc7a848416fc1721f723af89403dabb6a20b..26bdac96f60c15fe2d5926664cb46da48ace2bd0 100644
|
| --- a/chrome/browser/signin/account_reconcilor_unittest.cc
|
| +++ b/chrome/browser/signin/account_reconcilor_unittest.cc
|
| @@ -2,9 +2,12 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/command_line.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/run_loop.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| #include "base/time/time.h"
|
| +#include "chrome/browser/prefs/pref_service_syncable.h"
|
| #include "chrome/browser/signin/account_reconcilor_factory.h"
|
| #include "chrome/browser/signin/chrome_signin_client_factory.h"
|
| #include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
|
| @@ -12,10 +15,15 @@
|
| #include "chrome/browser/signin/fake_signin_manager.h"
|
| #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| +#include "chrome/browser/signin/test_signin_client_builder.h"
|
| +#include "chrome/test/base/testing_browser_process.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| +#include "chrome/test/base/testing_profile_manager.h"
|
| #include "components/signin/core/browser/account_reconcilor.h"
|
| #include "components/signin/core/browser/profile_oauth2_token_service.h"
|
| #include "components/signin/core/browser/signin_manager.h"
|
| +//#include "components/signin/core/browser/test_signin_client.h"
|
| +#include "components/signin/core/common/signin_switches.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| #include "google_apis/gaia/gaia_urls.h"
|
| #include "net/url_request/test_url_fetcher_factory.h"
|
| @@ -36,9 +44,9 @@ class MockAccountReconcilor : public testing::StrictMock<AccountReconcilor> {
|
| virtual ~MockAccountReconcilor() {}
|
|
|
| MOCK_METHOD1(PerformMergeAction, void(const std::string& account_id));
|
| - MOCK_METHOD1(StartRemoveAction, void(const std::string& account_id));
|
| + MOCK_METHOD1(PerformStartRemoveAction, void(const std::string& account_id));
|
| MOCK_METHOD3(
|
| - FinishRemoveAction,
|
| + PerformFinishRemoveAction,
|
| void(const std::string& account_id,
|
| const GoogleServiceAuthError& error,
|
| const std::vector<std::pair<std::string, bool> >& accounts));
|
| @@ -72,9 +80,8 @@ class AccountReconcilorTest : public testing::Test {
|
| public:
|
| AccountReconcilorTest();
|
| virtual void SetUp() OVERRIDE;
|
| - virtual void TearDown() OVERRIDE;
|
|
|
| - TestingProfile* profile() { return profile_.get(); }
|
| + TestingProfile* profile() { return profile_; }
|
| FakeSigninManagerForTesting* signin_manager() { return signin_manager_; }
|
| FakeProfileOAuth2TokenService* token_service() { return token_service_; }
|
|
|
| @@ -99,11 +106,12 @@ class AccountReconcilorTest : public testing::Test {
|
|
|
| private:
|
| content::TestBrowserThreadBundle bundle_;
|
| - scoped_ptr<TestingProfile> profile_;
|
| + TestingProfile* profile_;
|
| FakeSigninManagerForTesting* signin_manager_;
|
| FakeProfileOAuth2TokenService* token_service_;
|
| MockAccountReconcilor* mock_reconcilor_;
|
| net::FakeURLFetcherFactory url_fetcher_factory_;
|
| + scoped_ptr<TestingProfileManager> testing_profile_manager_;
|
| };
|
|
|
| AccountReconcilorTest::AccountReconcilorTest()
|
| @@ -113,14 +121,28 @@ AccountReconcilorTest::AccountReconcilorTest()
|
| url_fetcher_factory_(NULL) {}
|
|
|
| void AccountReconcilorTest::SetUp() {
|
| - TestingProfile::Builder builder;
|
| - builder.AddTestingFactory(ProfileOAuth2TokenServiceFactory::GetInstance(),
|
| - BuildFakeProfileOAuth2TokenService);
|
| - builder.AddTestingFactory(SigninManagerFactory::GetInstance(),
|
| - FakeSigninManagerBase::Build);
|
| - builder.AddTestingFactory(AccountReconcilorFactory::GetInstance(),
|
| - MockAccountReconcilor::Build);
|
| - profile_ = builder.Build();
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kNewProfileManagement);
|
| +
|
| + testing_profile_manager_.reset(
|
| + new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
|
| + ASSERT_TRUE(testing_profile_manager_.get()->SetUp());
|
| +
|
| + TestingProfile::TestingFactories factories;
|
| + factories.push_back(std::make_pair(ChromeSigninClientFactory::GetInstance(),
|
| + signin::BuildTestSigninClient));
|
| + factories.push_back(std::make_pair(
|
| + ProfileOAuth2TokenServiceFactory::GetInstance(),
|
| + BuildFakeProfileOAuth2TokenService));
|
| + factories.push_back(std::make_pair(SigninManagerFactory::GetInstance(),
|
| + FakeSigninManagerBase::Build));
|
| + factories.push_back(std::make_pair(AccountReconcilorFactory::GetInstance(),
|
| + MockAccountReconcilor::Build));
|
| +
|
| + profile_ = testing_profile_manager_.get()->CreateTestingProfile("name",
|
| + scoped_ptr<PrefServiceSyncable>(),
|
| + base::UTF8ToUTF16("name"), 0, std::string(),
|
| + factories);
|
|
|
| signin_manager_ =
|
| static_cast<FakeSigninManagerForTesting*>(
|
| @@ -131,11 +153,6 @@ void AccountReconcilorTest::SetUp() {
|
| ProfileOAuth2TokenServiceFactory::GetForProfile(profile()));
|
| }
|
|
|
| -void AccountReconcilorTest::TearDown() {
|
| - // Destroy the profile before all threads are torn down.
|
| - profile_.reset();
|
| -}
|
| -
|
| MockAccountReconcilor* AccountReconcilorTest::GetMockReconcilor() {
|
| if (!mock_reconcilor_) {
|
| mock_reconcilor_ =
|
| @@ -169,12 +186,17 @@ TEST_F(AccountReconcilorTest, Basic) {
|
|
|
| #if !defined(OS_CHROMEOS)
|
|
|
| +// This method requires the use of the |TestSigninClient| to be created from the
|
| +// |ChromeSigninClientFactory| because it overrides the |GoogleSigninSucceeded|
|
| +// method with an empty implementation. On MacOS, the normal implementation
|
| +// causes the try_bots to time out.
|
| TEST_F(AccountReconcilorTest, SigninManagerRegistration) {
|
| AccountReconcilor* reconcilor =
|
| AccountReconcilorFactory::GetForProfile(profile());
|
| ASSERT_TRUE(reconcilor);
|
| ASSERT_FALSE(reconcilor->IsRegisteredWithTokenService());
|
|
|
| + signin_manager()->set_password("password");
|
| signin_manager()->OnExternalSigninCompleted(kTestEmail);
|
| ASSERT_TRUE(reconcilor->IsRegisteredWithTokenService());
|
|
|
| @@ -184,8 +206,13 @@ TEST_F(AccountReconcilorTest, SigninManagerRegistration) {
|
| ASSERT_FALSE(reconcilor->IsRegisteredWithTokenService());
|
| }
|
|
|
| +// This method requires the use of the |TestSigninClient| to be created from the
|
| +// |ChromeSigninClientFactory| because it overrides the |GoogleSigninSucceeded|
|
| +// method with an empty implementation. On MacOS, the normal implementation
|
| +// causes the try_bots to time out.
|
| TEST_F(AccountReconcilorTest, Reauth) {
|
| signin_manager()->SetAuthenticatedUsername(kTestEmail);
|
| + signin_manager()->set_password("password");
|
|
|
| AccountReconcilor* reconcilor =
|
| AccountReconcilorFactory::GetForProfile(profile());
|
|
|