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

Side by Side Diff: chrome/browser/chromeos/login/users/avatar/user_image_manager_browsertest.cc

Issue 402133003: [cros, user_manager] Move default user images constants and helper functions out of src/chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: re-format Created 6 years, 5 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 | Annotate | Revision Log
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"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
13 #include "base/json/json_writer.h" 13 #include "base/json/json_writer.h"
14 #include "base/memory/linked_ptr.h" 14 #include "base/memory/linked_ptr.h"
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/memory/ref_counted_memory.h" 16 #include "base/memory/ref_counted_memory.h"
17 #include "base/memory/scoped_ptr.h" 17 #include "base/memory/scoped_ptr.h"
18 #include "base/message_loop/message_loop_proxy.h" 18 #include "base/message_loop/message_loop_proxy.h"
19 #include "base/path_service.h" 19 #include "base/path_service.h"
20 #include "base/prefs/pref_change_registrar.h" 20 #include "base/prefs/pref_change_registrar.h"
21 #include "base/prefs/pref_service.h" 21 #include "base/prefs/pref_service.h"
22 #include "base/prefs/scoped_user_pref_update.h" 22 #include "base/prefs/scoped_user_pref_update.h"
23 #include "base/run_loop.h" 23 #include "base/run_loop.h"
24 #include "base/time/time.h" 24 #include "base/time/time.h"
25 #include "base/values.h" 25 #include "base/values.h"
26 #include "chrome/browser/browser_process.h" 26 #include "chrome/browser/browser_process.h"
27 #include "chrome/browser/chrome_notification_types.h" 27 #include "chrome/browser/chrome_notification_types.h"
28 #include "chrome/browser/chromeos/login/login_manager_test.h" 28 #include "chrome/browser/chromeos/login/login_manager_test.h"
29 #include "chrome/browser/chromeos/login/startup_utils.h" 29 #include "chrome/browser/chromeos/login/startup_utils.h"
30 #include "chrome/browser/chromeos/login/users/avatar/default_user_images.h"
31 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" 30 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h"
32 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" 31 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h"
33 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_test_uti l.h" 32 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_test_uti l.h"
34 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" 33 #include "chrome/browser/chromeos/login/users/mock_user_manager.h"
35 #include "chrome/browser/chromeos/login/users/user.h" 34 #include "chrome/browser/chromeos/login/users/user.h"
36 #include "chrome/browser/chromeos/login/users/user_manager.h" 35 #include "chrome/browser/chromeos/login/users/user_manager.h"
37 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u til.h" 36 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u til.h"
38 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" 37 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
39 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h" 38 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h"
40 #include "chrome/browser/chromeos/profiles/profile_helper.h" 39 #include "chrome/browser/chromeos/profiles/profile_helper.h"
41 #include "chrome/browser/profiles/profile.h" 40 #include "chrome/browser/profiles/profile.h"
42 #include "chrome/browser/profiles/profile_downloader.h" 41 #include "chrome/browser/profiles/profile_downloader.h"
43 #include "chrome/common/chrome_paths.h" 42 #include "chrome/common/chrome_paths.h"
44 #include "chrome/test/base/in_process_browser_test.h" 43 #include "chrome/test/base/in_process_browser_test.h"
45 #include "chrome/test/base/testing_browser_process.h" 44 #include "chrome/test/base/testing_browser_process.h"
46 #include "chromeos/chromeos_paths.h" 45 #include "chromeos/chromeos_paths.h"
47 #include "chromeos/dbus/cryptohome_client.h" 46 #include "chromeos/dbus/cryptohome_client.h"
48 #include "chromeos/dbus/dbus_thread_manager.h" 47 #include "chromeos/dbus/dbus_thread_manager.h"
49 #include "chromeos/dbus/fake_dbus_thread_manager.h" 48 #include "chromeos/dbus/fake_dbus_thread_manager.h"
50 #include "chromeos/dbus/fake_session_manager_client.h" 49 #include "chromeos/dbus/fake_session_manager_client.h"
51 #include "chromeos/dbus/session_manager_client.h" 50 #include "chromeos/dbus/session_manager_client.h"
52 #include "components/policy/core/common/cloud/cloud_policy_core.h" 51 #include "components/policy/core/common/cloud/cloud_policy_core.h"
53 #include "components/policy/core/common/cloud/cloud_policy_store.h" 52 #include "components/policy/core/common/cloud/cloud_policy_store.h"
54 #include "components/policy/core/common/cloud/policy_builder.h" 53 #include "components/policy/core/common/cloud/policy_builder.h"
54 #include "components/user_manager/user_image/default_user_images.h"
55 #include "components/user_manager/user_image/user_image.h" 55 #include "components/user_manager/user_image/user_image.h"
56 #include "content/public/browser/notification_service.h" 56 #include "content/public/browser/notification_service.h"
57 #include "content/public/browser/notification_source.h" 57 #include "content/public/browser/notification_source.h"
58 #include "content/public/test/test_utils.h" 58 #include "content/public/test/test_utils.h"
59 #include "crypto/rsa_private_key.h" 59 #include "crypto/rsa_private_key.h"
60 #include "google_apis/gaia/gaia_oauth_client.h" 60 #include "google_apis/gaia/gaia_oauth_client.h"
61 #include "google_apis/gaia/oauth2_token_service.h" 61 #include "google_apis/gaia/oauth2_token_service.h"
62 #include "net/test/embedded_test_server/embedded_test_server.h" 62 #include "net/test/embedded_test_server/embedded_test_server.h"
63 #include "net/url_request/test_url_fetcher_factory.h" 63 #include "net/url_request/test_url_fetcher_factory.h"
64 #include "net/url_request/url_fetcher_delegate.h" 64 #include "net/url_request/url_fetcher_delegate.h"
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 293
294 scoped_ptr<base::RunLoop> run_loop_; 294 scoped_ptr<base::RunLoop> run_loop_;
295 295
296 private: 296 private:
297 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest); 297 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest);
298 }; 298 };
299 299
300 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { 300 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) {
301 // Setup an old default (stock) user image. 301 // Setup an old default (stock) user image.
302 ScopedUserManagerEnabler(new MockUserManager); 302 ScopedUserManagerEnabler(new MockUserManager);
303 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 303 SetOldUserImageInfo(
304 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
304 } 305 }
305 306
306 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) { 307 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, DefaultUserImagePreserved) {
307 UserManager::Get()->GetUsers(); // Load users. 308 UserManager::Get()->GetUsers(); // Load users.
308 // Old info preserved. 309 // Old info preserved.
309 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 310 ExpectOldUserImageInfo(
311 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
310 LogIn(kTestUser1); 312 LogIn(kTestUser1);
311 // Image info is migrated now. 313 // Image info is migrated now.
312 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 314 ExpectNewUserImageInfo(
315 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
313 } 316 }
314 317
315 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) { 318 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_OtherUsersUnaffected) {
316 // Setup two users with stock images. 319 // Setup two users with stock images.
317 ScopedUserManagerEnabler(new MockUserManager); 320 ScopedUserManagerEnabler(new MockUserManager);
318 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 321 SetOldUserImageInfo(
319 SetOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, 322 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
320 base::FilePath()); 323 SetOldUserImageInfo(
324 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath());
321 } 325 }
322 326
323 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) { 327 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, OtherUsersUnaffected) {
324 UserManager::Get()->GetUsers(); // Load users. 328 UserManager::Get()->GetUsers(); // Load users.
325 // Old info preserved. 329 // Old info preserved.
326 ExpectOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 330 ExpectOldUserImageInfo(
327 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, 331 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
328 base::FilePath()); 332 ExpectOldUserImageInfo(
333 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath());
329 LogIn(kTestUser1); 334 LogIn(kTestUser1);
330 // Image info is migrated for the first user and unaffected for the rest. 335 // Image info is migrated for the first user and unaffected for the rest.
331 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 336 ExpectNewUserImageInfo(
332 ExpectOldUserImageInfo(kTestUser2, kFirstDefaultImageIndex + 1, 337 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
333 base::FilePath()); 338 ExpectOldUserImageInfo(
339 kTestUser2, user_manager::kFirstDefaultImageIndex + 1, base::FilePath());
334 } 340 }
335 341
336 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) { 342 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_PRE_NonJPEGImageFromFile) {
337 // Setup a user with non-JPEG image. 343 // Setup a user with non-JPEG image.
338 ScopedUserManagerEnabler(new MockUserManager); 344 ScopedUserManagerEnabler(new MockUserManager);
339 SaveUserImagePNG( 345 SaveUserImagePNG(kTestUser1,
340 kTestUser1, kDefaultImageResourceIDs[kFirstDefaultImageIndex]); 346 user_manager::kDefaultImageResourceIDs
347 [user_manager::kFirstDefaultImageIndex]);
341 } 348 }
342 349
343 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) { 350 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_NonJPEGImageFromFile) {
344 UserManager::Get()->GetUsers(); // Load users. 351 UserManager::Get()->GetUsers(); // Load users.
345 // Old info preserved. 352 // Old info preserved.
346 ExpectOldUserImageInfo(kTestUser1, User::kExternalImageIndex, 353 ExpectOldUserImageInfo(kTestUser1, User::kExternalImageIndex,
347 GetUserImagePath(kTestUser1, "png")); 354 GetUserImagePath(kTestUser1, "png"));
348 const User* user = UserManager::Get()->FindUser(kTestUser1); 355 const User* user = UserManager::Get()->FindUser(kTestUser1);
349 EXPECT_TRUE(user->image_is_stub()); 356 EXPECT_TRUE(user->image_is_stub());
350 357
351 base::RunLoop run_loop; 358 base::RunLoop run_loop;
352 PrefChangeRegistrar pref_change_registrar_; 359 PrefChangeRegistrar pref_change_registrar_;
353 pref_change_registrar_.Init(local_state_); 360 pref_change_registrar_.Init(local_state_);
354 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure()); 361 pref_change_registrar_.Add("UserImages", run_loop.QuitClosure());
355 LogIn(kTestUser1); 362 LogIn(kTestUser1);
356 363
357 // Wait for migration. 364 // Wait for migration.
358 run_loop.Run(); 365 run_loop.Run();
359 366
360 // Image info is migrated and the image is converted to JPG. 367 // Image info is migrated and the image is converted to JPG.
361 ExpectNewUserImageInfo(kTestUser1, User::kExternalImageIndex, 368 ExpectNewUserImageInfo(kTestUser1, User::kExternalImageIndex,
362 GetUserImagePath(kTestUser1, "jpg")); 369 GetUserImagePath(kTestUser1, "jpg"));
363 user = UserManager::Get()->GetLoggedInUser(); 370 user = UserManager::Get()->GetLoggedInUser();
364 ASSERT_TRUE(user); 371 ASSERT_TRUE(user);
365 EXPECT_FALSE(user->image_is_safe_format()); 372 EXPECT_FALSE(user->image_is_safe_format());
366 // Check image dimensions. 373 // Check image dimensions.
367 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); 374 const gfx::ImageSkia& saved_image =
375 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
368 EXPECT_EQ(saved_image.width(), user->GetImage().width()); 376 EXPECT_EQ(saved_image.width(), user->GetImage().width());
369 EXPECT_EQ(saved_image.height(), user->GetImage().height()); 377 EXPECT_EQ(saved_image.height(), user->GetImage().height());
370 } 378 }
371 379
372 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) { 380 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, NonJPEGImageFromFile) {
373 UserManager::Get()->GetUsers(); // Load users. 381 UserManager::Get()->GetUsers(); // Load users.
374 const User* user = UserManager::Get()->FindUser(kTestUser1); 382 const User* user = UserManager::Get()->FindUser(kTestUser1);
375 ASSERT_TRUE(user); 383 ASSERT_TRUE(user);
376 // Wait for image load. 384 // Wait for image load.
377 if (user->image_index() == User::kInvalidImageIndex) { 385 if (user->image_index() == User::kInvalidImageIndex) {
378 content::WindowedNotificationObserver( 386 content::WindowedNotificationObserver(
379 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, 387 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
380 content::NotificationService::AllSources()).Wait(); 388 content::NotificationService::AllSources()).Wait();
381 } 389 }
382 // Now the migrated image is used. 390 // Now the migrated image is used.
383 EXPECT_TRUE(user->image_is_safe_format()); 391 EXPECT_TRUE(user->image_is_safe_format());
384 // Check image dimensions. Images can't be compared since JPEG is lossy. 392 // Check image dimensions. Images can't be compared since JPEG is lossy.
385 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); 393 const gfx::ImageSkia& saved_image =
394 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
386 EXPECT_EQ(saved_image.width(), user->GetImage().width()); 395 EXPECT_EQ(saved_image.width(), user->GetImage().width());
387 EXPECT_EQ(saved_image.height(), user->GetImage().height()); 396 EXPECT_EQ(saved_image.height(), user->GetImage().height());
388 } 397 }
389 398
390 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { 399 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) {
391 RegisterUser(kTestUser1); 400 RegisterUser(kTestUser1);
392 } 401 }
393 402
394 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the 403 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the
395 // chosen user image. 404 // chosen user image.
396 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { 405 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) {
397 const User* user = UserManager::Get()->FindUser(kTestUser1); 406 const User* user = UserManager::Get()->FindUser(kTestUser1);
398 ASSERT_TRUE(user); 407 ASSERT_TRUE(user);
399 408
400 const gfx::ImageSkia& default_image = 409 const gfx::ImageSkia& default_image =
401 GetDefaultImage(kFirstDefaultImageIndex); 410 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
402 411
403 UserImageManager* user_image_manager = 412 UserImageManager* user_image_manager =
404 UserManager::Get()->GetUserImageManager(kTestUser1); 413 UserManager::Get()->GetUserImageManager(kTestUser1);
405 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); 414 user_image_manager->SaveUserDefaultImageIndex(
415 user_manager::kFirstDefaultImageIndex);
406 416
407 EXPECT_TRUE(user->HasDefaultImage()); 417 EXPECT_TRUE(user->HasDefaultImage());
408 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); 418 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index());
409 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 419 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
410 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 420 ExpectNewUserImageInfo(
421 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
411 } 422 }
412 423
413 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { 424 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) {
414 RegisterUser(kTestUser1); 425 RegisterUser(kTestUser1);
415 } 426 }
416 427
417 // Verifies that SaveUserImage() correctly sets and persists the chosen user 428 // Verifies that SaveUserImage() correctly sets and persists the chosen user
418 // image. 429 // image.
419 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { 430 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) {
420 const User* user = UserManager::Get()->FindUser(kTestUser1); 431 const User* user = UserManager::Get()->FindUser(kTestUser1);
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 // Sets the user image to the profile image, then sets it to one of the default 551 // Sets the user image to the profile image, then sets it to one of the default
541 // images while the profile image download is still in progress. Verifies that 552 // images while the profile image download is still in progress. Verifies that
542 // when the download completes, the profile image is ignored and does not 553 // when the download completes, the profile image is ignored and does not
543 // clobber the default image chosen in the meantime. 554 // clobber the default image chosen in the meantime.
544 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, 555 IN_PROC_BROWSER_TEST_F(UserImageManagerTest,
545 ProfileImageDownloadDoesNotClobber) { 556 ProfileImageDownloadDoesNotClobber) {
546 const User* user = UserManager::Get()->FindUser(kTestUser1); 557 const User* user = UserManager::Get()->FindUser(kTestUser1);
547 ASSERT_TRUE(user); 558 ASSERT_TRUE(user);
548 559
549 const gfx::ImageSkia& default_image = 560 const gfx::ImageSkia& default_image =
550 GetDefaultImage(kFirstDefaultImageIndex); 561 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
551 562
552 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); 563 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting();
553 LoginUser(kTestUser1); 564 LoginUser(kTestUser1);
554 565
555 run_loop_.reset(new base::RunLoop); 566 run_loop_.reset(new base::RunLoop);
556 UserImageManager* user_image_manager = 567 UserImageManager* user_image_manager =
557 UserManager::Get()->GetUserImageManager(kTestUser1); 568 UserManager::Get()->GetUserImageManager(kTestUser1);
558 user_image_manager->SaveUserImageFromProfileImage(); 569 user_image_manager->SaveUserImageFromProfileImage();
559 run_loop_->Run(); 570 run_loop_->Run();
560 571
561 net::TestURLFetcherFactory url_fetcher_factory; 572 net::TestURLFetcherFactory url_fetcher_factory;
562 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); 573 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory);
563 574
564 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); 575 user_image_manager->SaveUserDefaultImageIndex(
576 user_manager::kFirstDefaultImageIndex);
565 577
566 CompleteProfileImageDownload(&url_fetcher_factory); 578 CompleteProfileImageDownload(&url_fetcher_factory);
567 579
568 EXPECT_TRUE(user->HasDefaultImage()); 580 EXPECT_TRUE(user->HasDefaultImage());
569 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); 581 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index());
570 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 582 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
571 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 583 ExpectNewUserImageInfo(
584 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
572 } 585 }
573 586
574 class UserImageManagerPolicyTest : public UserImageManagerTest, 587 class UserImageManagerPolicyTest : public UserImageManagerTest,
575 public policy::CloudPolicyStore::Observer { 588 public policy::CloudPolicyStore::Observer {
576 protected: 589 protected:
577 UserImageManagerPolicyTest() 590 UserImageManagerPolicyTest()
578 : fake_dbus_thread_manager_(new chromeos::FakeDBusThreadManager), 591 : fake_dbus_thread_manager_(new chromeos::FakeDBusThreadManager),
579 fake_session_manager_client_(new chromeos::FakeSessionManagerClient) { 592 fake_session_manager_client_(new chromeos::FakeSessionManagerClient) {
580 fake_dbus_thread_manager_->SetFakeClients(); 593 fake_dbus_thread_manager_->SetFakeClients();
581 fake_dbus_thread_manager_->SetSessionManagerClient( 594 fake_dbus_thread_manager_->SetSessionManagerClient(
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 user_policy_.GetBlob()); 716 user_policy_.GetBlob());
704 run_loop_.reset(new base::RunLoop); 717 run_loop_.reset(new base::RunLoop);
705 store->AddObserver(this); 718 store->AddObserver(this);
706 store->Load(); 719 store->Load();
707 run_loop_->Run(); 720 run_loop_->Run();
708 store->RemoveObserver(this); 721 store->RemoveObserver(this);
709 base::RunLoop().RunUntilIdle(); 722 base::RunLoop().RunUntilIdle();
710 723
711 const int default_image_index = user->image_index(); 724 const int default_image_index = user->image_index();
712 EXPECT_TRUE(user->HasDefaultImage()); 725 EXPECT_TRUE(user->HasDefaultImage());
713 ASSERT_LE(kFirstDefaultImageIndex, default_image_index); 726 ASSERT_LE(user_manager::kFirstDefaultImageIndex, default_image_index);
714 ASSERT_GT(kFirstDefaultImageIndex + kDefaultImagesCount, default_image_index); 727 ASSERT_GT(
715 const gfx::ImageSkia& default_image = GetDefaultImage(default_image_index); 728 user_manager::kFirstDefaultImageIndex + user_manager::kDefaultImagesCount,
729 default_image_index);
730 const gfx::ImageSkia& default_image =
731 user_manager::GetDefaultImage(default_image_index);
716 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 732 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
717 ExpectNewUserImageInfo(kTestUser1, default_image_index, base::FilePath()); 733 ExpectNewUserImageInfo(kTestUser1, default_image_index, base::FilePath());
718 734
719 // Choose a different user image. Verify that the chosen user image is set and 735 // Choose a different user image. Verify that the chosen user image is set and
720 // persisted. 736 // persisted.
721 const int user_image_index = kFirstDefaultImageIndex + 737 const int user_image_index =
722 (default_image_index - kFirstDefaultImageIndex + 1) % kDefaultImagesCount; 738 user_manager::kFirstDefaultImageIndex +
723 const gfx::ImageSkia& user_image = GetDefaultImage(user_image_index); 739 (default_image_index - user_manager::kFirstDefaultImageIndex + 1) %
740 user_manager::kDefaultImagesCount;
741 const gfx::ImageSkia& user_image =
742 user_manager::GetDefaultImage(user_image_index);
724 743
725 UserImageManager* user_image_manager = 744 UserImageManager* user_image_manager =
726 UserManager::Get()->GetUserImageManager(kTestUser1); 745 UserManager::Get()->GetUserImageManager(kTestUser1);
727 user_image_manager->SaveUserDefaultImageIndex(user_image_index); 746 user_image_manager->SaveUserDefaultImageIndex(user_image_index);
728 747
729 EXPECT_TRUE(user->HasDefaultImage()); 748 EXPECT_TRUE(user->HasDefaultImage());
730 EXPECT_EQ(user_image_index, user->image_index()); 749 EXPECT_EQ(user_image_index, user->image_index());
731 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage())); 750 EXPECT_TRUE(test::AreImagesEqual(user_image, user->GetImage()));
732 ExpectNewUserImageInfo(kTestUser1, user_image_index, base::FilePath()); 751 ExpectNewUserImageInfo(kTestUser1, user_image_index, base::FilePath());
733 } 752 }
(...skipping 12 matching lines...) Expand all
746 765
747 LoginUser(kTestUser1); 766 LoginUser(kTestUser1);
748 base::RunLoop().RunUntilIdle(); 767 base::RunLoop().RunUntilIdle();
749 768
750 policy::CloudPolicyStore* store = GetStoreForUser(user); 769 policy::CloudPolicyStore* store = GetStoreForUser(user);
751 ASSERT_TRUE(store); 770 ASSERT_TRUE(store);
752 771
753 // Choose a user image. Verify that the chosen user image is set and 772 // Choose a user image. Verify that the chosen user image is set and
754 // persisted. 773 // persisted.
755 const gfx::ImageSkia& default_image = 774 const gfx::ImageSkia& default_image =
756 GetDefaultImage(kFirstDefaultImageIndex); 775 user_manager::GetDefaultImage(user_manager::kFirstDefaultImageIndex);
757 776
758 UserImageManager* user_image_manager = 777 UserImageManager* user_image_manager =
759 UserManager::Get()->GetUserImageManager(kTestUser1); 778 UserManager::Get()->GetUserImageManager(kTestUser1);
760 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); 779 user_image_manager->SaveUserDefaultImageIndex(
780 user_manager::kFirstDefaultImageIndex);
761 781
762 EXPECT_TRUE(user->HasDefaultImage()); 782 EXPECT_TRUE(user->HasDefaultImage());
763 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); 783 EXPECT_EQ(user_manager::kFirstDefaultImageIndex, user->image_index());
764 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 784 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
765 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); 785 ExpectNewUserImageInfo(
786 kTestUser1, user_manager::kFirstDefaultImageIndex, base::FilePath());
766 787
767 // Set policy. Verify that the policy-provided user image is downloaded, set 788 // Set policy. Verify that the policy-provided user image is downloaded, set
768 // and persisted, overriding the previously set image. 789 // and persisted, overriding the previously set image.
769 user_policy_.payload().mutable_useravatarimage()->set_value( 790 user_policy_.payload().mutable_useravatarimage()->set_value(
770 ConstructPolicy(test::kUserAvatarImage2RelativePath)); 791 ConstructPolicy(test::kUserAvatarImage2RelativePath));
771 user_policy_.Build(); 792 user_policy_.Build();
772 fake_session_manager_client_->set_user_policy(kTestUser1, 793 fake_session_manager_client_->set_user_policy(kTestUser1,
773 user_policy_.GetBlob()); 794 user_policy_.GetBlob());
774 run_loop_.reset(new base::RunLoop); 795 run_loop_.reset(new base::RunLoop);
775 store->Load(); 796 store->Load();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 ASSERT_TRUE(saved_image); 854 ASSERT_TRUE(saved_image);
834 855
835 // Check image dimensions. Images can't be compared since JPEG is lossy. 856 // Check image dimensions. Images can't be compared since JPEG is lossy.
836 EXPECT_EQ(policy_image_->width(), saved_image->width()); 857 EXPECT_EQ(policy_image_->width(), saved_image->width());
837 EXPECT_EQ(policy_image_->height(), saved_image->height()); 858 EXPECT_EQ(policy_image_->height(), saved_image->height());
838 859
839 // Choose a different user image. Verify that the user image does not change 860 // Choose a different user image. Verify that the user image does not change
840 // as policy takes precedence. 861 // as policy takes precedence.
841 UserImageManager* user_image_manager = 862 UserImageManager* user_image_manager =
842 UserManager::Get()->GetUserImageManager(kTestUser1); 863 UserManager::Get()->GetUserImageManager(kTestUser1);
843 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); 864 user_image_manager->SaveUserDefaultImageIndex(
865 user_manager::kFirstDefaultImageIndex);
844 866
845 EXPECT_FALSE(user->HasDefaultImage()); 867 EXPECT_FALSE(user->HasDefaultImage());
846 EXPECT_EQ(User::kExternalImageIndex, user->image_index()); 868 EXPECT_EQ(User::kExternalImageIndex, user->image_index());
847 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 869 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
848 ExpectNewUserImageInfo(kTestUser1, 870 ExpectNewUserImageInfo(kTestUser1,
849 User::kExternalImageIndex, 871 User::kExternalImageIndex,
850 GetUserImagePath(kTestUser1, "jpg")); 872 GetUserImagePath(kTestUser1, "jpg"));
851 873
852 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); 874 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load();
853 ASSERT_TRUE(saved_image); 875 ASSERT_TRUE(saved_image);
854 876
855 // Check image dimensions. Images can't be compared since JPEG is lossy. 877 // Check image dimensions. Images can't be compared since JPEG is lossy.
856 EXPECT_EQ(policy_image_->width(), saved_image->width()); 878 EXPECT_EQ(policy_image_->width(), saved_image->width());
857 EXPECT_EQ(policy_image_->height(), saved_image->height()); 879 EXPECT_EQ(policy_image_->height(), saved_image->height());
858 } 880 }
859 881
860 } // namespace chromeos 882 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698