Index: chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc |
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc |
index ec1fff78a5c569bdbb1e85723b3e4be866e62eac..4790521e7f26b5f4c681c3a46652679db96d6b86 100644 |
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc |
+++ b/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc |
@@ -229,4 +229,63 @@ TEST_F(SessionStateDelegateChromeOSTest, |
base::RunLoop().RunUntilIdle(); |
} |
+// Make sure adding users to multiprofiles disabled by reaching maximum |
+// number of users in sessions. |
+TEST_F(SessionStateDelegateChromeOSTest, |
+ AddUserToMultiprofileDisallowedByMaximumUsers) { |
+ InitForMultiProfile(); |
+ ash::SessionStateDelegate::AddUserError add_user_error; |
+ |
+ EXPECT_TRUE( |
+ session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); |
+ const std::string user_email(kUser); |
+ user_manager()->LoginUser(user_email); |
+ while (session_state_delegate()->NumberOfLoggedInUsers() < |
+ session_state_delegate()->GetMaximumNumberOfLoggedInUsers()) { |
+ UserAddedToSession("bb@b.b"); |
+ } |
+ EXPECT_FALSE( |
+ session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); |
+ EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_MAXIMUM_USERS_REACHED, |
+ add_user_error); |
+} |
+ |
+// Make sure adding users to multiprofiles disabled by logging in all possible |
+// users. |
+TEST_F(SessionStateDelegateChromeOSTest, |
+ AddUserToMultiprofileDisallowedByAllUsersLogged) { |
+ InitForMultiProfile(); |
+ ash::SessionStateDelegate::AddUserError add_user_error; |
+ |
+ EXPECT_TRUE( |
+ session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); |
+ const std::string user_email(kUser); |
+ user_manager()->LoginUser(user_email); |
+ UserAddedToSession("bb@b.b"); |
+ EXPECT_FALSE( |
+ session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); |
+ EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_OUT_OF_USERS, |
+ add_user_error); |
+} |
+ |
+// Make sure adding users to multiprofiles disabled by primary user policy. |
+TEST_F(SessionStateDelegateChromeOSTest, |
+ AddUserToMultiprofileDisallowedByPrimaryUserPolicy) { |
+ InitForMultiProfile(); |
+ ash::SessionStateDelegate::AddUserError add_user_error; |
+ |
+ EXPECT_TRUE( |
+ session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); |
+ const std::string user_email(kUser); |
+ user_manager()->LoginUser(user_email); |
+ user_profile_->GetPrefs()->SetString( |
+ prefs::kMultiProfileUserBehavior, |
+ chromeos::MultiProfileUserController::kBehaviorNotAllowed); |
+ user_manager()->AddUser("bb@b.b"); |
+ EXPECT_FALSE( |
+ session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); |
+ EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_NOT_ALLOWED_PRIMARY_USER, |
+ add_user_error); |
+} |
+ |
} // namespace chromeos |