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

Side by Side Diff: chrome/browser/chromeos/login/users/avatar/user_image_manager_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: 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <map> 5 #include <map>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 return NULL; 96 return NULL;
97 } 97 }
98 return policy_manager->core()->store(); 98 return policy_manager->core()->store();
99 } 99 }
100 100
101 } // namespace 101 } // namespace
102 102
103 class UserImageManagerTest : public LoginManagerTest, 103 class UserImageManagerTest : public LoginManagerTest,
104 public user_manager::UserManager::Observer { 104 public user_manager::UserManager::Observer {
105 protected: 105 protected:
106 UserImageManagerTest() : LoginManagerTest(true) { 106 UserImageManagerTest()
107 } 107 : LoginManagerTest(true),
108 test_account_id_(AccountId::FromUserEmail(kTestUser1)),
achuithb 2015/10/23 00:08:50 in class member initialization
Alexander Alekseev 2015/10/23 09:11:22 Done.
109 enterprise_account_id_(AccountId::FromUserEmail(kEnterpriseUser1)) {}
108 110
109 // LoginManagerTest overrides: 111 // LoginManagerTest overrides:
110 void SetUpInProcessBrowserTestFixture() override { 112 void SetUpInProcessBrowserTestFixture() override {
111 LoginManagerTest::SetUpInProcessBrowserTestFixture(); 113 LoginManagerTest::SetUpInProcessBrowserTestFixture();
112 114
113 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); 115 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_));
114 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); 116 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_));
115 } 117 }
116 118
117 void SetUpOnMainThread() override { 119 void SetUpOnMainThread() override {
118 LoginManagerTest::SetUpOnMainThread(); 120 LoginManagerTest::SetUpOnMainThread();
119 local_state_ = g_browser_process->local_state(); 121 local_state_ = g_browser_process->local_state();
120 user_manager::UserManager::Get()->AddObserver(this); 122 user_manager::UserManager::Get()->AddObserver(this);
121 } 123 }
122 124
123 void TearDownOnMainThread() override { 125 void TearDownOnMainThread() override {
124 user_manager::UserManager::Get()->RemoveObserver(this); 126 user_manager::UserManager::Get()->RemoveObserver(this);
125 LoginManagerTest::TearDownOnMainThread(); 127 LoginManagerTest::TearDownOnMainThread();
126 } 128 }
127 129
128 // UserManager::Observer overrides: 130 // UserManager::Observer overrides:
129 void LocalStateChanged(user_manager::UserManager* user_manager) override { 131 void LocalStateChanged(user_manager::UserManager* user_manager) override {
130 if (run_loop_) 132 if (run_loop_)
131 run_loop_->Quit(); 133 run_loop_->Quit();
132 } 134 }
133 135
134 // Logs in |username|. 136 // Logs in |account_id|.
135 void LogIn(const std::string& username) { 137 void LogIn(const AccountId& account_id) {
136 user_manager::UserManager::Get()->UserLoggedIn(username, username, false); 138 user_manager::UserManager::Get()->UserLoggedIn(
139 account_id, account_id.GetUserEmail(), false);
137 } 140 }
138 141
139 // Stores old (pre-migration) user image info. 142 // Stores old (pre-migration) user image info.
140 void SetOldUserImageInfo(const std::string& username, 143 void SetOldUserImageInfo(const std::string& username,
141 int image_index, 144 int image_index,
142 const base::FilePath& image_path) { 145 const base::FilePath& image_path) {
143 RegisterUser(username); 146 RegisterUser(username);
144 DictionaryPrefUpdate images_pref(local_state_, "UserImages"); 147 DictionaryPrefUpdate images_pref(local_state_, "UserImages");
145 base::DictionaryValue* image_properties = new base::DictionaryValue(); 148 base::DictionaryValue* image_properties = new base::DictionaryValue();
146 image_properties->Set("index", new base::FundamentalValue(image_index)); 149 image_properties->Set("index", new base::FundamentalValue(image_index));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 int image_index, 185 int image_index,
183 const base::FilePath& image_path) { 186 const base::FilePath& image_path) {
184 ExpectUserImageInfo(local_state_->GetDictionary("UserImages"), 187 ExpectUserImageInfo(local_state_->GetDictionary("UserImages"),
185 username, image_index, image_path); 188 username, image_index, image_path);
186 ExpectNoUserImageInfo(local_state_->GetDictionary("user_image_info"), 189 ExpectNoUserImageInfo(local_state_->GetDictionary("user_image_info"),
187 username); 190 username);
188 } 191 }
189 192
190 // Verifies that new user image info matches |image_index| and |image_path| 193 // Verifies that new user image info matches |image_index| and |image_path|
191 // and that old user image info does not exist. 194 // and that old user image info does not exist.
192 void ExpectNewUserImageInfo(const std::string& username, 195 void ExpectNewUserImageInfo(const std::string& username,
achuithb 2015/10/23 00:08:50 Why not change this and related methods to take co
Alexander Alekseev 2015/10/23 09:11:22 Done.
193 int image_index, 196 int image_index,
194 const base::FilePath& image_path) { 197 const base::FilePath& image_path) {
195 ExpectUserImageInfo(local_state_->GetDictionary("user_image_info"), 198 ExpectUserImageInfo(local_state_->GetDictionary("user_image_info"),
196 username, image_index, image_path); 199 username, image_index, image_path);
197 ExpectNoUserImageInfo(local_state_->GetDictionary("UserImages"), 200 ExpectNoUserImageInfo(local_state_->GetDictionary("UserImages"),
198 username); 201 username);
199 } 202 }
200 203
201 // Sets bitmap |resource_id| as image for |username| and saves it to disk. 204 // Sets bitmap |resource_id| as image for |username| and saves it to disk.
202 void SaveUserImagePNG(const std::string& username, 205 void SaveUserImagePNG(const std::string& username,
(...skipping 29 matching lines...) Expand all
232 info.given_name = username; 235 info.given_name = username;
233 info.hosted_domain = std::string(); 236 info.hosted_domain = std::string();
234 info.locale = username; 237 info.locale = username;
235 info.picture_url = "http://localhost/avatar.jpg"; 238 info.picture_url = "http://localhost/avatar.jpg";
236 info.is_child_account = false; 239 info.is_child_account = false;
237 240
238 AccountTrackerServiceFactory::GetForProfile(profile)->SeedAccountInfo(info); 241 AccountTrackerServiceFactory::GetForProfile(profile)->SeedAccountInfo(info);
239 } 242 }
240 243
241 // Completes the download of all non-image profile data for the user 244 // Completes the download of all non-image profile data for the user
242 // |username|. This method must only be called after a profile data 245 // |account_id|. This method must only be called after a profile data
243 // download has been started. |url_fetcher_factory| will capture 246 // download has been started. |url_fetcher_factory| will capture
244 // the net::TestURLFetcher created by the ProfileDownloader to 247 // the net::TestURLFetcher created by the ProfileDownloader to
245 // download the profile image. 248 // download the profile image.
246 void CompleteProfileMetadataDownload( 249 void CompleteProfileMetadataDownload(
247 const std::string& username, 250 const AccountId& account_id,
248 net::TestURLFetcherFactory* url_fetcher_factory) { 251 net::TestURLFetcherFactory* url_fetcher_factory) {
249 ProfileDownloader* profile_downloader = 252 ProfileDownloader* profile_downloader =
250 reinterpret_cast<UserImageManagerImpl*>( 253 reinterpret_cast<UserImageManagerImpl*>(
251 ChromeUserManager::Get()->GetUserImageManager(username)) 254 ChromeUserManager::Get()->GetUserImageManager(account_id))
252 ->profile_downloader_.get(); 255 ->profile_downloader_.get();
253 ASSERT_TRUE(profile_downloader); 256 ASSERT_TRUE(profile_downloader);
254 257
255 static_cast<OAuth2TokenService::Consumer*>(profile_downloader)-> 258 static_cast<OAuth2TokenService::Consumer*>(profile_downloader)->
256 OnGetTokenSuccess(NULL, 259 OnGetTokenSuccess(NULL,
257 std::string(), 260 std::string(),
258 base::Time::Now() + base::TimeDelta::FromDays(1)); 261 base::Time::Now() + base::TimeDelta::FromDays(1));
259 } 262 }
260 263
261 // Completes the download of the currently logged-in user's profile image. 264 // Completes the download of the currently logged-in user's profile image.
(...skipping 21 matching lines...) Expand all
283 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 286 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
284 net::OK)); 287 net::OK));
285 fetcher->set_response_code(200); 288 fetcher->set_response_code(200);
286 fetcher->delegate()->OnURLFetchComplete(fetcher); 289 fetcher->delegate()->OnURLFetchComplete(fetcher);
287 run_loop.Run(); 290 run_loop.Run();
288 291
289 const user_manager::User* user = 292 const user_manager::User* user =
290 user_manager::UserManager::Get()->GetLoggedInUser(); 293 user_manager::UserManager::Get()->GetLoggedInUser();
291 ASSERT_TRUE(user); 294 ASSERT_TRUE(user);
292 UserImageManagerImpl* uim = reinterpret_cast<UserImageManagerImpl*>( 295 UserImageManagerImpl* uim = reinterpret_cast<UserImageManagerImpl*>(
293 ChromeUserManager::Get()->GetUserImageManager(user->email())); 296 ChromeUserManager::Get()->GetUserImageManager(user->GetUserID()));
294 if (uim->job_.get()) { 297 if (uim->job_.get()) {
295 run_loop_.reset(new base::RunLoop); 298 run_loop_.reset(new base::RunLoop);
296 run_loop_->Run(); 299 run_loop_->Run();
297 } 300 }
298 } 301 }
299 302
300 base::FilePath test_data_dir_; 303 base::FilePath test_data_dir_;
301 base::FilePath user_data_dir_; 304 base::FilePath user_data_dir_;
302 305
303 PrefService* local_state_; 306 PrefService* local_state_;
304 307
305 scoped_ptr<gfx::ImageSkia> decoded_image_; 308 scoped_ptr<gfx::ImageSkia> decoded_image_;
306 309
307 scoped_ptr<base::RunLoop> run_loop_; 310 scoped_ptr<base::RunLoop> run_loop_;
308 311
312 const AccountId test_account_id_;
313 const AccountId enterprise_account_id_;
314
309 private: 315 private:
310 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest); 316 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest);
311 }; 317 };
312 318
313 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { 319 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) {
314 // Setup an old default (stock) user image. 320 // Setup an old default (stock) user image.
315 ScopedUserManagerEnabler(new MockUserManager); 321 ScopedUserManagerEnabler(new MockUserManager);
316 SetOldUserImageInfo( 322 SetOldUserImageInfo(test_account_id_.GetUserEmail(),
317 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 323 user_manager::kFirstDefaultImageIndex, base::FilePath());
318 } 324 }
319 325
320 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) { 326 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) {
321 user_manager::UserManager::Get()->GetUsers(); // Load users. 327 user_manager::UserManager::Get()->GetUsers(); // Load users.
322 // Old info preserved. 328 // Old info preserved.
323 ExpectOldUserImageInfo( 329 ExpectOldUserImageInfo(test_account_id_.GetUserEmail(),
324 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 330 user_manager::kFirstDefaultImageIndex,
325 LogIn(kTestUser1); 331 base::FilePath());
332 LogIn(test_account_id_);
326 // Image info is migrated now. 333 // Image info is migrated now.
327 ExpectNewUserImageInfo( 334 ExpectNewUserImageInfo(test_account_id_.GetUserEmail(),
328 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 335 user_manager::kFirstDefaultImageIndex,
336 base::FilePath());
329 } 337 }
330 338
331 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) { 339 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) {
332 // Setup two users with stock images. 340 // Setup two users with stock images.
333 ScopedUserManagerEnabler(new MockUserManager); 341 ScopedUserManagerEnabler(new MockUserManager);
334 SetOldUserImageInfo( 342 SetOldUserImageInfo(test_account_id_.GetUserEmail(),
335 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 343 user_manager::kFirstDefaultImageIndex, base::FilePath());
336 SetOldUserImageInfo( 344 SetOldUserImageInfo(
337 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath()); 345 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath());
338 } 346 }
339 347
340 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) { 348 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) {
341 user_manager::UserManager::Get()->GetUsers(); // Load users. 349 user_manager::UserManager::Get()->GetUsers(); // Load users.
342 // Old info preserved. 350 // Old info preserved.
343 ExpectOldUserImageInfo( 351 ExpectOldUserImageInfo(test_account_id_.GetUserEmail(),
344 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 352 user_manager::kFirstDefaultImageIndex,
353 base::FilePath());
345 ExpectOldUserImageInfo( 354 ExpectOldUserImageInfo(
346 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath()); 355 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath());
347 LogIn(kTestUser1); 356 LogIn(test_account_id_);
348 // Image info is migrated for the first user and unaffected for the rest. 357 // Image info is migrated for the first user and unaffected for the rest.
349 ExpectNewUserImageInfo( 358 ExpectNewUserImageInfo(test_account_id_.GetUserEmail(),
350 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 359 user_manager::kFirstDefaultImageIndex,
360 base::FilePath());
351 ExpectOldUserImageInfo( 361 ExpectOldUserImageInfo(
352 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath()); 362 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath());
353 } 363 }
354 364
355 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) { 365 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) {
356 // Setup a user with non-JPEG image. 366 // Setup a user with non-JPEG image.
357 ScopedUserManagerEnabler(new MockUserManager); 367 ScopedUserManagerEnabler(new MockUserManager);
358 SaveUserImagePNG(kTestUser1, 368 SaveUserImagePNG(test_account_id_.GetUserEmail(),
359 user_manager::kDefaultImageResourceIDs 369 user_manager::kDefaultImageResourceIDs
360 [user_manager::kFirstDefaultImageIndex]); 370 [user_manager::kFirstDefaultImageIndex]);
361 } 371 }
362 372
363 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { 373 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) {
364 user_manager::UserManager::Get()->GetUsers(); // Load users. 374 user_manager::UserManager::Get()->GetUsers(); // Load users.
365 // Old info preserved. 375 // Old info preserved.
366 ExpectOldUserImageInfo(kTestUser1, 376 ExpectOldUserImageInfo(
367 user_manager::User::USER_IMAGE_EXTERNAL, 377 test_account_id_.GetUserEmail(), user_manager::User::USER_IMAGE_EXTERNAL,
368 GetUserImagePath(kTestUser1, "png")); 378 GetUserImagePath(test_account_id_.GetUserEmail(), "png"));
369 const user_manager::User* user = 379 const user_manager::User* user =
370 user_manager::UserManager::Get()->FindUser(kTestUser1); 380 user_manager::UserManager::Get()->FindUser(test_account_id_);
371 EXPECT_TRUE(user->image_is_stub()); 381 EXPECT_TRUE(user->image_is_stub());
372 382
373 base::RunLoop run_loop; 383 base::RunLoop run_loop;
374 PrefChangeRegistrar pref_change_registrar_; 384 PrefChangeRegistrar pref_change_registrar_;
375 pref_change_registrar_.Init(local_state_); 385 pref_change_registrar_.Init(local_state_);
376 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure()); 386 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure());
377 LogIn(kTestUser1); 387 LogIn(test_account_id_);
378 388
379 // Wait for migration. 389 // Wait for migration.
380 run_loop.Run(); 390 run_loop.Run();
381 391
382 // Image info is migrated and the image is converted to JPG. 392 // Image info is migrated and the image is converted to JPG.
383 ExpectNewUserImageInfo(kTestUser1, 393 ExpectNewUserImageInfo(
384 user_manager::User::USER_IMAGE_EXTERNAL, 394 test_account_id_.GetUserEmail(), user_manager::User::USER_IMAGE_EXTERNAL,
385 GetUserImagePath(kTestUser1, "jpg")); 395 GetUserImagePath(test_account_id_.GetUserEmail(), "jpg"));
386 user = user_manager::UserManager::Get()->GetLoggedInUser(); 396 user = user_manager::UserManager::Get()->GetLoggedInUser();
387 ASSERT_TRUE(user); 397 ASSERT_TRUE(user);
388 EXPECT_FALSE(user->image_is_safe_format()); 398 EXPECT_FALSE(user->image_is_safe_format());
389 // Check image dimensions. 399 // Check image dimensions.
390 const gfx::ImageSkia& saved_image = 400 const gfx::ImageSkia& saved_image =
391 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); 401 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
392 EXPECT_EQ(saved_image.width(), user->GetImage().width()); 402 EXPECT_EQ(saved_image.width(), user->GetImage().width());
393 EXPECT_EQ(saved_image.height(), user->GetImage().height()); 403 EXPECT_EQ(saved_image.height(), user->GetImage().height());
394 } 404 }
395 405
396 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) { 406 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) {
397 user_manager::UserManager::Get()->GetUsers(); // Load users. 407 user_manager::UserManager::Get()->GetUsers(); // Load users.
398 const user_manager::User* user = 408 const user_manager::User* user =
399 user_manager::UserManager::Get()->FindUser(kTestUser1); 409 user_manager::UserManager::Get()->FindUser(test_account_id_);
400 ASSERT_TRUE(user); 410 ASSERT_TRUE(user);
401 // Wait for image load. 411 // Wait for image load.
402 if (user->image_index() == user_manager::User::USER_IMAGE_INVALID) { 412 if (user->image_index() == user_manager::User::USER_IMAGE_INVALID) {
403 content::WindowedNotificationObserver( 413 content::WindowedNotificationObserver(
404 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, 414 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
405 content::NotificationService::AllSources()).Wait(); 415 content::NotificationService::AllSources()).Wait();
406 } 416 }
407 // Now the migrated image is used. 417 // Now the migrated image is used.
408 EXPECT_TRUE(user->image_is_safe_format()); 418 EXPECT_TRUE(user->image_is_safe_format());
409 // Check image dimensions. Images can't be compared since JPEG is lossy. 419 // Check image dimensions. Images can't be compared since JPEG is lossy.
410 const gfx::ImageSkia& saved_image = 420 const gfx::ImageSkia& saved_image =
411 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); 421 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
412 EXPECT_EQ(saved_image.width(), user->GetImage().width()); 422 EXPECT_EQ(saved_image.width(), user->GetImage().width());
413 EXPECT_EQ(saved_image.height(), user->GetImage().height()); 423 EXPECT_EQ(saved_image.height(), user->GetImage().height());
414 } 424 }
415 425
416 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { 426 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) {
417 RegisterUser(kTestUser1); 427 RegisterUser(test_account_id_.GetUserEmail());
418 } 428 }
419 429
420 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the 430 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the
421 // chosen user image. 431 // chosen user image.
422 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { 432 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) {
423 const user_manager::User* user = 433 const user_manager::User* user =
424 user_manager::UserManager::Get()->FindUser(kTestUser1); 434 user_manager::UserManager::Get()->FindUser(test_account_id_);
425 ASSERT_TRUE(user); 435 ASSERT_TRUE(user);
426 436
427 const gfx::ImageSkia& default_image = 437 const gfx::ImageSkia& default_image =
428 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); 438 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
429 439
430 UserImageManager* user_image_manager = 440 UserImageManager* user_image_manager =
431 ChromeUserManager::Get()->GetUserImageManager(kTestUser1); 441 ChromeUserManager::Get()->GetUserImageManager(test_account_id_);
432 user_image_manager->SaveUserDefaultImageIndex( 442 user_image_manager->SaveUserDefaultImageIndex(
433 user_manager::kFirstDefaultImageIndex); 443 user_manager::kFirstDefaultImageIndex);
434 444
435 EXPECT_TRUE(user->HasDefaultImage()); 445 EXPECT_TRUE(user->HasDefaultImage());
436 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index()); 446 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index());
437 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 447 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
438 ExpectNewUserImageInfo( 448 ExpectNewUserImageInfo(test_account_id_.GetUserEmail(),
439 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 449 user_manager::kFirstDefaultImageIndex,
450 base::FilePath());
440 } 451 }
441 452
442 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { 453 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) {
443 RegisterUser(kTestUser1); 454 RegisterUser(test_account_id_.GetUserEmail());
444 } 455 }
445 456
446 // Verifies that SaveUserImage() correctly sets and persists the chosen user 457 // Verifies that SaveUserImage() correctly sets and persists the chosen user
447 // image. 458 // image.
448 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { 459 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) {
449 const user_manager::User* user = 460 const user_manager::User* user =
450 user_manager::UserManager::Get()->FindUser(kTestUser1); 461 user_manager::UserManager::Get()->FindUser(test_account_id_);
451 ASSERT_TRUE(user); 462 ASSERT_TRUE(user);
452 463
453 SkBitmap custom_image_bitmap; 464 SkBitmap custom_image_bitmap;
454 custom_image_bitmap.allocN32Pixels(10, 10); 465 custom_image_bitmap.allocN32Pixels(10, 10);
455 custom_image_bitmap.eraseColor(SK_ColorWHITE); 466 custom_image_bitmap.eraseColor(SK_ColorWHITE);
456 custom_image_bitmap.setImmutable(); 467 custom_image_bitmap.setImmutable();
457 const gfx::ImageSkia custom_image = 468 const gfx::ImageSkia custom_image =
458 gfx::ImageSkia::CreateFrom1xBitmap(custom_image_bitmap); 469 gfx::ImageSkia::CreateFrom1xBitmap(custom_image_bitmap);
459 470
460 run_loop_.reset(new base::RunLoop); 471 run_loop_.reset(new base::RunLoop);
461 UserImageManager* user_image_manager = 472 UserImageManager* user_image_manager =
462 ChromeUserManager::Get()->GetUserImageManager(kTestUser1); 473 ChromeUserManager::Get()->GetUserImageManager(test_account_id_);
463 user_image_manager->SaveUserImage( 474 user_image_manager->SaveUserImage(
464 user_manager::UserImage::CreateAndEncode(custom_image)); 475 user_manager::UserImage::CreateAndEncode(custom_image));
465 run_loop_->Run(); 476 run_loop_->Run();
466 477
467 EXPECT_FALSE(user->HasDefaultImage()); 478 EXPECT_FALSE(user->HasDefaultImage());
468 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 479 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
469 EXPECT_TRUE(test::AreImagesEqual(custom_image, user->GetImage())); 480 EXPECT_TRUE(test::AreImagesEqual(custom_image, user->GetImage()));
470 ExpectNewUserImageInfo(kTestUser1, 481 ExpectNewUserImageInfo(
471 user_manager::User::USER_IMAGE_EXTERNAL, 482 test_account_id_.GetUserEmail(), user_manager::User::USER_IMAGE_EXTERNAL,
472 GetUserImagePath(kTestUser1, "jpg")); 483 GetUserImagePath(test_account_id_.GetUserEmail(), "jpg"));
473 484
474 const scoped_ptr<gfx::ImageSkia> saved_image = 485 const scoped_ptr<gfx::ImageSkia> saved_image =
475 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); 486 test::ImageLoader(
487 GetUserImagePath(test_account_id_.GetUserEmail(), "jpg"))
488 .Load();
476 ASSERT_TRUE(saved_image); 489 ASSERT_TRUE(saved_image);
477 490
478 // Check image dimensions. Images can't be compared since JPEG is lossy. 491 // Check image dimensions. Images can't be compared since JPEG is lossy.
479 EXPECT_EQ(custom_image.width(), saved_image->width()); 492 EXPECT_EQ(custom_image.width(), saved_image->width());
480 EXPECT_EQ(custom_image.height(), saved_image->height()); 493 EXPECT_EQ(custom_image.height(), saved_image->height());
481 } 494 }
482 495
483 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImageFromFile) { 496 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImageFromFile) {
484 RegisterUser(kTestUser1); 497 RegisterUser(test_account_id_.GetUserEmail());
485 } 498 }
486 499
487 // Verifies that SaveUserImageFromFile() correctly sets and persists the chosen 500 // Verifies that SaveUserImageFromFile() correctly sets and persists the chosen
488 // user image. 501 // user image.
489 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) { 502 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) {
490 const user_manager::User* user = 503 const user_manager::User* user =
491 user_manager::UserManager::Get()->FindUser(kTestUser1); 504 user_manager::UserManager::Get()->FindUser(test_account_id_);
492 ASSERT_TRUE(user); 505 ASSERT_TRUE(user);
493 506
494 const base::FilePath custom_image_path = 507 const base::FilePath custom_image_path =
495 test_data_dir_.Append(test::kUserAvatarImage1RelativePath); 508 test_data_dir_.Append(test::kUserAvatarImage1RelativePath);
496 const scoped_ptr<gfx::ImageSkia> custom_image = 509 const scoped_ptr<gfx::ImageSkia> custom_image =
497 test::ImageLoader(custom_image_path).Load(); 510 test::ImageLoader(custom_image_path).Load();
498 ASSERT_TRUE(custom_image); 511 ASSERT_TRUE(custom_image);
499 512
500 run_loop_.reset(new base::RunLoop); 513 run_loop_.reset(new base::RunLoop);
501 UserImageManager* user_image_manager = 514 UserImageManager* user_image_manager =
502 ChromeUserManager::Get()->GetUserImageManager(kTestUser1); 515 ChromeUserManager::Get()->GetUserImageManager(test_account_id_);
503 user_image_manager->SaveUserImageFromFile(custom_image_path); 516 user_image_manager->SaveUserImageFromFile(custom_image_path);
504 run_loop_->Run(); 517 run_loop_->Run();
505 518
506 EXPECT_FALSE(user->HasDefaultImage()); 519 EXPECT_FALSE(user->HasDefaultImage());
507 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 520 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
508 EXPECT_TRUE(test::AreImagesEqual(*custom_image, user->GetImage())); 521 EXPECT_TRUE(test::AreImagesEqual(*custom_image, user->GetImage()));
509 ExpectNewUserImageInfo(kTestUser1, 522 ExpectNewUserImageInfo(
510 user_manager::User::USER_IMAGE_EXTERNAL, 523 test_account_id_.GetUserEmail(), user_manager::User::USER_IMAGE_EXTERNAL,
511 GetUserImagePath(kTestUser1, "jpg")); 524 GetUserImagePath(test_account_id_.GetUserEmail(), "jpg"));
512 525
513 const scoped_ptr<gfx::ImageSkia> saved_image = 526 const scoped_ptr<gfx::ImageSkia> saved_image =
514 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); 527 test::ImageLoader(
528 GetUserImagePath(test_account_id_.GetUserEmail(), "jpg"))
529 .Load();
515 ASSERT_TRUE(saved_image); 530 ASSERT_TRUE(saved_image);
516 531
517 // Check image dimensions. Images can't be compared since JPEG is lossy. 532 // Check image dimensions. Images can't be compared since JPEG is lossy.
518 EXPECT_EQ(custom_image->width(), saved_image->width()); 533 EXPECT_EQ(custom_image->width(), saved_image->width());
519 EXPECT_EQ(custom_image->height(), saved_image->height()); 534 EXPECT_EQ(custom_image->height(), saved_image->height());
520 } 535 }
521 536
522 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, 537 IN_PROC_BROWSER_TEST_F(UserImageManagerTest,
523 PRE_SaveUserImageFromProfileImage) { 538 PRE_SaveUserImageFromProfileImage) {
524 RegisterUser(kTestUser1); 539 RegisterUser(test_account_id_.GetUserEmail());
525 chromeos::StartupUtils::MarkOobeCompleted(); 540 chromeos::StartupUtils::MarkOobeCompleted();
526 } 541 }
527 542
528 // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and 543 // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and
529 // persists the chosen user image. 544 // persists the chosen user image.
530 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { 545 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) {
531 const user_manager::User* user = 546 const user_manager::User* user =
532 user_manager::UserManager::Get()->FindUser(kTestUser1); 547 user_manager::UserManager::Get()->FindUser(test_account_id_);
533 ASSERT_TRUE(user); 548 ASSERT_TRUE(user);
534 549
535 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); 550 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting();
536 LoginUser(kTestUser1); 551 LoginUser(test_account_id_.GetUserEmail());
537 Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user); 552 Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user);
538 SeedAccountTrackerService(kTestUser1, profile); 553 SeedAccountTrackerService(test_account_id_.GetUserEmail(), profile);
539 554
540 run_loop_.reset(new base::RunLoop); 555 run_loop_.reset(new base::RunLoop);
541 UserImageManager* user_image_manager = 556 UserImageManager* user_image_manager =
542 ChromeUserManager::Get()->GetUserImageManager(kTestUser1); 557 ChromeUserManager::Get()->GetUserImageManager(test_account_id_);
543 user_image_manager->SaveUserImageFromProfileImage(); 558 user_image_manager->SaveUserImageFromProfileImage();
544 run_loop_->Run(); 559 run_loop_->Run();
545 560
546 net::TestURLFetcherFactory url_fetcher_factory; 561 net::TestURLFetcherFactory url_fetcher_factory;
547 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); 562 CompleteProfileMetadataDownload(test_account_id_, &url_fetcher_factory);
548 CompleteProfileImageDownload(&url_fetcher_factory); 563 CompleteProfileImageDownload(&url_fetcher_factory);
549 564
550 const gfx::ImageSkia& profile_image = 565 const gfx::ImageSkia& profile_image =
551 user_image_manager->DownloadedProfileImage(); 566 user_image_manager->DownloadedProfileImage();
552 567
553 EXPECT_FALSE(user->HasDefaultImage()); 568 EXPECT_FALSE(user->HasDefaultImage());
554 EXPECT_EQ(user_manager::User::USER_IMAGE_PROFILE, user->image_index()); 569 EXPECT_EQ(user_manager::User::USER_IMAGE_PROFILE, user->image_index());
555 EXPECT_TRUE(test::AreImagesEqual(profile_image, user->GetImage())); 570 EXPECT_TRUE(test::AreImagesEqual(profile_image, user->GetImage()));
556 ExpectNewUserImageInfo(kTestUser1, 571 ExpectNewUserImageInfo(
557 user_manager::User::USER_IMAGE_PROFILE, 572 test_account_id_.GetUserEmail(), user_manager::User::USER_IMAGE_PROFILE,
558 GetUserImagePath(kTestUser1, "jpg")); 573 GetUserImagePath(test_account_id_.GetUserEmail(), "jpg"));
559 574
560 const scoped_ptr<gfx::ImageSkia> saved_image = 575 const scoped_ptr<gfx::ImageSkia> saved_image =
561 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); 576 test::ImageLoader(
577 GetUserImagePath(test_account_id_.GetUserEmail(), "jpg"))
578 .Load();
562 ASSERT_TRUE(saved_image); 579 ASSERT_TRUE(saved_image);
563 580
564 // Check image dimensions. Images can't be compared since JPEG is lossy. 581 // Check image dimensions. Images can't be compared since JPEG is lossy.
565 EXPECT_EQ(profile_image.width(), saved_image->width()); 582 EXPECT_EQ(profile_image.width(), saved_image->width());
566 EXPECT_EQ(profile_image.height(), saved_image->height()); 583 EXPECT_EQ(profile_image.height(), saved_image->height());
567 } 584 }
568 585
569 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, 586 IN_PROC_BROWSER_TEST_F(UserImageManagerTest,
570 PRE_ProfileImageDownloadDoesNotClobber) { 587 PRE_ProfileImageDownloadDoesNotClobber) {
571 RegisterUser(kTestUser1); 588 RegisterUser(test_account_id_.GetUserEmail());
572 chromeos::StartupUtils::MarkOobeCompleted(); 589 chromeos::StartupUtils::MarkOobeCompleted();
573 } 590 }
574 591
575 // Sets the user image to the profile image, then sets it to one of the default 592 // Sets the user image to the profile image, then sets it to one of the default
576 // images while the profile image download is still in progress. Verifies that 593 // images while the profile image download is still in progress. Verifies that
577 // when the download completes, the profile image is ignored and does not 594 // when the download completes, the profile image is ignored and does not
578 // clobber the default image chosen in the meantime. 595 // clobber the default image chosen in the meantime.
579 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, 596 IN_PROC_BROWSER_TEST_F(UserImageManagerTest,
580 ProfileImageDownloadDoesNotClobber) { 597 ProfileImageDownloadDoesNotClobber) {
581 const user_manager::User* user = 598 const user_manager::User* user =
582 user_manager::UserManager::Get()->FindUser(kTestUser1); 599 user_manager::UserManager::Get()->FindUser(test_account_id_);
583 ASSERT_TRUE(user); 600 ASSERT_TRUE(user);
584 601
585 const gfx::ImageSkia& default_image = 602 const gfx::ImageSkia& default_image =
586 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); 603 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
587 604
588 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); 605 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting();
589 LoginUser(kTestUser1); 606 LoginUser(test_account_id_.GetUserEmail());
590 Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user); 607 Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user);
591 SeedAccountTrackerService(kTestUser1, profile); 608 SeedAccountTrackerService(test_account_id_.GetUserEmail(), profile);
592 609
593 run_loop_.reset(new base::RunLoop); 610 run_loop_.reset(new base::RunLoop);
594 UserImageManager* user_image_manager = 611 UserImageManager* user_image_manager =
595 ChromeUserManager::Get()->GetUserImageManager(kTestUser1); 612 ChromeUserManager::Get()->GetUserImageManager(test_account_id_);
596 user_image_manager->SaveUserImageFromProfileImage(); 613 user_image_manager->SaveUserImageFromProfileImage();
597 run_loop_->Run(); 614 run_loop_->Run();
598 615
599 net::TestURLFetcherFactory url_fetcher_factory; 616 net::TestURLFetcherFactory url_fetcher_factory;
600 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); 617 CompleteProfileMetadataDownload(test_account_id_, &url_fetcher_factory);
601 618
602 user_image_manager->SaveUserDefaultImageIndex( 619 user_image_manager->SaveUserDefaultImageIndex(
603 user_manager::kFirstDefaultImageIndex); 620 user_manager::kFirstDefaultImageIndex);
604 621
605 CompleteProfileImageDownload(&url_fetcher_factory); 622 CompleteProfileImageDownload(&url_fetcher_factory);
606 623
607 EXPECT_TRUE(user->HasDefaultImage()); 624 EXPECT_TRUE(user->HasDefaultImage());
608 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index()); 625 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index());
609 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 626 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
610 ExpectNewUserImageInfo( 627 ExpectNewUserImageInfo(test_account_id_.GetUserEmail(),
611 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath()); 628 user_manager::kFirstDefaultImageIndex,
629 base::FilePath());
612 } 630 }
613 631
614 class UserImageManagerPolicyTest : public UserImageManagerTest, 632 class UserImageManagerPolicyTest : public UserImageManagerTest,
615 public policy::CloudPolicyStore::Observer { 633 public policy::CloudPolicyStore::Observer {
616 protected: 634 protected:
617 UserImageManagerPolicyTest() 635 UserImageManagerPolicyTest()
618 : fake_session_manager_client_(new chromeos::FakeSessionManagerClient) { 636 : fake_session_manager_client_(new chromeos::FakeSessionManagerClient) {
619 } 637 }
620 638
621 // UserImageManagerTest overrides: 639 // UserImageManagerTest overrides:
622 void SetUpInProcessBrowserTestFixture() override { 640 void SetUpInProcessBrowserTestFixture() override {
623 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( 641 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient(
624 scoped_ptr<SessionManagerClient>(fake_session_manager_client_)); 642 scoped_ptr<SessionManagerClient>(fake_session_manager_client_));
625 UserImageManagerTest::SetUpInProcessBrowserTestFixture(); 643 UserImageManagerTest::SetUpInProcessBrowserTestFixture();
626 } 644 }
627 645
628 void SetUpOnMainThread() override { 646 void SetUpOnMainThread() override {
629 UserImageManagerTest::SetUpOnMainThread(); 647 UserImageManagerTest::SetUpOnMainThread();
630 648
631 base::FilePath user_keys_dir; 649 base::FilePath user_keys_dir;
632 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, 650 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS,
633 &user_keys_dir)); 651 &user_keys_dir));
634 const std::string sanitized_username = 652 const std::string sanitized_username =
635 chromeos::CryptohomeClient::GetStubSanitizedUsername(kEnterpriseUser1); 653 chromeos::CryptohomeClient::GetStubSanitizedUsername(
654 enterprise_account_id_.GetUserEmail());
636 const base::FilePath user_key_file = 655 const base::FilePath user_key_file =
637 user_keys_dir.AppendASCII(sanitized_username) 656 user_keys_dir.AppendASCII(sanitized_username)
638 .AppendASCII("policy.pub"); 657 .AppendASCII("policy.pub");
639 std::vector<uint8> user_key_bits; 658 std::vector<uint8> user_key_bits;
640 ASSERT_TRUE(user_policy_.GetSigningKey()->ExportPublicKey(&user_key_bits)); 659 ASSERT_TRUE(user_policy_.GetSigningKey()->ExportPublicKey(&user_key_bits));
641 ASSERT_TRUE(base::CreateDirectory(user_key_file.DirName())); 660 ASSERT_TRUE(base::CreateDirectory(user_key_file.DirName()));
642 ASSERT_EQ(base::WriteFile( 661 ASSERT_EQ(base::WriteFile(
643 user_key_file, 662 user_key_file,
644 reinterpret_cast<const char*>(user_key_bits.data()), 663 reinterpret_cast<const char*>(user_key_bits.data()),
645 user_key_bits.size()), 664 user_key_bits.size()),
646 static_cast<int>(user_key_bits.size())); 665 static_cast<int>(user_key_bits.size()));
647 user_policy_.policy_data().set_username(kEnterpriseUser1); 666 user_policy_.policy_data().set_username(
667 enterprise_account_id_.GetUserEmail());
648 668
649 policy_image_ = test::ImageLoader(test_data_dir_.Append( 669 policy_image_ = test::ImageLoader(test_data_dir_.Append(
650 test::kUserAvatarImage2RelativePath)).Load(); 670 test::kUserAvatarImage2RelativePath)).Load();
651 ASSERT_TRUE(policy_image_); 671 ASSERT_TRUE(policy_image_);
652 } 672 }
653 673
654 // policy::CloudPolicyStore::Observer overrides: 674 // policy::CloudPolicyStore::Observer overrides:
655 void OnStoreLoaded(policy::CloudPolicyStore* store) override { 675 void OnStoreLoaded(policy::CloudPolicyStore* store) override {
656 if (run_loop_) 676 if (run_loop_)
657 run_loop_->Quit(); 677 run_loop_->Quit();
(...skipping 23 matching lines...) Expand all
681 policy::UserPolicyBuilder user_policy_; 701 policy::UserPolicyBuilder user_policy_;
682 FakeSessionManagerClient* fake_session_manager_client_; 702 FakeSessionManagerClient* fake_session_manager_client_;
683 703
684 scoped_ptr<gfx::ImageSkia> policy_image_; 704 scoped_ptr<gfx::ImageSkia> policy_image_;
685 705
686 private: 706 private:
687 DISALLOW_COPY_AND_ASSIGN(UserImageManagerPolicyTest); 707 DISALLOW_COPY_AND_ASSIGN(UserImageManagerPolicyTest);
688 }; 708 };
689 709
690 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { 710 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) {
691 RegisterUser(kEnterpriseUser1); 711 RegisterUser(enterprise_account_id_.GetUserEmail());
692 chromeos::StartupUtils::MarkOobeCompleted(); 712 chromeos::StartupUtils::MarkOobeCompleted();
693 } 713 }
694 714
695 // Verifies that the user image can be set through policy. Also verifies that 715 // Verifies that the user image can be set through policy. Also verifies that
696 // after the policy has been cleared, the user is able to choose a different 716 // after the policy has been cleared, the user is able to choose a different
697 // image. 717 // image.
698 // http://crbug.com/396352 718 // http://crbug.com/396352
699 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, DISABLED_SetAndClear) { 719 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, DISABLED_SetAndClear) {
700 const user_manager::User* user = 720 const user_manager::User* user =
701 user_manager::UserManager::Get()->FindUser(kEnterpriseUser1); 721 user_manager::UserManager::Get()->FindUser(enterprise_account_id_);
702 ASSERT_TRUE(user); 722 ASSERT_TRUE(user);
703 723
704 LoginUser(kEnterpriseUser1); 724 LoginUser(enterprise_account_id_.GetUserEmail());
705 base::RunLoop().RunUntilIdle(); 725 base::RunLoop().RunUntilIdle();
706 726
707 policy::CloudPolicyStore* store = GetStoreForUser(user); 727 policy::CloudPolicyStore* store = GetStoreForUser(user);
708 ASSERT_TRUE(store); 728 ASSERT_TRUE(store);
709 729
710 // Set policy. Verify that the policy-provided user image is downloaded, set 730 // Set policy. Verify that the policy-provided user image is downloaded, set
711 // and persisted. 731 // and persisted.
712 user_policy_.payload().mutable_useravatarimage()->set_value( 732 user_policy_.payload().mutable_useravatarimage()->set_value(
713 ConstructPolicy(test::kUserAvatarImage2RelativePath)); 733 ConstructPolicy(test::kUserAvatarImage2RelativePath));
714 user_policy_.Build(); 734 user_policy_.Build();
715 fake_session_manager_client_->set_user_policy(kEnterpriseUser1, 735 fake_session_manager_client_->set_user_policy(
716 user_policy_.GetBlob()); 736 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob());
717 run_loop_.reset(new base::RunLoop); 737 run_loop_.reset(new base::RunLoop);
718 store->Load(); 738 store->Load();
719 run_loop_->Run(); 739 run_loop_->Run();
720 740
721 EXPECT_FALSE(user->HasDefaultImage()); 741 EXPECT_FALSE(user->HasDefaultImage());
722 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 742 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
723 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 743 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
724 ExpectNewUserImageInfo(kEnterpriseUser1, 744 ExpectNewUserImageInfo(
725 user_manager::User::USER_IMAGE_EXTERNAL, 745 enterprise_account_id_.GetUserEmail(),
726 GetUserImagePath(kEnterpriseUser1, "jpg")); 746 user_manager::User::USER_IMAGE_EXTERNAL,
747 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"));
727 748
728 scoped_ptr<gfx::ImageSkia> saved_image = 749 scoped_ptr<gfx::ImageSkia> saved_image =
729 test::ImageLoader(GetUserImagePath(kEnterpriseUser1, "jpg")).Load(); 750 test::ImageLoader(
751 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"))
752 .Load();
730 ASSERT_TRUE(saved_image); 753 ASSERT_TRUE(saved_image);
731 754
732 // Check image dimensions. Images can't be compared since JPEG is lossy. 755 // Check image dimensions. Images can't be compared since JPEG is lossy.
733 EXPECT_EQ(policy_image_->width(), saved_image->width()); 756 EXPECT_EQ(policy_image_->width(), saved_image->width());
734 EXPECT_EQ(policy_image_->height(), saved_image->height()); 757 EXPECT_EQ(policy_image_->height(), saved_image->height());
735 758
736 // Clear policy. Verify that the user image switches to a random default 759 // Clear policy. Verify that the user image switches to a random default
737 // image. 760 // image.
738 user_policy_.payload().Clear(); 761 user_policy_.payload().Clear();
739 user_policy_.Build(); 762 user_policy_.Build();
740 fake_session_manager_client_->set_user_policy(kEnterpriseUser1, 763 fake_session_manager_client_->set_user_policy(
741 user_policy_.GetBlob()); 764 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob());
742 run_loop_.reset(new base::RunLoop); 765 run_loop_.reset(new base::RunLoop);
743 store->AddObserver(this); 766 store->AddObserver(this);
744 store->Load(); 767 store->Load();
745 run_loop_->Run(); 768 run_loop_->Run();
746 store->RemoveObserver(this); 769 store->RemoveObserver(this);
747 base::RunLoop().RunUntilIdle(); 770 base::RunLoop().RunUntilIdle();
748 771
749 const int default_image_index = user->image_index(); 772 const int default_image_index = user->image_index();
750 EXPECT_TRUE(user->HasDefaultImage()); 773 EXPECT_TRUE(user->HasDefaultImage());
751 ASSERT_LE(user_manager::kFirstDefaultImageIndex, default_image_index); 774 ASSERT_LE(user_manager::kFirstDefaultImageIndex, default_image_index);
752 ASSERT_GT( 775 ASSERT_GT(
753 user_manager::kFirstDefaultImageIndex + user_manager::kDefaultImagesCount, 776 user_manager::kFirstDefaultImageIndex + user_manager::kDefaultImagesCount,
754 default_image_index); 777 default_image_index);
755 const gfx::ImageSkia& default_image = 778 const gfx::ImageSkia& default_image =
756 user_manager::GetDefaultImage(default_image_index); 779 user_manager::GetDefaultImage(default_image_index);
757 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 780 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
758 ExpectNewUserImageInfo(kEnterpriseUser1, default_image_index, 781 ExpectNewUserImageInfo(enterprise_account_id_.GetUserEmail(),
759 base::FilePath()); 782 default_image_index, base::FilePath());
760 783
761 // Choose a different user image. Verify that the chosen user image is set and 784 // Choose a different user image. Verify that the chosen user image is set and
762 // persisted. 785 // persisted.
763 const int user_image_index = 786 const int user_image_index =
764 user_manager::kFirstDefaultImageIndex + 787 user_manager::kFirstDefaultImageIndex +
765 (default_image_index - user_manager::kFirstDefaultImageIndex + 1) % 788 (default_image_index - user_manager::kFirstDefaultImageIndex + 1) %
766 user_manager::kDefaultImagesCount; 789 user_manager::kDefaultImagesCount;
767 const gfx::ImageSkia& user_image = 790 const gfx::ImageSkia& user_image =
768 user_manager::GetDefaultImage(user_image_index); 791 user_manager::GetDefaultImage(user_image_index);
769 792
770 UserImageManager* user_image_manager = 793 UserImageManager* user_image_manager =
771 ChromeUserManager::Get()->GetUserImageManager(kEnterpriseUser1); 794 ChromeUserManager::Get()->GetUserImageManager(enterprise_account_id_);
772 user_image_manager->SaveUserDefaultImageIndex(user_image_index); 795 user_image_manager->SaveUserDefaultImageIndex(user_image_index);
773 796
774 EXPECT_TRUE(user->HasDefaultImage()); 797 EXPECT_TRUE(user->HasDefaultImage());
775 EXPECT_EQ(user_image_index, user->image_index()); 798 EXPECT_EQ(user_image_index, user->image_index());
776 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage())); 799 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage()));
777 ExpectNewUserImageInfo(kEnterpriseUser1, user_image_index, base::FilePath()); 800 ExpectNewUserImageInfo(enterprise_account_id_.GetUserEmail(),
801 user_image_index, base::FilePath());
778 } 802 }
779 803
780 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_PolicyOverridesUser) { 804 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_PolicyOverridesUser) {
781 RegisterUser(kEnterpriseUser1); 805 RegisterUser(enterprise_account_id_.GetUserEmail());
782 chromeos::StartupUtils::MarkOobeCompleted(); 806 chromeos::StartupUtils::MarkOobeCompleted();
783 } 807 }
784 808
785 // Verifies that when the user chooses a user image and a different image is 809 // Verifies that when the user chooses a user image and a different image is
786 // then set through policy, the policy takes precedence, overriding the 810 // then set through policy, the policy takes precedence, overriding the
787 // previously chosen image. 811 // previously chosen image.
788 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) { 812 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) {
789 const user_manager::User* user = 813 const user_manager::User* user =
790 user_manager::UserManager::Get()->FindUser(kEnterpriseUser1); 814 user_manager::UserManager::Get()->FindUser(enterprise_account_id_);
791 ASSERT_TRUE(user); 815 ASSERT_TRUE(user);
792 816
793 LoginUser(kEnterpriseUser1); 817 LoginUser(enterprise_account_id_.GetUserEmail());
794 base::RunLoop().RunUntilIdle(); 818 base::RunLoop().RunUntilIdle();
795 819
796 policy::CloudPolicyStore* store = GetStoreForUser(user); 820 policy::CloudPolicyStore* store = GetStoreForUser(user);
797 ASSERT_TRUE(store); 821 ASSERT_TRUE(store);
798 822
799 // Choose a user image. Verify that the chosen user image is set and 823 // Choose a user image. Verify that the chosen user image is set and
800 // persisted. 824 // persisted.
801 const gfx::ImageSkia& default_image = 825 const gfx::ImageSkia& default_image =
802 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex); 826 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
803 827
804 UserImageManager* user_image_manager = 828 UserImageManager* user_image_manager =
805 ChromeUserManager::Get()->GetUserImageManager(kEnterpriseUser1); 829 ChromeUserManager::Get()->GetUserImageManager(enterprise_account_id_);
806 user_image_manager->SaveUserDefaultImageIndex( 830 user_image_manager->SaveUserDefaultImageIndex(
807 user_manager::kFirstDefaultImageIndex); 831 user_manager::kFirstDefaultImageIndex);
808 832
809 EXPECT_TRUE(user->HasDefaultImage()); 833 EXPECT_TRUE(user->HasDefaultImage());
810 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index()); 834 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index());
811 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 835 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
812 ExpectNewUserImageInfo(kEnterpriseUser1, 836 ExpectNewUserImageInfo(enterprise_account_id_.GetUserEmail(),
813 user_manager::kFirstDefaultImageIndex, 837 user_manager::kFirstDefaultImageIndex,
814 base::FilePath()); 838 base::FilePath());
815 839
816 // Set policy. Verify that the policy-provided user image is downloaded, set 840 // Set policy. Verify that the policy-provided user image is downloaded, set
817 // and persisted, overriding the previously set image. 841 // and persisted, overriding the previously set image.
818 user_policy_.payload().mutable_useravatarimage()->set_value( 842 user_policy_.payload().mutable_useravatarimage()->set_value(
819 ConstructPolicy(test::kUserAvatarImage2RelativePath)); 843 ConstructPolicy(test::kUserAvatarImage2RelativePath));
820 user_policy_.Build(); 844 user_policy_.Build();
821 fake_session_manager_client_->set_user_policy(kEnterpriseUser1, 845 fake_session_manager_client_->set_user_policy(
822 user_policy_.GetBlob()); 846 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob());
823 run_loop_.reset(new base::RunLoop); 847 run_loop_.reset(new base::RunLoop);
824 store->Load(); 848 store->Load();
825 run_loop_->Run(); 849 run_loop_->Run();
826 850
827 EXPECT_FALSE(user->HasDefaultImage()); 851 EXPECT_FALSE(user->HasDefaultImage());
828 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 852 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
829 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 853 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
830 ExpectNewUserImageInfo(kEnterpriseUser1, 854 ExpectNewUserImageInfo(
831 user_manager::User::USER_IMAGE_EXTERNAL, 855 enterprise_account_id_.GetUserEmail(),
832 GetUserImagePath(kEnterpriseUser1, "jpg")); 856 user_manager::User::USER_IMAGE_EXTERNAL,
857 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"));
833 858
834 scoped_ptr<gfx::ImageSkia> saved_image = 859 scoped_ptr<gfx::ImageSkia> saved_image =
835 test::ImageLoader(GetUserImagePath(kEnterpriseUser1, "jpg")).Load(); 860 test::ImageLoader(
861 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"))
862 .Load();
836 ASSERT_TRUE(saved_image); 863 ASSERT_TRUE(saved_image);
837 864
838 // Check image dimensions. Images can't be compared since JPEG is lossy. 865 // Check image dimensions. Images can't be compared since JPEG is lossy.
839 EXPECT_EQ(policy_image_->width(), saved_image->width()); 866 EXPECT_EQ(policy_image_->width(), saved_image->width());
840 EXPECT_EQ(policy_image_->height(), saved_image->height()); 867 EXPECT_EQ(policy_image_->height(), saved_image->height());
841 } 868 }
842 869
843 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, 870 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest,
844 PRE_UserDoesNotOverridePolicy) { 871 PRE_UserDoesNotOverridePolicy) {
845 RegisterUser(kEnterpriseUser1); 872 RegisterUser(enterprise_account_id_.GetUserEmail());
846 chromeos::StartupUtils::MarkOobeCompleted(); 873 chromeos::StartupUtils::MarkOobeCompleted();
847 } 874 }
848 875
849 // Verifies that when the user image has been set through policy and the user 876 // Verifies that when the user image has been set through policy and the user
850 // chooses a different image, the policy takes precedence, preventing the user 877 // chooses a different image, the policy takes precedence, preventing the user
851 // from overriding the previously chosen image. 878 // from overriding the previously chosen image.
852 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) { 879 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) {
853 const user_manager::User* user = 880 const user_manager::User* user =
854 user_manager::UserManager::Get()->FindUser(kEnterpriseUser1); 881 user_manager::UserManager::Get()->FindUser(enterprise_account_id_);
855 ASSERT_TRUE(user); 882 ASSERT_TRUE(user);
856 883
857 LoginUser(kEnterpriseUser1); 884 LoginUser(enterprise_account_id_.GetUserEmail());
858 base::RunLoop().RunUntilIdle(); 885 base::RunLoop().RunUntilIdle();
859 886
860 policy::CloudPolicyStore* store = GetStoreForUser(user); 887 policy::CloudPolicyStore* store = GetStoreForUser(user);
861 ASSERT_TRUE(store); 888 ASSERT_TRUE(store);
862 889
863 // Set policy. Verify that the policy-provided user image is downloaded, set 890 // Set policy. Verify that the policy-provided user image is downloaded, set
864 // and persisted. 891 // and persisted.
865 user_policy_.payload().mutable_useravatarimage()->set_value( 892 user_policy_.payload().mutable_useravatarimage()->set_value(
866 ConstructPolicy(test::kUserAvatarImage2RelativePath)); 893 ConstructPolicy(test::kUserAvatarImage2RelativePath));
867 user_policy_.Build(); 894 user_policy_.Build();
868 fake_session_manager_client_->set_user_policy(kEnterpriseUser1, 895 fake_session_manager_client_->set_user_policy(
869 user_policy_.GetBlob()); 896 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob());
870 run_loop_.reset(new base::RunLoop); 897 run_loop_.reset(new base::RunLoop);
871 store->Load(); 898 store->Load();
872 run_loop_->Run(); 899 run_loop_->Run();
873 900
874 EXPECT_FALSE(user->HasDefaultImage()); 901 EXPECT_FALSE(user->HasDefaultImage());
875 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 902 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
876 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 903 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
877 ExpectNewUserImageInfo(kEnterpriseUser1, 904 ExpectNewUserImageInfo(
878 user_manager::User::USER_IMAGE_EXTERNAL, 905 enterprise_account_id_.GetUserEmail(),
879 GetUserImagePath(kEnterpriseUser1, "jpg")); 906 user_manager::User::USER_IMAGE_EXTERNAL,
907 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"));
880 908
881 scoped_ptr<gfx::ImageSkia> saved_image = 909 scoped_ptr<gfx::ImageSkia> saved_image =
882 test::ImageLoader(GetUserImagePath(kEnterpriseUser1, "jpg")).Load(); 910 test::ImageLoader(
911 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"))
912 .Load();
883 ASSERT_TRUE(saved_image); 913 ASSERT_TRUE(saved_image);
884 914
885 // Check image dimensions. Images can't be compared since JPEG is lossy. 915 // Check image dimensions. Images can't be compared since JPEG is lossy.
886 EXPECT_EQ(policy_image_->width(), saved_image->width()); 916 EXPECT_EQ(policy_image_->width(), saved_image->width());
887 EXPECT_EQ(policy_image_->height(), saved_image->height()); 917 EXPECT_EQ(policy_image_->height(), saved_image->height());
888 918
889 // Choose a different user image. Verify that the user image does not change 919 // Choose a different user image. Verify that the user image does not change
890 // as policy takes precedence. 920 // as policy takes precedence.
891 UserImageManager* user_image_manager = 921 UserImageManager* user_image_manager =
892 ChromeUserManager::Get()->GetUserImageManager(kEnterpriseUser1); 922 ChromeUserManager::Get()->GetUserImageManager(enterprise_account_id_);
893 user_image_manager->SaveUserDefaultImageIndex( 923 user_image_manager->SaveUserDefaultImageIndex(
894 user_manager::kFirstDefaultImageIndex); 924 user_manager::kFirstDefaultImageIndex);
895 925
896 EXPECT_FALSE(user->HasDefaultImage()); 926 EXPECT_FALSE(user->HasDefaultImage());
897 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 927 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
898 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 928 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
899 ExpectNewUserImageInfo(kEnterpriseUser1, 929 ExpectNewUserImageInfo(
900 user_manager::User::USER_IMAGE_EXTERNAL, 930 enterprise_account_id_.GetUserEmail(),
901 GetUserImagePath(kEnterpriseUser1, "jpg")); 931 user_manager::User::USER_IMAGE_EXTERNAL,
932 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"));
902 933
903 saved_image = 934 saved_image =
904 test::ImageLoader(GetUserImagePath(kEnterpriseUser1, "jpg")).Load(); 935 test::ImageLoader(
936 GetUserImagePath(enterprise_account_id_.GetUserEmail(), "jpg"))
937 .Load();
905 ASSERT_TRUE(saved_image); 938 ASSERT_TRUE(saved_image);
906 939
907 // Check image dimensions. Images can't be compared since JPEG is lossy. 940 // Check image dimensions. Images can't be compared since JPEG is lossy.
908 EXPECT_EQ(policy_image_->width(), saved_image->width()); 941 EXPECT_EQ(policy_image_->width(), saved_image->width());
909 EXPECT_EQ(policy_image_->height(), saved_image->height()); 942 EXPECT_EQ(policy_image_->height(), saved_image->height());
910 } 943 }
911 944
912 } // namespace chromeos 945 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698