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

Side by Side Diff: chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.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: Rebased. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/ash/session_state_delegate_chromeos.h" 5 #include "chrome/browser/ui/ash/session_state_delegate_chromeos.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" 12 #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h"
13 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" 13 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
14 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" 14 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
15 #include "chrome/browser/chromeos/policy/policy_cert_service.h" 15 #include "chrome/browser/chromeos/policy/policy_cert_service.h"
16 #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h" 16 #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h"
17 #include "chrome/browser/chromeos/policy/policy_cert_verifier.h" 17 #include "chrome/browser/chromeos/policy/policy_cert_verifier.h"
18 #include "chrome/browser/chromeos/profiles/profile_helper.h" 18 #include "chrome/browser/chromeos/profiles/profile_helper.h"
19 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
20 #include "chrome/test/base/testing_browser_process.h" 20 #include "chrome/test/base/testing_browser_process.h"
21 #include "chrome/test/base/testing_profile_manager.h" 21 #include "chrome/test/base/testing_profile_manager.h"
22 #include "components/signin/core/account_id/account_id.h"
22 #include "components/user_manager/user_manager.h" 23 #include "components/user_manager/user_manager.h"
23 #include "content/public/test/test_browser_thread_bundle.h" 24 #include "content/public/test/test_browser_thread_bundle.h"
24 #include "net/cert/x509_certificate.h" 25 #include "net/cert/x509_certificate.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 27
27 namespace chromeos { 28 namespace chromeos {
28 29
29 namespace { 30 namespace {
30 31
31 const char* kUser = "user@test.com"; 32 const char* kUser = "user@test.com";
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 // We must ensure that the PolicyCertVerifier outlives the 75 // We must ensure that the PolicyCertVerifier outlives the
75 // PolicyCertService so shutdown the profile here. Additionally, we need 76 // PolicyCertService so shutdown the profile here. Additionally, we need
76 // to run the message loop between freeing the PolicyCertService and 77 // to run the message loop between freeing the PolicyCertService and
77 // freeing the PolicyCertVerifier (see 78 // freeing the PolicyCertVerifier (see
78 // PolicyCertService::OnTrustAnchorsChanged() which is called from 79 // PolicyCertService::OnTrustAnchorsChanged() which is called from
79 // PolicyCertService::Shutdown()). 80 // PolicyCertService::Shutdown()).
80 base::RunLoop().RunUntilIdle(); 81 base::RunLoop().RunUntilIdle();
81 } 82 }
82 83
83 // Add and log in a user to the session. 84 // Add and log in a user to the session.
84 void UserAddedToSession(const std::string& user) { 85 void UserAddedToSession(std::string user) {
85 user_manager()->AddUser(user); 86 user_manager()->AddUser(AccountId::FromUserEmail(user));
86 user_manager()->LoginUser(user); 87 user_manager()->LoginUser(AccountId::FromUserEmail(user));
87 } 88 }
88 89
89 // Get the active user. 90 // Get the active user.
90 const std::string& GetActiveUser() { 91 const std::string& GetActiveUser() {
91 return user_manager::UserManager::Get()->GetActiveUser()->email(); 92 return user_manager::UserManager::Get()->GetActiveUser()->email();
92 } 93 }
93 94
94 FakeChromeUserManager* user_manager() { return user_manager_; } 95 FakeChromeUserManager* user_manager() { return user_manager_; }
95 SessionStateDelegateChromeos* session_state_delegate() { 96 SessionStateDelegateChromeos* session_state_delegate() {
96 return session_state_delegate_.get(); 97 return session_state_delegate_.get();
97 } 98 }
98 99
99 void InitForMultiProfile() { 100 void InitForMultiProfile() {
100 profile_manager_.reset( 101 profile_manager_.reset(
101 new TestingProfileManager(TestingBrowserProcess::GetGlobal())); 102 new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
102 ASSERT_TRUE(profile_manager_->SetUp()); 103 ASSERT_TRUE(profile_manager_->SetUp());
103 104
104 const std::string user_email(kUser); 105 const AccountId user_id(AccountId::FromUserEmail(kUser));
105 const user_manager::User* user = user_manager()->AddUser(user_email); 106 const user_manager::User* user = user_manager()->AddUser(user_id);
106 107
107 // Note that user profiles are created after user login in reality. 108 // Note that user profiles are created after user login in reality.
108 user_profile_ = profile_manager_->CreateTestingProfile(user_email); 109 user_profile_ =
109 user_profile_->set_profile_name(user_email); 110 profile_manager_->CreateTestingProfile(user_id.GetUserEmail());
111 user_profile_->set_profile_name(user_id.GetUserEmail());
110 chromeos::ProfileHelper::Get()->SetUserToProfileMappingForTesting( 112 chromeos::ProfileHelper::Get()->SetUserToProfileMappingForTesting(
111 user, user_profile_); 113 user, user_profile_);
112 } 114 }
113 115
114 content::TestBrowserThreadBundle threads_; 116 content::TestBrowserThreadBundle threads_;
115 scoped_ptr<policy::PolicyCertVerifier> cert_verifier_; 117 scoped_ptr<policy::PolicyCertVerifier> cert_verifier_;
116 scoped_ptr<TestingProfileManager> profile_manager_; 118 scoped_ptr<TestingProfileManager> profile_manager_;
117 TestingProfile* user_profile_; 119 TestingProfile* user_profile_;
118 120
119 private: 121 private:
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 EXPECT_EQ("seconduser@test.com", GetActiveUser()); 167 EXPECT_EQ("seconduser@test.com", GetActiveUser());
166 session_state_delegate()->CycleActiveUser(backward); 168 session_state_delegate()->CycleActiveUser(backward);
167 EXPECT_EQ("firstuser@test.com", GetActiveUser()); 169 EXPECT_EQ("firstuser@test.com", GetActiveUser());
168 } 170 }
169 171
170 // Make sure MultiProfile disabled by primary user policy. 172 // Make sure MultiProfile disabled by primary user policy.
171 TEST_F(SessionStateDelegateChromeOSTest, MultiProfileDisallowedByUserPolicy) { 173 TEST_F(SessionStateDelegateChromeOSTest, MultiProfileDisallowedByUserPolicy) {
172 InitForMultiProfile(); 174 InitForMultiProfile();
173 EXPECT_TRUE( 175 EXPECT_TRUE(
174 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy()); 176 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
175 const std::string user_email(kUser); 177 const AccountId user_id(AccountId::FromUserEmail(kUser));
stevenjb 2015/10/22 17:52:36 nit: account_id here and below
Alexander Alekseev 2015/10/23 09:11:23 Done.
176 user_manager()->LoginUser(user_email); 178 user_manager()->LoginUser(user_id);
177 EXPECT_TRUE( 179 EXPECT_TRUE(
178 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy()); 180 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
179 181
180 user_profile_->GetPrefs()->SetString( 182 user_profile_->GetPrefs()->SetString(
181 prefs::kMultiProfileUserBehavior, 183 prefs::kMultiProfileUserBehavior,
182 chromeos::MultiProfileUserController::kBehaviorNotAllowed); 184 chromeos::MultiProfileUserController::kBehaviorNotAllowed);
183 EXPECT_FALSE( 185 EXPECT_FALSE(
184 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy()); 186 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
185 } 187 }
186 188
187 // Make sure MultiProfile disabled by primary user policy certificates. 189 // Make sure MultiProfile disabled by primary user policy certificates.
188 TEST_F(SessionStateDelegateChromeOSTest, 190 TEST_F(SessionStateDelegateChromeOSTest,
189 MultiProfileDisallowedByPolicyCertificates) { 191 MultiProfileDisallowedByPolicyCertificates) {
190 InitForMultiProfile(); 192 InitForMultiProfile();
191 const std::string user_email(kUser); 193 const AccountId user_id(AccountId::FromUserEmail(kUser));
192 user_manager()->LoginUser(user_email); 194 user_manager()->LoginUser(user_id);
193 EXPECT_TRUE( 195 EXPECT_TRUE(
194 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy()); 196 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
195 policy::PolicyCertServiceFactory::SetUsedPolicyCertificates(user_email); 197 policy::PolicyCertServiceFactory::SetUsedPolicyCertificates(
198 user_id.GetUserEmail());
196 EXPECT_FALSE( 199 EXPECT_FALSE(
197 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy()); 200 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
198 201
199 // Flush tasks posted to IO. 202 // Flush tasks posted to IO.
200 base::RunLoop().RunUntilIdle(); 203 base::RunLoop().RunUntilIdle();
201 } 204 }
202 205
203 // Make sure MultiProfile disabled by primary user certificates in memory. 206 // Make sure MultiProfile disabled by primary user certificates in memory.
204 TEST_F(SessionStateDelegateChromeOSTest, 207 TEST_F(SessionStateDelegateChromeOSTest,
205 MultiProfileDisallowedByPrimaryUserCertificatesInMemory) { 208 MultiProfileDisallowedByPrimaryUserCertificatesInMemory) {
206 InitForMultiProfile(); 209 InitForMultiProfile();
207 const std::string user_email(kUser); 210 const AccountId user_id(AccountId::FromUserEmail(kUser));
208 user_manager()->LoginUser(user_email); 211 user_manager()->LoginUser(user_id);
209 EXPECT_TRUE( 212 EXPECT_TRUE(
210 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy()); 213 session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
211 cert_verifier_.reset(new policy::PolicyCertVerifier(base::Closure())); 214 cert_verifier_.reset(new policy::PolicyCertVerifier(base::Closure()));
212 g_policy_cert_verifier_for_factory = cert_verifier_.get(); 215 g_policy_cert_verifier_for_factory = cert_verifier_.get();
213 ASSERT_TRUE( 216 ASSERT_TRUE(
214 policy::PolicyCertServiceFactory::GetInstance()->SetTestingFactoryAndUse( 217 policy::PolicyCertServiceFactory::GetInstance()->SetTestingFactoryAndUse(
215 user_profile_, CreateTestPolicyCertService)); 218 user_profile_, CreateTestPolicyCertService));
216 policy::PolicyCertService* service = 219 policy::PolicyCertService* service =
217 policy::PolicyCertServiceFactory::GetForProfile(user_profile_); 220 policy::PolicyCertServiceFactory::GetForProfile(user_profile_);
218 ASSERT_TRUE(service); 221 ASSERT_TRUE(service);
(...skipping 13 matching lines...) Expand all
232 235
233 // Make sure adding users to multiprofiles disabled by reaching maximum 236 // Make sure adding users to multiprofiles disabled by reaching maximum
234 // number of users in sessions. 237 // number of users in sessions.
235 TEST_F(SessionStateDelegateChromeOSTest, 238 TEST_F(SessionStateDelegateChromeOSTest,
236 AddUserToMultiprofileDisallowedByMaximumUsers) { 239 AddUserToMultiprofileDisallowedByMaximumUsers) {
237 InitForMultiProfile(); 240 InitForMultiProfile();
238 ash::SessionStateDelegate::AddUserError add_user_error; 241 ash::SessionStateDelegate::AddUserError add_user_error;
239 242
240 EXPECT_TRUE( 243 EXPECT_TRUE(
241 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); 244 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error));
242 const std::string user_email(kUser); 245 const AccountId user_id(AccountId::FromUserEmail(kUser));
243 user_manager()->LoginUser(user_email); 246 user_manager()->LoginUser(user_id);
244 while (session_state_delegate()->NumberOfLoggedInUsers() < 247 while (session_state_delegate()->NumberOfLoggedInUsers() <
245 session_state_delegate()->GetMaximumNumberOfLoggedInUsers()) { 248 session_state_delegate()->GetMaximumNumberOfLoggedInUsers()) {
246 UserAddedToSession("bb@b.b"); 249 UserAddedToSession("bb@b.b");
247 } 250 }
248 EXPECT_FALSE( 251 EXPECT_FALSE(
249 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); 252 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error));
250 EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_MAXIMUM_USERS_REACHED, 253 EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_MAXIMUM_USERS_REACHED,
251 add_user_error); 254 add_user_error);
252 } 255 }
253 256
254 // Make sure adding users to multiprofiles disabled by logging in all possible 257 // Make sure adding users to multiprofiles disabled by logging in all possible
255 // users. 258 // users.
256 TEST_F(SessionStateDelegateChromeOSTest, 259 TEST_F(SessionStateDelegateChromeOSTest,
257 AddUserToMultiprofileDisallowedByAllUsersLogged) { 260 AddUserToMultiprofileDisallowedByAllUsersLogged) {
258 InitForMultiProfile(); 261 InitForMultiProfile();
259 ash::SessionStateDelegate::AddUserError add_user_error; 262 ash::SessionStateDelegate::AddUserError add_user_error;
260 263
261 EXPECT_TRUE( 264 EXPECT_TRUE(
262 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); 265 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error));
263 const std::string user_email(kUser); 266 const AccountId user_id(AccountId::FromUserEmail(kUser));
264 user_manager()->LoginUser(user_email); 267 user_manager()->LoginUser(user_id);
265 UserAddedToSession("bb@b.b"); 268 UserAddedToSession("bb@b.b");
266 EXPECT_FALSE( 269 EXPECT_FALSE(
267 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); 270 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error));
268 EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_OUT_OF_USERS, 271 EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_OUT_OF_USERS,
269 add_user_error); 272 add_user_error);
270 } 273 }
271 274
272 // Make sure adding users to multiprofiles disabled by primary user policy. 275 // Make sure adding users to multiprofiles disabled by primary user policy.
273 TEST_F(SessionStateDelegateChromeOSTest, 276 TEST_F(SessionStateDelegateChromeOSTest,
274 AddUserToMultiprofileDisallowedByPrimaryUserPolicy) { 277 AddUserToMultiprofileDisallowedByPrimaryUserPolicy) {
275 InitForMultiProfile(); 278 InitForMultiProfile();
276 ash::SessionStateDelegate::AddUserError add_user_error; 279 ash::SessionStateDelegate::AddUserError add_user_error;
277 280
278 EXPECT_TRUE( 281 EXPECT_TRUE(
279 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); 282 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error));
280 const std::string user_email(kUser); 283 const AccountId user_id(AccountId::FromUserEmail(kUser));
281 user_manager()->LoginUser(user_email); 284 user_manager()->LoginUser(user_id);
282 user_profile_->GetPrefs()->SetString( 285 user_profile_->GetPrefs()->SetString(
283 prefs::kMultiProfileUserBehavior, 286 prefs::kMultiProfileUserBehavior,
284 chromeos::MultiProfileUserController::kBehaviorNotAllowed); 287 chromeos::MultiProfileUserController::kBehaviorNotAllowed);
285 user_manager()->AddUser("bb@b.b"); 288 user_manager()->AddUser(AccountId::FromUserEmail("bb@b.b"));
286 EXPECT_FALSE( 289 EXPECT_FALSE(
287 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error)); 290 session_state_delegate()->CanAddUserToMultiProfile(&add_user_error));
288 EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_NOT_ALLOWED_PRIMARY_USER, 291 EXPECT_EQ(ash::SessionStateDelegate::ADD_USER_ERROR_NOT_ALLOWED_PRIMARY_USER,
289 add_user_error); 292 add_user_error);
290 } 293 }
291 294
292 } // namespace chromeos 295 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698