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

Unified Diff: chrome/browser/chromeos/login/existing_user_controller_browsertest.cc

Issue 1412813003: This CL replaces user_manager::UserID with AccountId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@468875--Chrome-OS-handles-deletion-of-Gmail-account-poorly--Create-AccountID-structure-part2--user_names
Patch Set: Update after review. Created 5 years, 2 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/chromeos/login/existing_user_controller_browsertest.cc
diff --git a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc
index babb422595dbc9c04b5f1207402e4b7dc809c31f..ed96ef7fa90c74727071f4835646ea34ac0f8d6d 100644
--- a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc
+++ b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc
@@ -76,7 +76,7 @@ const char kUsername[] = "test_user@gmail.com";
const char kSupervisedUserID[] = "supervised_user@locally-managed.localhost";
const char kPassword[] = "test_password";
-const char kPublicSessionAccountId[] = "public_session_user@localhost";
+const char kPublicSessionUserEmail[] = "public_session_user@localhost";
const int kAutoLoginNoDelay = 0;
const int kAutoLoginShortDelay = 1;
const int kAutoLoginLongDelay = 10000;
@@ -105,7 +105,7 @@ void WaitForPermanentlyUntrustedStatusAndRun(const base::Closure& callback) {
class ExistingUserControllerTest : public policy::DevicePolicyCrosBrowserTest {
protected:
- ExistingUserControllerTest() : mock_login_display_(NULL) {}
+ ExistingUserControllerTest() {}
ExistingUserController* existing_user_controller() {
return ExistingUserController::current_controller();
@@ -196,8 +196,9 @@ class ExistingUserControllerTest : public policy::DevicePolicyCrosBrowserTest {
return existing_user_controller()->auto_login_timer_.get();
}
- const std::string& auto_login_username() const {
- return existing_user_controller()->public_session_auto_login_username_;
+ AccountId auto_login_account_id() const {
+ return AccountId::FromUserEmail(
+ existing_user_controller()->public_session_auto_login_username_);
}
int auto_login_delay() const {
@@ -212,27 +213,29 @@ class ExistingUserControllerTest : public policy::DevicePolicyCrosBrowserTest {
// |mock_login_display_| is owned by the ExistingUserController, which calls
// CreateLoginDisplay() on the |mock_login_display_host_| to get it.
- MockLoginDisplay* mock_login_display_;
+ MockLoginDisplay* mock_login_display_ = nullptr;
scoped_ptr<MockLoginDisplayHost> mock_login_display_host_;
// Mock URLFetcher.
MockURLFetcherFactory<SuccessFetcher> factory_;
+ const AccountId account_id_ = AccountId::FromUserEmail(kUsername);
+
private:
DISALLOW_COPY_AND_ASSIGN(ExistingUserControllerTest);
};
IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest, PRE_ExistingUserLogin) {
- RegisterUser(kUsername);
+ RegisterUser(account_id_.GetUserEmail());
}
IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest, ExistingUserLogin) {
EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
.Times(2);
- UserContext user_context(kUsername);
+ UserContext user_context(account_id_);
user_context.SetGaiaID(kGaiaID);
user_context.SetKey(Key(kPassword));
- user_context.SetUserIDHash(kUsername);
+ user_context.SetUserIDHash(account_id_.GetUserEmail());
test::UserSessionManagerTestApi session_manager_test_api(
UserSessionManager::GetInstance());
session_manager_test_api.InjectStubUserContext(user_context);
@@ -280,19 +283,19 @@ void ExistingUserControllerUntrustedTest::SetUpSessionManager() {
IN_PROC_BROWSER_TEST_F(ExistingUserControllerUntrustedTest,
ExistingUserLoginForbidden) {
- UserContext user_context(kUsername);
+ UserContext user_context(account_id_);
user_context.SetGaiaID(kGaiaID);
user_context.SetKey(Key(kPassword));
- user_context.SetUserIDHash(kUsername);
+ user_context.SetUserIDHash(account_id_.GetUserEmail());
existing_user_controller()->Login(user_context, SigninSpecifics());
}
IN_PROC_BROWSER_TEST_F(ExistingUserControllerUntrustedTest,
NewUserLoginForbidden) {
- UserContext user_context(kUsername);
+ UserContext user_context(account_id_);
user_context.SetGaiaID(kGaiaID);
user_context.SetKey(Key(kPassword));
- user_context.SetUserIDHash(kUsername);
+ user_context.SetUserIDHash(account_id_.GetUserEmail());
existing_user_controller()->CompleteLogin(user_context);
}
@@ -305,9 +308,9 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerUntrustedTest,
IN_PROC_BROWSER_TEST_F(ExistingUserControllerUntrustedTest,
SupervisedUserLoginForbidden) {
- UserContext user_context(kSupervisedUserID);
+ UserContext user_context(AccountId::FromUserEmail(kSupervisedUserID));
user_context.SetKey(Key(kPassword));
- user_context.SetUserIDHash(kUsername);
+ user_context.SetUserIDHash(account_id_.GetUserEmail());
existing_user_controller()->Login(user_context, SigninSpecifics());
}
@@ -318,7 +321,8 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerUntrustedTest,
SupervisedUserCreationScreen supervised_user_creation_screen(
&mock_base_screen_delegate, &supervised_user_creation_screen_handler);
- supervised_user_creation_screen.AuthenticateManager(kUsername, kPassword);
+ supervised_user_creation_screen.AuthenticateManager(
+ account_id_.GetUserEmail(), kPassword);
}
MATCHER_P(HasDetails, expected, "") {
@@ -328,23 +332,20 @@ MATCHER_P(HasDetails, expected, "") {
class ExistingUserControllerPublicSessionTest
: public ExistingUserControllerTest {
protected:
- ExistingUserControllerPublicSessionTest()
- : public_session_user_id_(policy::GenerateDeviceLocalAccountUserId(
- kPublicSessionAccountId,
- policy::DeviceLocalAccount::TYPE_PUBLIC_SESSION)) {
- }
+ ExistingUserControllerPublicSessionTest() {}
void SetUpOnMainThread() override {
ExistingUserControllerTest::SetUpOnMainThread();
// Wait for the public session user to be created.
if (!user_manager::UserManager::Get()->IsKnownUser(
- public_session_user_id_)) {
+ public_session_account_id_)) {
content::WindowedNotificationObserver(
chrome::NOTIFICATION_USER_LIST_CHANGED,
base::Bind(&user_manager::UserManager::IsKnownUser,
base::Unretained(user_manager::UserManager::Get()),
- public_session_user_id_)).Wait();
+ public_session_account_id_))
+ .Wait();
}
// Wait for the device local account policy to be installed.
@@ -353,7 +354,7 @@ class ExistingUserControllerPublicSessionTest
->platform_part()
->browser_policy_connector_chromeos()
->GetDeviceLocalAccountPolicyService()
- ->GetBrokerForUser(public_session_user_id_)
+ ->GetBrokerForUser(public_session_account_id_.GetUserEmail())
->core()
->store();
if (!store->has_policy()) {
@@ -376,7 +377,7 @@ class ExistingUserControllerPublicSessionTest
em::ChromeDeviceSettingsProto& proto(device_policy()->payload());
em::DeviceLocalAccountInfoProto* account =
proto.mutable_device_local_accounts()->add_account();
- account->set_account_id(kPublicSessionAccountId);
+ account->set_account_id(public_session_account_id_.GetUserEmail());
account->set_type(
em::DeviceLocalAccountInfoProto::ACCOUNT_TYPE_PUBLIC_SESSION);
RefreshDevicePolicy();
@@ -384,14 +385,14 @@ class ExistingUserControllerPublicSessionTest
// Setup the device local account policy.
policy::UserPolicyBuilder device_local_account_policy;
device_local_account_policy.policy_data().set_username(
- kPublicSessionAccountId);
+ public_session_account_id_.GetUserEmail());
device_local_account_policy.policy_data().set_policy_type(
policy::dm_protocol::kChromePublicAccountPolicyType);
device_local_account_policy.policy_data().set_settings_entity_id(
- kPublicSessionAccountId);
+ public_session_account_id_.GetUserEmail());
device_local_account_policy.Build();
session_manager_client()->set_device_local_account_policy(
- kPublicSessionAccountId,
+ public_session_account_id_.GetUserEmail(),
device_local_account_policy.GetBlob());
}
@@ -431,7 +432,7 @@ class ExistingUserControllerPublicSessionTest
EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)).Times(AnyNumber());
}
- void SetAutoLoginPolicy(const std::string& username, int delay) {
+ void SetAutoLoginPolicy(const AccountId& account_id, int delay) {
// Wait until ExistingUserController has finished auto-login
// configuration by observing the same settings that trigger
// ConfigurePublicSessionAutoLogin.
@@ -444,7 +445,8 @@ class ExistingUserControllerPublicSessionTest
scoped_ptr<CrosSettings::ObserverSubscription> subscription1;
if (!proto.has_device_local_accounts() ||
!proto.device_local_accounts().has_auto_login_id() ||
- proto.device_local_accounts().auto_login_id() != username) {
+ proto.device_local_accounts().auto_login_id() !=
+ account_id.GetUserEmail()) {
runner1 = new content::MessageLoopRunner;
subscription1 = chromeos::CrosSettings::Get()->AddSettingsObserver(
chromeos::kAccountsPrefDeviceLocalAccountAutoLoginId,
@@ -462,7 +464,8 @@ class ExistingUserControllerPublicSessionTest
}
// Update the policy.
- proto.mutable_device_local_accounts()->set_auto_login_id(username);
+ proto.mutable_device_local_accounts()->set_auto_login_id(
+ account_id.GetUserEmail());
proto.mutable_device_local_accounts()->set_auto_login_delay(delay);
RefreshDevicePolicy();
@@ -491,7 +494,10 @@ class ExistingUserControllerPublicSessionTest
run_loop.Run();
}
- const std::string public_session_user_id_;
+ const AccountId public_session_account_id_ =
+ AccountId::FromUserEmail(policy::GenerateDeviceLocalAccountUserId(
+ kPublicSessionUserEmail,
+ policy::DeviceLocalAccount::TYPE_PUBLIC_SESSION));
private:
DISALLOW_COPY_AND_ASSIGN(ExistingUserControllerPublicSessionTest);
@@ -500,20 +506,20 @@ class ExistingUserControllerPublicSessionTest
IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
ConfigureAutoLoginUsingPolicy) {
existing_user_controller()->OnSigninScreenReady();
- EXPECT_EQ("", auto_login_username());
+ EXPECT_TRUE(!auto_login_account_id().is_valid());
EXPECT_EQ(0, auto_login_delay());
EXPECT_FALSE(auto_login_timer());
// Set the policy.
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
- EXPECT_EQ(public_session_user_id_, auto_login_username());
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginLongDelay);
+ EXPECT_EQ(public_session_account_id_, auto_login_account_id());
EXPECT_EQ(kAutoLoginLongDelay, auto_login_delay());
ASSERT_TRUE(auto_login_timer());
EXPECT_TRUE(auto_login_timer()->IsRunning());
// Unset the policy.
- SetAutoLoginPolicy("", 0);
- EXPECT_EQ("", auto_login_username());
+ SetAutoLoginPolicy(EmptyAccountId(), 0);
+ EXPECT_TRUE(!auto_login_account_id().is_valid());
EXPECT_EQ(0, auto_login_delay());
ASSERT_TRUE(auto_login_timer());
EXPECT_FALSE(auto_login_timer()->IsRunning());
@@ -523,13 +529,13 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
AutoLoginNoDelay) {
// Set up mocks to check login success.
UserContext user_context(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
- public_session_user_id_);
- user_context.SetUserIDHash(user_context.GetUserID());
+ public_session_account_id_.GetUserEmail());
+ user_context.SetUserIDHash(user_context.GetAccountId().GetUserEmail());
ExpectSuccessfulLogin(user_context);
existing_user_controller()->OnSigninScreenReady();
// Start auto-login and wait for login tasks to complete.
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginNoDelay);
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginNoDelay);
content::RunAllPendingInMessageLoop();
}
@@ -537,8 +543,8 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
AutoLoginShortDelay) {
// Set up mocks to check login success.
UserContext user_context(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
- public_session_user_id_);
- user_context.SetUserIDHash(user_context.GetUserID());
+ public_session_account_id_.GetUserEmail());
+ user_context.SetUserIDHash(user_context.GetAccountId().GetUserEmail());
ExpectSuccessfulLogin(user_context);
existing_user_controller()->OnSigninScreenReady();
@@ -546,7 +552,7 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
content::NotificationService::AllSources());
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginShortDelay);
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginShortDelay);
ASSERT_TRUE(auto_login_timer());
// Don't assert that timer is running: with the short delay sometimes
// the trigger happens before the assert. We've already tested that
@@ -569,14 +575,14 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
LoginStopsAutoLogin) {
// Set up mocks to check login success.
- UserContext user_context(kUsername);
+ UserContext user_context(account_id_);
user_context.SetGaiaID(kGaiaID);
user_context.SetKey(Key(kPassword));
- user_context.SetUserIDHash(user_context.GetUserID());
+ user_context.SetUserIDHash(user_context.GetAccountId().GetUserEmail());
ExpectSuccessfulLogin(user_context);
existing_user_controller()->OnSigninScreenReady();
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginLongDelay);
EXPECT_TRUE(auto_login_timer());
content::WindowedNotificationObserver profile_prepared_observer(
@@ -603,7 +609,7 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
GuestModeLoginStopsAutoLogin) {
EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
.Times(2);
- UserContext user_context(kUsername);
+ UserContext user_context(account_id_);
user_context.SetGaiaID(kGaiaID);
user_context.SetKey(Key(kPassword));
test::UserSessionManagerTestApi session_manager_test_api(
@@ -611,7 +617,7 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
session_manager_test_api.InjectStubUserContext(user_context);
existing_user_controller()->OnSigninScreenReady();
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginLongDelay);
EXPECT_TRUE(auto_login_timer());
// Login and check that it stopped the timer.
@@ -633,16 +639,16 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
CompleteLoginStopsAutoLogin) {
// Set up mocks to check login success.
- UserContext user_context(kUsername);
+ UserContext user_context(account_id_);
user_context.SetGaiaID(kGaiaID);
user_context.SetKey(Key(kPassword));
- user_context.SetUserIDHash(user_context.GetUserID());
+ user_context.SetUserIDHash(user_context.GetAccountId().GetUserEmail());
ExpectSuccessfulLogin(user_context);
EXPECT_CALL(*mock_login_display_host_, OnCompleteLogin())
.Times(1);
existing_user_controller()->OnSigninScreenReady();
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginLongDelay);
EXPECT_TRUE(auto_login_timer());
content::WindowedNotificationObserver profile_prepared_observer(
@@ -668,11 +674,11 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
PublicSessionLoginStopsAutoLogin) {
// Set up mocks to check login success.
UserContext user_context(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
- public_session_user_id_);
- user_context.SetUserIDHash(user_context.GetUserID());
+ public_session_account_id_.GetUserEmail());
+ user_context.SetUserIDHash(user_context.GetAccountId().GetUserEmail());
ExpectSuccessfulLogin(user_context);
existing_user_controller()->OnSigninScreenReady();
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginLongDelay);
EXPECT_TRUE(auto_login_timer());
content::WindowedNotificationObserver profile_prepared_observer(
@@ -682,7 +688,7 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
// Login and check that it stopped the timer.
existing_user_controller()->Login(
UserContext(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
- public_session_user_id_),
+ public_session_account_id_.GetUserEmail()),
SigninSpecifics());
EXPECT_TRUE(is_login_in_progress());
@@ -706,17 +712,17 @@ IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
// Check that the attempt to start a public session fails with an error.
ExpectLoginFailure();
- UserContext user_context(kUsername);
+ UserContext user_context(account_id_);
user_context.SetGaiaID(kGaiaID);
user_context.SetKey(Key(kPassword));
- user_context.SetUserIDHash(user_context.GetUserID());
+ user_context.SetUserIDHash(user_context.GetAccountId().GetUserEmail());
existing_user_controller()->Login(user_context, SigninSpecifics());
}
IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
NoAutoLoginWhenUntrusted) {
// Start the public session timer.
- SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
+ SetAutoLoginPolicy(public_session_account_id_, kAutoLoginLongDelay);
existing_user_controller()->OnSigninScreenReady();
EXPECT_TRUE(auto_login_timer());

Powered by Google App Engine
This is Rietveld 408576698