OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/default_user_images.h" | 28 #include "chrome/browser/chromeos/login/default_user_images.h" |
29 #include "chrome/browser/chromeos/login/login_manager_test.h" | 29 #include "chrome/browser/chromeos/login/login_manager_test_helper.h" |
30 #include "chrome/browser/chromeos/login/mock_user_manager.h" | 30 #include "chrome/browser/chromeos/login/mock_user_manager.h" |
31 #include "chrome/browser/chromeos/login/startup_utils.h" | 31 #include "chrome/browser/chromeos/login/startup_utils.h" |
32 #include "chrome/browser/chromeos/login/user.h" | 32 #include "chrome/browser/chromeos/login/user.h" |
33 #include "chrome/browser/chromeos/login/user_image.h" | 33 #include "chrome/browser/chromeos/login/user_image.h" |
34 #include "chrome/browser/chromeos/login/user_image_manager.h" | 34 #include "chrome/browser/chromeos/login/user_image_manager.h" |
35 #include "chrome/browser/chromeos/login/user_image_manager_impl.h" | 35 #include "chrome/browser/chromeos/login/user_image_manager_impl.h" |
36 #include "chrome/browser/chromeos/login/user_image_manager_test_util.h" | 36 #include "chrome/browser/chromeos/login/user_image_manager_test_util.h" |
37 #include "chrome/browser/chromeos/login/user_manager.h" | 37 #include "chrome/browser/chromeos/login/user_manager.h" |
38 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u
til.h" | 38 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u
til.h" |
39 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" | 39 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 policy::UserCloudPolicyManagerFactoryChromeOS::GetForProfile(profile); | 87 policy::UserCloudPolicyManagerFactoryChromeOS::GetForProfile(profile); |
88 if (!policy_manager) { | 88 if (!policy_manager) { |
89 ADD_FAILURE(); | 89 ADD_FAILURE(); |
90 return NULL; | 90 return NULL; |
91 } | 91 } |
92 return policy_manager->core()->store(); | 92 return policy_manager->core()->store(); |
93 } | 93 } |
94 | 94 |
95 } // namespace | 95 } // namespace |
96 | 96 |
97 class UserImageManagerTest : public LoginManagerTest, | 97 class UserImageManagerTest : public InProcessBrowserTest, |
98 public UserManager::Observer { | 98 public UserManager::Observer { |
99 protected: | 99 protected: |
100 UserImageManagerTest() : LoginManagerTest(true) { | 100 UserImageManagerTest() |
| 101 : login_manager_test_helper_(new LoginManagerTestHelper) { |
| 102 set_exit_when_last_browser_closes(false); |
101 } | 103 } |
102 | 104 |
103 // LoginManagerTest overrides: | 105 // InProcessBrowserTest overrides: |
104 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | 106 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
105 LoginManagerTest::SetUpInProcessBrowserTestFixture(); | 107 login_manager_test_helper_->SetUpLoginUtils(true); |
106 | 108 |
107 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); | 109 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); |
108 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); | 110 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); |
109 } | 111 } |
110 | 112 |
111 virtual void SetUpOnMainThread() OVERRIDE { | 113 virtual void SetUpOnMainThread() OVERRIDE { |
112 LoginManagerTest::SetUpOnMainThread(); | 114 login_manager_test_helper_->SetUp(); |
113 local_state_ = g_browser_process->local_state(); | 115 local_state_ = g_browser_process->local_state(); |
114 UserManager::Get()->AddObserver(this); | 116 UserManager::Get()->AddObserver(this); |
115 } | 117 } |
116 | 118 |
117 virtual void TearDownOnMainThread() OVERRIDE { | 119 virtual void TearDownOnMainThread() OVERRIDE { |
118 UserManager::Get()->RemoveObserver(this); | 120 UserManager::Get()->RemoveObserver(this); |
119 LoginManagerTest::TearDownOnMainThread(); | 121 InProcessBrowserTest::TearDownOnMainThread(); |
| 122 } |
| 123 |
| 124 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
| 125 login_manager_test_helper_->SetUpCommandLine(command_line); |
| 126 } |
| 127 |
| 128 virtual void CleanUpOnMainThread() OVERRIDE { |
| 129 login_manager_test_helper_->CleanUp(); |
120 } | 130 } |
121 | 131 |
122 // UserManager::Observer overrides: | 132 // UserManager::Observer overrides: |
123 virtual void LocalStateChanged(UserManager* user_manager) OVERRIDE { | 133 virtual void LocalStateChanged(UserManager* user_manager) OVERRIDE { |
124 if (run_loop_) | 134 if (run_loop_) |
125 run_loop_->Quit(); | 135 run_loop_->Quit(); |
126 } | 136 } |
127 | 137 |
128 // Logs in |username|. | 138 // Logs in |username|. |
129 void LogIn(const std::string& username) { | 139 void LogIn(const std::string& username) { |
130 UserManager::Get()->UserLoggedIn(username, username, false); | 140 UserManager::Get()->UserLoggedIn(username, username, false); |
131 } | 141 } |
132 | 142 |
133 // Stores old (pre-migration) user image info. | 143 // Stores old (pre-migration) user image info. |
134 void SetOldUserImageInfo(const std::string& username, | 144 void SetOldUserImageInfo(const std::string& username, |
135 int image_index, | 145 int image_index, |
136 const base::FilePath& image_path) { | 146 const base::FilePath& image_path) { |
137 RegisterUser(username); | 147 login_manager_test_helper_->RegisterUser(username); |
138 DictionaryPrefUpdate images_pref(local_state_, "UserImages"); | 148 DictionaryPrefUpdate images_pref(local_state_, "UserImages"); |
139 base::DictionaryValue* image_properties = new base::DictionaryValue(); | 149 base::DictionaryValue* image_properties = new base::DictionaryValue(); |
140 image_properties->Set( | 150 image_properties->Set( |
141 "index", base::Value::CreateIntegerValue(image_index)); | 151 "index", base::Value::CreateIntegerValue(image_index)); |
142 image_properties->Set( | 152 image_properties->Set( |
143 "path" , new base::StringValue(image_path.value())); | 153 "path" , new base::StringValue(image_path.value())); |
144 images_pref->SetWithoutPathExpansion(username, image_properties); | 154 images_pref->SetWithoutPathExpansion(username, image_properties); |
145 } | 155 } |
146 | 156 |
147 // Verifies user image info in |images_pref| dictionary. | 157 // Verifies user image info in |images_pref| dictionary. |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 run_loop_->Run(); | 293 run_loop_->Run(); |
284 } | 294 } |
285 } | 295 } |
286 | 296 |
287 base::FilePath test_data_dir_; | 297 base::FilePath test_data_dir_; |
288 base::FilePath user_data_dir_; | 298 base::FilePath user_data_dir_; |
289 | 299 |
290 PrefService* local_state_; | 300 PrefService* local_state_; |
291 | 301 |
292 scoped_ptr<gfx::ImageSkia> decoded_image_; | 302 scoped_ptr<gfx::ImageSkia> decoded_image_; |
293 | 303 scoped_ptr<LoginManagerTestHelper> login_manager_test_helper_; |
294 scoped_ptr<base::RunLoop> run_loop_; | 304 scoped_ptr<base::RunLoop> run_loop_; |
295 | 305 |
296 private: | 306 private: |
297 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest); | 307 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest); |
298 }; | 308 }; |
299 | 309 |
300 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { | 310 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { |
301 // Setup an old default (stock) user image. | 311 // Setup an old default (stock) user image. |
302 ScopedUserManagerEnabler(new MockUserManager); | 312 ScopedUserManagerEnabler(new MockUserManager); |
303 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 313 SetOldUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 } | 391 } |
382 // Now the migrated image is used. | 392 // Now the migrated image is used. |
383 EXPECT_TRUE(user->image_is_safe_format()); | 393 EXPECT_TRUE(user->image_is_safe_format()); |
384 // Check image dimensions. Images can't be compared since JPEG is lossy. | 394 // Check image dimensions. Images can't be compared since JPEG is lossy. |
385 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); | 395 const gfx::ImageSkia& saved_image = GetDefaultImage(kFirstDefaultImageIndex); |
386 EXPECT_EQ(saved_image.width(), user->GetImage().width()); | 396 EXPECT_EQ(saved_image.width(), user->GetImage().width()); |
387 EXPECT_EQ(saved_image.height(), user->GetImage().height()); | 397 EXPECT_EQ(saved_image.height(), user->GetImage().height()); |
388 } | 398 } |
389 | 399 |
390 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { | 400 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserDefaultImageIndex) { |
391 RegisterUser(kTestUser1); | 401 login_manager_test_helper_->RegisterUser(kTestUser1); |
392 } | 402 } |
393 | 403 |
394 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the | 404 // Verifies that SaveUserDefaultImageIndex() correctly sets and persists the |
395 // chosen user image. | 405 // chosen user image. |
396 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { | 406 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserDefaultImageIndex) { |
397 const User* user = UserManager::Get()->FindUser(kTestUser1); | 407 const User* user = UserManager::Get()->FindUser(kTestUser1); |
398 ASSERT_TRUE(user); | 408 ASSERT_TRUE(user); |
399 | 409 |
400 const gfx::ImageSkia& default_image = | 410 const gfx::ImageSkia& default_image = |
401 GetDefaultImage(kFirstDefaultImageIndex); | 411 GetDefaultImage(kFirstDefaultImageIndex); |
402 | 412 |
403 UserImageManager* user_image_manager = | 413 UserImageManager* user_image_manager = |
404 UserManager::Get()->GetUserImageManager(kTestUser1); | 414 UserManager::Get()->GetUserImageManager(kTestUser1); |
405 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 415 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); |
406 | 416 |
407 EXPECT_TRUE(user->HasDefaultImage()); | 417 EXPECT_TRUE(user->HasDefaultImage()); |
408 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); | 418 EXPECT_EQ(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(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
411 } | 421 } |
412 | 422 |
413 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { | 423 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImage) { |
414 RegisterUser(kTestUser1); | 424 login_manager_test_helper_->RegisterUser(kTestUser1); |
415 } | 425 } |
416 | 426 |
417 // Verifies that SaveUserImage() correctly sets and persists the chosen user | 427 // Verifies that SaveUserImage() correctly sets and persists the chosen user |
418 // image. | 428 // image. |
419 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { | 429 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImage) { |
420 const User* user = UserManager::Get()->FindUser(kTestUser1); | 430 const User* user = UserManager::Get()->FindUser(kTestUser1); |
421 ASSERT_TRUE(user); | 431 ASSERT_TRUE(user); |
422 | 432 |
423 SkBitmap custom_image_bitmap; | 433 SkBitmap custom_image_bitmap; |
424 custom_image_bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); | 434 custom_image_bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 10); |
(...skipping 18 matching lines...) Expand all Loading... |
443 const scoped_ptr<gfx::ImageSkia> saved_image = | 453 const scoped_ptr<gfx::ImageSkia> saved_image = |
444 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 454 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
445 ASSERT_TRUE(saved_image); | 455 ASSERT_TRUE(saved_image); |
446 | 456 |
447 // Check image dimensions. Images can't be compared since JPEG is lossy. | 457 // Check image dimensions. Images can't be compared since JPEG is lossy. |
448 EXPECT_EQ(custom_image.width(), saved_image->width()); | 458 EXPECT_EQ(custom_image.width(), saved_image->width()); |
449 EXPECT_EQ(custom_image.height(), saved_image->height()); | 459 EXPECT_EQ(custom_image.height(), saved_image->height()); |
450 } | 460 } |
451 | 461 |
452 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImageFromFile) { | 462 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_SaveUserImageFromFile) { |
453 RegisterUser(kTestUser1); | 463 login_manager_test_helper_->RegisterUser(kTestUser1); |
454 } | 464 } |
455 | 465 |
456 // Verifies that SaveUserImageFromFile() correctly sets and persists the chosen | 466 // Verifies that SaveUserImageFromFile() correctly sets and persists the chosen |
457 // user image. | 467 // user image. |
458 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) { | 468 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromFile) { |
459 const User* user = UserManager::Get()->FindUser(kTestUser1); | 469 const User* user = UserManager::Get()->FindUser(kTestUser1); |
460 ASSERT_TRUE(user); | 470 ASSERT_TRUE(user); |
461 | 471 |
462 const base::FilePath custom_image_path = | 472 const base::FilePath custom_image_path = |
463 test_data_dir_.Append(test::kUserAvatarImage1RelativePath); | 473 test_data_dir_.Append(test::kUserAvatarImage1RelativePath); |
(...skipping 18 matching lines...) Expand all Loading... |
482 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 492 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
483 ASSERT_TRUE(saved_image); | 493 ASSERT_TRUE(saved_image); |
484 | 494 |
485 // Check image dimensions. Images can't be compared since JPEG is lossy. | 495 // Check image dimensions. Images can't be compared since JPEG is lossy. |
486 EXPECT_EQ(custom_image->width(), saved_image->width()); | 496 EXPECT_EQ(custom_image->width(), saved_image->width()); |
487 EXPECT_EQ(custom_image->height(), saved_image->height()); | 497 EXPECT_EQ(custom_image->height(), saved_image->height()); |
488 } | 498 } |
489 | 499 |
490 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, | 500 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, |
491 PRE_SaveUserImageFromProfileImage) { | 501 PRE_SaveUserImageFromProfileImage) { |
492 RegisterUser(kTestUser1); | 502 login_manager_test_helper_->RegisterUser(kTestUser1); |
493 chromeos::StartupUtils::MarkOobeCompleted(); | 503 chromeos::StartupUtils::MarkOobeCompleted(); |
494 } | 504 } |
495 | 505 |
496 // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and | 506 // Verifies that SaveUserImageFromProfileImage() correctly downloads, sets and |
497 // persists the chosen user image. | 507 // persists the chosen user image. |
498 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { | 508 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, SaveUserImageFromProfileImage) { |
499 const User* user = UserManager::Get()->FindUser(kTestUser1); | 509 const User* user = UserManager::Get()->FindUser(kTestUser1); |
500 ASSERT_TRUE(user); | 510 ASSERT_TRUE(user); |
501 | 511 |
502 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); | 512 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); |
503 LoginUser(kTestUser1); | 513 login_manager_test_helper_->LogInUser(kTestUser1); |
504 | 514 |
505 run_loop_.reset(new base::RunLoop); | 515 run_loop_.reset(new base::RunLoop); |
506 UserImageManager* user_image_manager = | 516 UserImageManager* user_image_manager = |
507 UserManager::Get()->GetUserImageManager(kTestUser1); | 517 UserManager::Get()->GetUserImageManager(kTestUser1); |
508 user_image_manager->SaveUserImageFromProfileImage(); | 518 user_image_manager->SaveUserImageFromProfileImage(); |
509 run_loop_->Run(); | 519 run_loop_->Run(); |
510 | 520 |
511 net::TestURLFetcherFactory url_fetcher_factory; | 521 net::TestURLFetcherFactory url_fetcher_factory; |
512 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); | 522 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); |
513 CompleteProfileImageDownload(&url_fetcher_factory); | 523 CompleteProfileImageDownload(&url_fetcher_factory); |
(...skipping 12 matching lines...) Expand all Loading... |
526 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 536 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
527 ASSERT_TRUE(saved_image); | 537 ASSERT_TRUE(saved_image); |
528 | 538 |
529 // Check image dimensions. Images can't be compared since JPEG is lossy. | 539 // Check image dimensions. Images can't be compared since JPEG is lossy. |
530 EXPECT_EQ(profile_image.width(), saved_image->width()); | 540 EXPECT_EQ(profile_image.width(), saved_image->width()); |
531 EXPECT_EQ(profile_image.height(), saved_image->height()); | 541 EXPECT_EQ(profile_image.height(), saved_image->height()); |
532 } | 542 } |
533 | 543 |
534 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, | 544 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, |
535 PRE_ProfileImageDownloadDoesNotClobber) { | 545 PRE_ProfileImageDownloadDoesNotClobber) { |
536 RegisterUser(kTestUser1); | 546 login_manager_test_helper_->RegisterUser(kTestUser1); |
537 chromeos::StartupUtils::MarkOobeCompleted(); | 547 chromeos::StartupUtils::MarkOobeCompleted(); |
538 } | 548 } |
539 | 549 |
540 // Sets the user image to the profile image, then sets it to one of the default | 550 // 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 | 551 // 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 | 552 // when the download completes, the profile image is ignored and does not |
543 // clobber the default image chosen in the meantime. | 553 // clobber the default image chosen in the meantime. |
544 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, | 554 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, |
545 ProfileImageDownloadDoesNotClobber) { | 555 ProfileImageDownloadDoesNotClobber) { |
546 const User* user = UserManager::Get()->FindUser(kTestUser1); | 556 const User* user = UserManager::Get()->FindUser(kTestUser1); |
547 ASSERT_TRUE(user); | 557 ASSERT_TRUE(user); |
548 | 558 |
549 const gfx::ImageSkia& default_image = | 559 const gfx::ImageSkia& default_image = |
550 GetDefaultImage(kFirstDefaultImageIndex); | 560 GetDefaultImage(kFirstDefaultImageIndex); |
551 | 561 |
552 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); | 562 UserImageManagerImpl::IgnoreProfileDataDownloadDelayForTesting(); |
553 LoginUser(kTestUser1); | 563 login_manager_test_helper_->LogInUser(kTestUser1); |
554 | 564 |
555 run_loop_.reset(new base::RunLoop); | 565 run_loop_.reset(new base::RunLoop); |
556 UserImageManager* user_image_manager = | 566 UserImageManager* user_image_manager = |
557 UserManager::Get()->GetUserImageManager(kTestUser1); | 567 UserManager::Get()->GetUserImageManager(kTestUser1); |
558 user_image_manager->SaveUserImageFromProfileImage(); | 568 user_image_manager->SaveUserImageFromProfileImage(); |
559 run_loop_->Run(); | 569 run_loop_->Run(); |
560 | 570 |
561 net::TestURLFetcherFactory url_fetcher_factory; | 571 net::TestURLFetcherFactory url_fetcher_factory; |
562 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); | 572 CompleteProfileMetadataDownload(kTestUser1, &url_fetcher_factory); |
563 | 573 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 FakeDBusThreadManager* fake_dbus_thread_manager_; | 655 FakeDBusThreadManager* fake_dbus_thread_manager_; |
646 FakeSessionManagerClient* fake_session_manager_client_; | 656 FakeSessionManagerClient* fake_session_manager_client_; |
647 | 657 |
648 scoped_ptr<gfx::ImageSkia> policy_image_; | 658 scoped_ptr<gfx::ImageSkia> policy_image_; |
649 | 659 |
650 private: | 660 private: |
651 DISALLOW_COPY_AND_ASSIGN(UserImageManagerPolicyTest); | 661 DISALLOW_COPY_AND_ASSIGN(UserImageManagerPolicyTest); |
652 }; | 662 }; |
653 | 663 |
654 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { | 664 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { |
655 RegisterUser(kTestUser1); | 665 login_manager_test_helper_->RegisterUser(kTestUser1); |
656 chromeos::StartupUtils::MarkOobeCompleted(); | 666 chromeos::StartupUtils::MarkOobeCompleted(); |
657 } | 667 } |
658 | 668 |
659 // Verifies that the user image can be set through policy. Also verifies that | 669 // Verifies that the user image can be set through policy. Also verifies that |
660 // after the policy has been cleared, the user is able to choose a different | 670 // after the policy has been cleared, the user is able to choose a different |
661 // image. | 671 // image. |
662 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, SetAndClear) { | 672 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, SetAndClear) { |
663 const User* user = UserManager::Get()->FindUser(kTestUser1); | 673 const User* user = UserManager::Get()->FindUser(kTestUser1); |
664 ASSERT_TRUE(user); | 674 ASSERT_TRUE(user); |
665 | 675 |
666 LoginUser(kTestUser1); | 676 login_manager_test_helper_->LogInUser(kTestUser1); |
667 base::RunLoop().RunUntilIdle(); | 677 base::RunLoop().RunUntilIdle(); |
668 | 678 |
669 policy::CloudPolicyStore* store = GetStoreForUser(user); | 679 policy::CloudPolicyStore* store = GetStoreForUser(user); |
670 ASSERT_TRUE(store); | 680 ASSERT_TRUE(store); |
671 | 681 |
672 // Set policy. Verify that the policy-provided user image is downloaded, set | 682 // Set policy. Verify that the policy-provided user image is downloaded, set |
673 // and persisted. | 683 // and persisted. |
674 user_policy_.payload().mutable_useravatarimage()->set_value( | 684 user_policy_.payload().mutable_useravatarimage()->set_value( |
675 ConstructPolicy(test::kUserAvatarImage2RelativePath)); | 685 ConstructPolicy(test::kUserAvatarImage2RelativePath)); |
676 user_policy_.Build(); | 686 user_policy_.Build(); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
731 UserManager::Get()->GetUserImageManager(kTestUser1); | 741 UserManager::Get()->GetUserImageManager(kTestUser1); |
732 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); | 742 user_image_manager->SaveUserDefaultImageIndex(kFirstDefaultImageIndex); |
733 | 743 |
734 EXPECT_TRUE(user->HasDefaultImage()); | 744 EXPECT_TRUE(user->HasDefaultImage()); |
735 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); | 745 EXPECT_EQ(kFirstDefaultImageIndex, user->image_index()); |
736 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 746 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
737 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); | 747 ExpectNewUserImageInfo(kTestUser1, kFirstDefaultImageIndex, base::FilePath()); |
738 } | 748 } |
739 | 749 |
740 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_PolicyOverridesUser) { | 750 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_PolicyOverridesUser) { |
741 RegisterUser(kTestUser1); | 751 login_manager_test_helper_->RegisterUser(kTestUser1); |
742 chromeos::StartupUtils::MarkOobeCompleted(); | 752 chromeos::StartupUtils::MarkOobeCompleted(); |
743 } | 753 } |
744 | 754 |
745 // Verifies that when the user chooses a user image and a different image is | 755 // Verifies that when the user chooses a user image and a different image is |
746 // then set through policy, the policy takes precedence, overriding the | 756 // then set through policy, the policy takes precedence, overriding the |
747 // previously chosen image. | 757 // previously chosen image. |
748 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) { | 758 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PolicyOverridesUser) { |
749 const User* user = UserManager::Get()->FindUser(kTestUser1); | 759 const User* user = UserManager::Get()->FindUser(kTestUser1); |
750 ASSERT_TRUE(user); | 760 ASSERT_TRUE(user); |
751 | 761 |
752 LoginUser(kTestUser1); | 762 login_manager_test_helper_->LogInUser(kTestUser1); |
753 base::RunLoop().RunUntilIdle(); | 763 base::RunLoop().RunUntilIdle(); |
754 | 764 |
755 policy::CloudPolicyStore* store = GetStoreForUser(user); | 765 policy::CloudPolicyStore* store = GetStoreForUser(user); |
756 ASSERT_TRUE(store); | 766 ASSERT_TRUE(store); |
757 | 767 |
758 // Choose a user image. Verify that the chosen user image is set and | 768 // Choose a user image. Verify that the chosen user image is set and |
759 // persisted. | 769 // persisted. |
760 const gfx::ImageSkia& default_image = | 770 const gfx::ImageSkia& default_image = |
761 GetDefaultImage(kFirstDefaultImageIndex); | 771 GetDefaultImage(kFirstDefaultImageIndex); |
762 | 772 |
(...skipping 28 matching lines...) Expand all Loading... |
791 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 801 test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
792 ASSERT_TRUE(saved_image); | 802 ASSERT_TRUE(saved_image); |
793 | 803 |
794 // Check image dimensions. Images can't be compared since JPEG is lossy. | 804 // Check image dimensions. Images can't be compared since JPEG is lossy. |
795 EXPECT_EQ(policy_image_->width(), saved_image->width()); | 805 EXPECT_EQ(policy_image_->width(), saved_image->width()); |
796 EXPECT_EQ(policy_image_->height(), saved_image->height()); | 806 EXPECT_EQ(policy_image_->height(), saved_image->height()); |
797 } | 807 } |
798 | 808 |
799 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, | 809 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, |
800 PRE_UserDoesNotOverridePolicy) { | 810 PRE_UserDoesNotOverridePolicy) { |
801 RegisterUser(kTestUser1); | 811 login_manager_test_helper_->RegisterUser(kTestUser1); |
802 chromeos::StartupUtils::MarkOobeCompleted(); | 812 chromeos::StartupUtils::MarkOobeCompleted(); |
803 } | 813 } |
804 | 814 |
805 // Verifies that when the user image has been set through policy and the user | 815 // Verifies that when the user image has been set through policy and the user |
806 // chooses a different image, the policy takes precedence, preventing the user | 816 // chooses a different image, the policy takes precedence, preventing the user |
807 // from overriding the previously chosen image. | 817 // from overriding the previously chosen image. |
808 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) { | 818 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, UserDoesNotOverridePolicy) { |
809 const User* user = UserManager::Get()->FindUser(kTestUser1); | 819 const User* user = UserManager::Get()->FindUser(kTestUser1); |
810 ASSERT_TRUE(user); | 820 ASSERT_TRUE(user); |
811 | 821 |
812 LoginUser(kTestUser1); | 822 login_manager_test_helper_->LogInUser(kTestUser1); |
813 base::RunLoop().RunUntilIdle(); | 823 base::RunLoop().RunUntilIdle(); |
814 | 824 |
815 policy::CloudPolicyStore* store = GetStoreForUser(user); | 825 policy::CloudPolicyStore* store = GetStoreForUser(user); |
816 ASSERT_TRUE(store); | 826 ASSERT_TRUE(store); |
817 | 827 |
818 // Set policy. Verify that the policy-provided user image is downloaded, set | 828 // Set policy. Verify that the policy-provided user image is downloaded, set |
819 // and persisted. | 829 // and persisted. |
820 user_policy_.payload().mutable_useravatarimage()->set_value( | 830 user_policy_.payload().mutable_useravatarimage()->set_value( |
821 ConstructPolicy(test::kUserAvatarImage2RelativePath)); | 831 ConstructPolicy(test::kUserAvatarImage2RelativePath)); |
822 user_policy_.Build(); | 832 user_policy_.Build(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 | 866 |
857 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); | 867 saved_image = test::ImageLoader(GetUserImagePath(kTestUser1, "jpg")).Load(); |
858 ASSERT_TRUE(saved_image); | 868 ASSERT_TRUE(saved_image); |
859 | 869 |
860 // Check image dimensions. Images can't be compared since JPEG is lossy. | 870 // Check image dimensions. Images can't be compared since JPEG is lossy. |
861 EXPECT_EQ(policy_image_->width(), saved_image->width()); | 871 EXPECT_EQ(policy_image_->width(), saved_image->width()); |
862 EXPECT_EQ(policy_image_->height(), saved_image->height()); | 872 EXPECT_EQ(policy_image_->height(), saved_image->height()); |
863 } | 873 } |
864 | 874 |
865 } // namespace chromeos | 875 } // namespace chromeos |
OLD | NEW |