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

Side by Side Diff: chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc

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

Powered by Google App Engine
This is Rietveld 408576698