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

Unified Diff: chrome/browser/signin/signin_manager_unittest.cc

Issue 964563002: Replace SetAuthenticatedUsername with SetAuthenticatedAccountId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@priv
Patch Set: rebased Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/signin/signin_manager_unittest.cc
diff --git a/chrome/browser/signin/signin_manager_unittest.cc b/chrome/browser/signin/signin_manager_unittest.cc
index 44d2f11f5024426d22758ca3bac2c5bcd6520aba..750333eda6facda6a64cdead2ade09a4b8368647 100644
--- a/chrome/browser/signin/signin_manager_unittest.cc
+++ b/chrome/browser/signin/signin_manager_unittest.cc
@@ -29,6 +29,7 @@
#include "chrome/common/url_constants.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/signin/core/browser/account_tracker_service.h"
#include "components/signin/core/browser/profile_oauth2_token_service.h"
#include "components/signin/core/browser/test_signin_client.h"
#include "content/public/browser/child_process_security_policy.h"
@@ -115,7 +116,10 @@ class SigninManagerTest : public testing::Test {
FakeAccountTrackerService::Build);
profile_ = builder.Build();
- signin_client()->SetURLRequestContext(profile_->GetRequestContext());
+ TestSigninClient* client =
+ static_cast<TestSigninClient*>(
+ ChromeSigninClientFactory::GetForProfile(profile()));
+ client->SetURLRequestContext(profile_->GetRequestContext());
}
void TearDown() override {
@@ -144,6 +148,17 @@ class SigninManagerTest : public testing::Test {
ChromeSigninClientFactory::GetInstance()->GetForProfile(profile()));
}
+ // Seed the account tracker with information from logged in user. Normally
+ // this is done by UI code before calling SigninManager. Returns the string
+ // to use as the account_id.
+ std::string AddToAccountTracker(const std::string& gaia_id,
+ const std::string& email) {
+ AccountTrackerService* service =
+ AccountTrackerServiceFactory::GetForProfile(profile());
+ service->SeedAccountInfo(gaia_id, email);
+ return service->PickAccountIdForAccount(gaia_id, email);
+ }
+
// Sets up the signin manager as a service if other code will try to get it as
// a PKS.
void SetUpSigninManagerAsService() {
@@ -179,11 +194,13 @@ class SigninManagerTest : public testing::Test {
void ExpectSignInWithRefreshTokenSuccess() {
EXPECT_TRUE(manager_->IsAuthenticated());
+ EXPECT_FALSE(manager_->GetAuthenticatedAccountId().empty());
+ EXPECT_FALSE(manager_->GetAuthenticatedUsername().empty());
ProfileOAuth2TokenService* token_service =
ProfileOAuth2TokenServiceFactory::GetForProfile(profile());
EXPECT_TRUE(token_service->RefreshTokenIsAvailable(
- manager_->GetAuthenticatedUsername()));
+ manager_->GetAuthenticatedAccountId()));
// Should go into token service and stop.
EXPECT_EQ(1, test_observer_.num_successful_signins_);
@@ -210,8 +227,10 @@ TEST_F(SigninManagerTest, SignInWithRefreshToken) {
SetUpSigninManagerAsService();
EXPECT_FALSE(manager_->IsAuthenticated());
+ std::string account_id = AddToAccountTracker("gaia_id", "user@gmail.com");
manager_->StartSignInWithRefreshToken(
- "rt1",
+ "rt",
+ "gaia_id",
"user@gmail.com",
"password",
SigninManager::OAuthTokenFetchedCallback());
@@ -222,7 +241,7 @@ TEST_F(SigninManagerTest, SignInWithRefreshToken) {
ShutDownManager();
CreateNakedSigninManager();
manager_->Initialize(NULL);
- EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ(account_id, manager_->GetAuthenticatedAccountId());
}
TEST_F(SigninManagerTest, SignInWithRefreshTokenCallbackComplete) {
@@ -234,14 +253,15 @@ TEST_F(SigninManagerTest, SignInWithRefreshTokenCallbackComplete) {
base::Bind(&SigninManagerTest::CompleteSigninCallback,
base::Unretained(this));
manager_->StartSignInWithRefreshToken(
- "rt1",
+ "rt",
+ "gaia_id",
"user@gmail.com",
"password",
callback);
ExpectSignInWithRefreshTokenSuccess();
ASSERT_EQ(1U, oauth_tokens_fetched_.size());
- EXPECT_EQ(oauth_tokens_fetched_[0], "rt1");
+ EXPECT_EQ(oauth_tokens_fetched_[0], "rt");
}
TEST_F(SigninManagerTest, SignInWithRefreshTokenCallsPostSignout) {
@@ -263,6 +283,7 @@ TEST_F(SigninManagerTest, SignInWithRefreshTokenCallsPostSignout) {
manager_->StartSignInWithRefreshToken(
"rt1",
+ gaia_id,
email,
"password",
SigninManager::OAuthTokenFetchedCallback());
@@ -283,24 +304,31 @@ TEST_F(SigninManagerTest, SignInWithRefreshTokenCallsPostSignout) {
TEST_F(SigninManagerTest, SignOut) {
SetUpSigninManagerAsService();
manager_->StartSignInWithRefreshToken(
- "rt1",
+ "rt",
+ "gaia_id",
"user@gmail.com",
"password",
SigninManager::OAuthTokenFetchedCallback());
manager_->SignOut(signin_metrics::SIGNOUT_TEST);
EXPECT_FALSE(manager_->IsAuthenticated());
+ EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
+ EXPECT_TRUE(manager_->GetAuthenticatedAccountId().empty());
// Should not be persisted anymore
ShutDownManager();
CreateNakedSigninManager();
manager_->Initialize(NULL);
EXPECT_FALSE(manager_->IsAuthenticated());
+ EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
+ EXPECT_TRUE(manager_->GetAuthenticatedAccountId().empty());
}
TEST_F(SigninManagerTest, SignOutWhileProhibited) {
SetUpSigninManagerAsService();
EXPECT_FALSE(manager_->IsAuthenticated());
+ EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
+ EXPECT_TRUE(manager_->GetAuthenticatedAccountId().empty());
- manager_->SetAuthenticatedUsername("user@gmail.com");
+ manager_->SetAuthenticatedAccountInfo("gaia_id", "user@gmail.com");
manager_->ProhibitSignout(true);
manager_->SignOut(signin_metrics::SIGNOUT_TEST);
EXPECT_TRUE(manager_->IsAuthenticated());
@@ -336,47 +364,80 @@ TEST_F(SigninManagerTest, TestAlternateWildcard) {
}
TEST_F(SigninManagerTest, ProhibitedAtStartup) {
- profile()->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
- "monkey@invalid.com");
+ std::string account_id = AddToAccountTracker("gaia_id", "user@gmail.com");
+ profile()->GetPrefs()->SetString(prefs::kGoogleServicesAccountId, account_id);
g_browser_process->local_state()->SetString(
prefs::kGoogleServicesUsernamePattern, ".*@google.com");
CreateNakedSigninManager();
manager_->Initialize(g_browser_process->local_state());
// Currently signed in user is prohibited by policy, so should be signed out.
EXPECT_EQ("", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ("", manager_->GetAuthenticatedAccountId());
}
TEST_F(SigninManagerTest, ProhibitedAfterStartup) {
- std::string user("monkey@invalid.com");
- profile()->GetPrefs()->SetString(prefs::kGoogleServicesUsername, user);
+ std::string account_id = AddToAccountTracker("gaia_id", "user@gmail.com");
+ profile()->GetPrefs()->SetString(prefs::kGoogleServicesAccountId, account_id);
CreateNakedSigninManager();
manager_->Initialize(g_browser_process->local_state());
- EXPECT_EQ(user, manager_->GetAuthenticatedUsername());
+ EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ(account_id, manager_->GetAuthenticatedAccountId());
// Update the profile - user should be signed out.
g_browser_process->local_state()->SetString(
prefs::kGoogleServicesUsernamePattern, ".*@google.com");
EXPECT_EQ("", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ("", manager_->GetAuthenticatedAccountId());
}
TEST_F(SigninManagerTest, ExternalSignIn) {
CreateNakedSigninManager();
manager_->Initialize(g_browser_process->local_state());
- EXPECT_EQ("",
- profile()->GetPrefs()->GetString(prefs::kGoogleServicesUsername));
EXPECT_EQ("", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ("", manager_->GetAuthenticatedAccountId());
EXPECT_EQ(0, test_observer_.num_successful_signins_);
- manager_->OnExternalSigninCompleted("external@example.com");
+ std::string account_id = AddToAccountTracker("gaia_id", "user@gmail.com");
+ manager_->OnExternalSigninCompleted(account_id);
EXPECT_EQ(1, test_observer_.num_successful_signins_);
EXPECT_EQ(0, test_observer_.num_failed_signins_);
- EXPECT_EQ("external@example.com",
- profile()->GetPrefs()->GetString(prefs::kGoogleServicesUsername));
- EXPECT_EQ("external@example.com", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ(account_id, manager_->GetAuthenticatedAccountId());
}
TEST_F(SigninManagerTest, SigninNotAllowed) {
std::string user("user@google.com");
- profile()->GetPrefs()->SetString(prefs::kGoogleServicesUsername, user);
+ profile()->GetPrefs()->SetString(prefs::kGoogleServicesAccountId, user);
profile()->GetPrefs()->SetBoolean(prefs::kSigninAllowed, false);
- SetUpSigninManagerAsService();
+ CreateNakedSigninManager();
+ AddToAccountTracker("gaia_id", user);
+ manager_->Initialize(g_browser_process->local_state());
+ // Currently signing in is prohibited by policy, so should be signed out.
+ EXPECT_EQ("", manager_->GetAuthenticatedUsername());
+ EXPECT_EQ("", manager_->GetAuthenticatedAccountId());
+}
+
+TEST_F(SigninManagerTest, UpgradeToNewPrefs) {
+ profile()->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
+ "user@gmail.com");
+ profile()->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId,
+ "account_id");
+ CreateNakedSigninManager();
+ manager_->Initialize(g_browser_process->local_state());
+ EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
+
+ // TODO(rogerta): until the migration to gaia id, the account id will remain
+ // the old username.
+ EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedAccountId());
+ EXPECT_EQ("user@gmail.com",
+ profile()->GetPrefs()->GetString(prefs::kGoogleServicesAccountId));
+ EXPECT_EQ("",
+ profile()->GetPrefs()->GetString(prefs::kGoogleServicesUsername));
+
+ // Make sure account tracker was updated.
+ AccountTrackerService* service =
+ AccountTrackerServiceFactory::GetForProfile(profile());
+ AccountTrackerService::AccountInfo info = service->GetAccountInfo(
+ manager_->GetAuthenticatedAccountId());
+ EXPECT_EQ("user@gmail.com", info.email);
+ EXPECT_EQ("account_id", info.gaia);
}

Powered by Google App Engine
This is Rietveld 408576698