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

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

Issue 1693383003: ChromeOS cryptohome should be able to use gaia id as user identifier. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add cryptohome::Identification() . Created 4 years, 10 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 return NULL; 98 return NULL;
99 } 99 }
100 return policy_manager->core()->store(); 100 return policy_manager->core()->store();
101 } 101 }
102 102
103 } // namespace 103 } // namespace
104 104
105 class UserImageManagerTest : public LoginManagerTest, 105 class UserImageManagerTest : public LoginManagerTest,
106 public user_manager::UserManager::Observer { 106 public user_manager::UserManager::Observer {
107 protected: 107 protected:
108 UserImageManagerTest() 108 UserImageManagerTest() : LoginManagerTest(true) {}
109 : LoginManagerTest(true),
110 enterprise_account_id_(AccountId::FromUserEmail(kEnterpriseUser1)) {}
111 109
112 // LoginManagerTest overrides: 110 // LoginManagerTest overrides:
113 void SetUpInProcessBrowserTestFixture() override { 111 void SetUpInProcessBrowserTestFixture() override {
114 LoginManagerTest::SetUpInProcessBrowserTestFixture(); 112 LoginManagerTest::SetUpInProcessBrowserTestFixture();
115 113
116 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); 114 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_));
117 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); 115 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_));
118 } 116 }
119 117
120 void SetUpOnMainThread() override { 118 void SetUpOnMainThread() override {
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 base::FilePath user_data_dir_; 306 base::FilePath user_data_dir_;
309 307
310 PrefService* local_state_; 308 PrefService* local_state_;
311 309
312 scoped_ptr<gfx::ImageSkia> decoded_image_; 310 scoped_ptr<gfx::ImageSkia> decoded_image_;
313 311
314 scoped_ptr<base::RunLoop> run_loop_; 312 scoped_ptr<base::RunLoop> run_loop_;
315 313
316 const AccountId test_account_id1_ = AccountId::FromUserEmail(kTestUser1); 314 const AccountId test_account_id1_ = AccountId::FromUserEmail(kTestUser1);
317 const AccountId test_account_id2_ = AccountId::FromUserEmail(kTestUser2); 315 const AccountId test_account_id2_ = AccountId::FromUserEmail(kTestUser2);
318 const AccountId enterprise_account_id_; 316 const AccountId enterprise_account_id_ =
317 AccountId::FromUserEmail(kEnterpriseUser1);
318 const cryptohome::Identification cryptohome_id_ =
319 cryptohome::Identification(enterprise_account_id_);
319 320
320 private: 321 private:
321 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest); 322 DISALLOW_COPY_AND_ASSIGN(UserImageManagerTest);
322 }; 323 };
323 324
324 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) { 325 IN_PROC_BROWSER_TEST_F(UserImageManagerTest, PRE_DefaultUserImagePreserved) {
325 // Setup an old default (stock) user image. 326 // Setup an old default (stock) user image.
326 ScopedUserManagerEnabler(new MockUserManager); 327 ScopedUserManagerEnabler(new MockUserManager);
327 SetOldUserImageInfo(test_account_id1_, 328 SetOldUserImageInfo(test_account_id1_,
328 default_user_image::kFirstDefaultImageIndex, 329 default_user_image::kFirstDefaultImageIndex,
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 UserImageManagerTest::SetUpInProcessBrowserTestFixture(); 648 UserImageManagerTest::SetUpInProcessBrowserTestFixture();
648 } 649 }
649 650
650 void SetUpOnMainThread() override { 651 void SetUpOnMainThread() override {
651 UserImageManagerTest::SetUpOnMainThread(); 652 UserImageManagerTest::SetUpOnMainThread();
652 653
653 base::FilePath user_keys_dir; 654 base::FilePath user_keys_dir;
654 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, 655 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS,
655 &user_keys_dir)); 656 &user_keys_dir));
656 const std::string sanitized_username = 657 const std::string sanitized_username =
657 chromeos::CryptohomeClient::GetStubSanitizedUsername( 658 chromeos::CryptohomeClient::GetStubSanitizedUsername(cryptohome_id_);
658 enterprise_account_id_.GetUserEmail());
659 const base::FilePath user_key_file = 659 const base::FilePath user_key_file =
660 user_keys_dir.AppendASCII(sanitized_username) 660 user_keys_dir.AppendASCII(sanitized_username)
661 .AppendASCII("policy.pub"); 661 .AppendASCII("policy.pub");
662 std::vector<uint8_t> user_key_bits; 662 std::vector<uint8_t> user_key_bits;
663 ASSERT_TRUE(user_policy_.GetSigningKey()->ExportPublicKey(&user_key_bits)); 663 ASSERT_TRUE(user_policy_.GetSigningKey()->ExportPublicKey(&user_key_bits));
664 ASSERT_TRUE(base::CreateDirectory(user_key_file.DirName())); 664 ASSERT_TRUE(base::CreateDirectory(user_key_file.DirName()));
665 ASSERT_EQ(base::WriteFile( 665 ASSERT_EQ(base::WriteFile(
666 user_key_file, 666 user_key_file,
667 reinterpret_cast<const char*>(user_key_bits.data()), 667 reinterpret_cast<const char*>(user_key_bits.data()),
668 user_key_bits.size()), 668 user_key_bits.size()),
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 base::RunLoop().RunUntilIdle(); 729 base::RunLoop().RunUntilIdle();
730 730
731 policy::CloudPolicyStore* store = GetStoreForUser(user); 731 policy::CloudPolicyStore* store = GetStoreForUser(user);
732 ASSERT_TRUE(store); 732 ASSERT_TRUE(store);
733 733
734 // Set policy. Verify that the policy-provided user image is downloaded, set 734 // Set policy. Verify that the policy-provided user image is downloaded, set
735 // and persisted. 735 // and persisted.
736 user_policy_.payload().mutable_useravatarimage()->set_value( 736 user_policy_.payload().mutable_useravatarimage()->set_value(
737 ConstructPolicy(test::kUserAvatarImage2RelativePath)); 737 ConstructPolicy(test::kUserAvatarImage2RelativePath));
738 user_policy_.Build(); 738 user_policy_.Build();
739 fake_session_manager_client_->set_user_policy( 739 fake_session_manager_client_->set_user_policy(cryptohome_id_,
740 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob()); 740 user_policy_.GetBlob());
741 run_loop_.reset(new base::RunLoop); 741 run_loop_.reset(new base::RunLoop);
742 store->Load(); 742 store->Load();
743 run_loop_->Run(); 743 run_loop_->Run();
744 744
745 EXPECT_FALSE(user->HasDefaultImage()); 745 EXPECT_FALSE(user->HasDefaultImage());
746 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 746 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
747 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 747 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
748 ExpectNewUserImageInfo(enterprise_account_id_, 748 ExpectNewUserImageInfo(enterprise_account_id_,
749 user_manager::User::USER_IMAGE_EXTERNAL, 749 user_manager::User::USER_IMAGE_EXTERNAL,
750 GetUserImagePath(enterprise_account_id_, "jpg")); 750 GetUserImagePath(enterprise_account_id_, "jpg"));
751 751
752 scoped_ptr<gfx::ImageSkia> saved_image = 752 scoped_ptr<gfx::ImageSkia> saved_image =
753 test::ImageLoader(GetUserImagePath(enterprise_account_id_, "jpg")).Load(); 753 test::ImageLoader(GetUserImagePath(enterprise_account_id_, "jpg")).Load();
754 ASSERT_TRUE(saved_image); 754 ASSERT_TRUE(saved_image);
755 755
756 // Check image dimensions. Images can't be compared since JPEG is lossy. 756 // Check image dimensions. Images can't be compared since JPEG is lossy.
757 EXPECT_EQ(policy_image_->width(), saved_image->width()); 757 EXPECT_EQ(policy_image_->width(), saved_image->width());
758 EXPECT_EQ(policy_image_->height(), saved_image->height()); 758 EXPECT_EQ(policy_image_->height(), saved_image->height());
759 759
760 // Clear policy. Verify that the user image switches to a random default 760 // Clear policy. Verify that the user image switches to a random default
761 // image. 761 // image.
762 user_policy_.payload().Clear(); 762 user_policy_.payload().Clear();
763 user_policy_.Build(); 763 user_policy_.Build();
764 fake_session_manager_client_->set_user_policy( 764 fake_session_manager_client_->set_user_policy(cryptohome_id_,
765 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob()); 765 user_policy_.GetBlob());
766 run_loop_.reset(new base::RunLoop); 766 run_loop_.reset(new base::RunLoop);
767 store->AddObserver(this); 767 store->AddObserver(this);
768 store->Load(); 768 store->Load();
769 run_loop_->Run(); 769 run_loop_->Run();
770 store->RemoveObserver(this); 770 store->RemoveObserver(this);
771 base::RunLoop().RunUntilIdle(); 771 base::RunLoop().RunUntilIdle();
772 772
773 const int default_image_index = user->image_index(); 773 const int default_image_index = user->image_index();
774 EXPECT_TRUE(user->HasDefaultImage()); 774 EXPECT_TRUE(user->HasDefaultImage());
775 ASSERT_LE(default_user_image::kFirstDefaultImageIndex, default_image_index); 775 ASSERT_LE(default_user_image::kFirstDefaultImageIndex, default_image_index);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); 836 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage()));
837 ExpectNewUserImageInfo(enterprise_account_id_, 837 ExpectNewUserImageInfo(enterprise_account_id_,
838 default_user_image::kFirstDefaultImageIndex, 838 default_user_image::kFirstDefaultImageIndex,
839 base::FilePath()); 839 base::FilePath());
840 840
841 // Set policy. Verify that the policy-provided user image is downloaded, set 841 // Set policy. Verify that the policy-provided user image is downloaded, set
842 // and persisted, overriding the previously set image. 842 // and persisted, overriding the previously set image.
843 user_policy_.payload().mutable_useravatarimage()->set_value( 843 user_policy_.payload().mutable_useravatarimage()->set_value(
844 ConstructPolicy(test::kUserAvatarImage2RelativePath)); 844 ConstructPolicy(test::kUserAvatarImage2RelativePath));
845 user_policy_.Build(); 845 user_policy_.Build();
846 fake_session_manager_client_->set_user_policy( 846 fake_session_manager_client_->set_user_policy(cryptohome_id_,
847 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob()); 847 user_policy_.GetBlob());
848 run_loop_.reset(new base::RunLoop); 848 run_loop_.reset(new base::RunLoop);
849 store->Load(); 849 store->Load();
850 run_loop_->Run(); 850 run_loop_->Run();
851 851
852 EXPECT_FALSE(user->HasDefaultImage()); 852 EXPECT_FALSE(user->HasDefaultImage());
853 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 853 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
854 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 854 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
855 ExpectNewUserImageInfo(enterprise_account_id_, 855 ExpectNewUserImageInfo(enterprise_account_id_,
856 user_manager::User::USER_IMAGE_EXTERNAL, 856 user_manager::User::USER_IMAGE_EXTERNAL,
857 GetUserImagePath(enterprise_account_id_, "jpg")); 857 GetUserImagePath(enterprise_account_id_, "jpg"));
(...skipping 25 matching lines...) Expand all
883 base::RunLoop().RunUntilIdle(); 883 base::RunLoop().RunUntilIdle();
884 884
885 policy::CloudPolicyStore* store = GetStoreForUser(user); 885 policy::CloudPolicyStore* store = GetStoreForUser(user);
886 ASSERT_TRUE(store); 886 ASSERT_TRUE(store);
887 887
888 // Set policy. Verify that the policy-provided user image is downloaded, set 888 // Set policy. Verify that the policy-provided user image is downloaded, set
889 // and persisted. 889 // and persisted.
890 user_policy_.payload().mutable_useravatarimage()->set_value( 890 user_policy_.payload().mutable_useravatarimage()->set_value(
891 ConstructPolicy(test::kUserAvatarImage2RelativePath)); 891 ConstructPolicy(test::kUserAvatarImage2RelativePath));
892 user_policy_.Build(); 892 user_policy_.Build();
893 fake_session_manager_client_->set_user_policy( 893 fake_session_manager_client_->set_user_policy(cryptohome_id_,
894 enterprise_account_id_.GetUserEmail(), user_policy_.GetBlob()); 894 user_policy_.GetBlob());
895 run_loop_.reset(new base::RunLoop); 895 run_loop_.reset(new base::RunLoop);
896 store->Load(); 896 store->Load();
897 run_loop_->Run(); 897 run_loop_->Run();
898 898
899 EXPECT_FALSE(user->HasDefaultImage()); 899 EXPECT_FALSE(user->HasDefaultImage());
900 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index()); 900 EXPECT_EQ(user_manager::User::USER_IMAGE_EXTERNAL, user->image_index());
901 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage())); 901 EXPECT_TRUE(test::AreImagesEqual(*policy_image_, user->GetImage()));
902 ExpectNewUserImageInfo(enterprise_account_id_, 902 ExpectNewUserImageInfo(enterprise_account_id_,
903 user_manager::User::USER_IMAGE_EXTERNAL, 903 user_manager::User::USER_IMAGE_EXTERNAL,
904 GetUserImagePath(enterprise_account_id_, "jpg")); 904 GetUserImagePath(enterprise_account_id_, "jpg"));
(...skipping 23 matching lines...) Expand all
928 saved_image = 928 saved_image =
929 test::ImageLoader(GetUserImagePath(enterprise_account_id_, "jpg")).Load(); 929 test::ImageLoader(GetUserImagePath(enterprise_account_id_, "jpg")).Load();
930 ASSERT_TRUE(saved_image); 930 ASSERT_TRUE(saved_image);
931 931
932 // Check image dimensions. Images can't be compared since JPEG is lossy. 932 // Check image dimensions. Images can't be compared since JPEG is lossy.
933 EXPECT_EQ(policy_image_->width(), saved_image->width()); 933 EXPECT_EQ(policy_image_->width(), saved_image->width());
934 EXPECT_EQ(policy_image_->height(), saved_image->height()); 934 EXPECT_EQ(policy_image_->height(), saved_image->height());
935 } 935 }
936 936
937 } // namespace chromeos 937 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698