OLD | NEW |
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 "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" | 5 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <memory> | 10 #include <memory> |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "base/values.h" | 27 #include "base/values.h" |
28 #include "chrome/browser/browser_process.h" | 28 #include "chrome/browser/browser_process.h" |
29 #include "chrome/browser/chromeos/login/login_manager_test.h" | 29 #include "chrome/browser/chromeos/login/login_manager_test.h" |
30 #include "chrome/browser/chromeos/login/startup_utils.h" | 30 #include "chrome/browser/chromeos/login/startup_utils.h" |
31 #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" |
32 #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" |
33 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 33 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
34 #include "chrome/browser/chromeos/login/users/default_user_image/default_user_im
ages.h" | 34 #include "chrome/browser/chromeos/login/users/default_user_image/default_user_im
ages.h" |
35 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" | 35 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" |
36 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 36 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
| 37 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_fact
ory.h" |
37 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 38 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
38 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u
til.h" | 39 #include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_u
til.h" |
| 40 #include "chrome/browser/chromeos/policy/device_policy_builder.h" |
39 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" | 41 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
40 #include "chrome/browser/chromeos/policy/user_policy_manager_factory_chromeos.h" | 42 #include "chrome/browser/chromeos/policy/user_policy_manager_factory_chromeos.h" |
41 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 43 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
42 #include "chrome/browser/chromeos/settings/stub_install_attributes.h" | 44 #include "chrome/browser/chromeos/settings/stub_install_attributes.h" |
43 #include "chrome/browser/profiles/profile.h" | 45 #include "chrome/browser/profiles/profile.h" |
44 #include "chrome/browser/profiles/profile_downloader.h" | 46 #include "chrome/browser/profiles/profile_downloader.h" |
45 #include "chrome/browser/signin/account_tracker_service_factory.h" | 47 #include "chrome/browser/signin/account_tracker_service_factory.h" |
46 #include "chrome/common/chrome_paths.h" | 48 #include "chrome/common/chrome_paths.h" |
47 #include "chrome/test/base/in_process_browser_test.h" | 49 #include "chrome/test/base/in_process_browser_test.h" |
48 #include "chrome/test/base/testing_browser_process.h" | 50 #include "chrome/test/base/testing_browser_process.h" |
49 #include "chromeos/chromeos_paths.h" | 51 #include "chromeos/chromeos_paths.h" |
50 #include "chromeos/chromeos_switches.h" | 52 #include "chromeos/chromeos_switches.h" |
51 #include "chromeos/dbus/cryptohome_client.h" | 53 #include "chromeos/dbus/cryptohome_client.h" |
52 #include "chromeos/dbus/dbus_thread_manager.h" | 54 #include "chromeos/dbus/dbus_thread_manager.h" |
53 #include "chromeos/dbus/fake_session_manager_client.h" | 55 #include "chromeos/dbus/fake_session_manager_client.h" |
54 #include "chromeos/dbus/session_manager_client.h" | 56 #include "chromeos/dbus/session_manager_client.h" |
| 57 #include "components/ownership/mock_owner_key_util.h" |
55 #include "components/policy/core/common/cloud/cloud_policy_core.h" | 58 #include "components/policy/core/common/cloud/cloud_policy_core.h" |
56 #include "components/policy/core/common/cloud/cloud_policy_store.h" | 59 #include "components/policy/core/common/cloud/cloud_policy_store.h" |
57 #include "components/policy/core/common/cloud/policy_builder.h" | 60 #include "components/policy/core/common/cloud/policy_builder.h" |
58 #include "components/policy/proto/cloud_policy.pb.h" | 61 #include "components/policy/proto/cloud_policy.pb.h" |
59 #include "components/prefs/pref_change_registrar.h" | 62 #include "components/prefs/pref_change_registrar.h" |
60 #include "components/prefs/pref_service.h" | 63 #include "components/prefs/pref_service.h" |
61 #include "components/prefs/scoped_user_pref_update.h" | 64 #include "components/prefs/scoped_user_pref_update.h" |
62 #include "components/user_manager/user.h" | 65 #include "components/user_manager/user.h" |
63 #include "components/user_manager/user_image/user_image.h" | 66 #include "components/user_manager/user_image/user_image.h" |
64 #include "components/user_manager/user_manager.h" | 67 #include "components/user_manager/user_manager.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 | 131 |
129 } // namespace | 132 } // namespace |
130 | 133 |
131 class UserImageManagerTest : public LoginManagerTest, | 134 class UserImageManagerTest : public LoginManagerTest, |
132 public user_manager::UserManager::Observer { | 135 public user_manager::UserManager::Observer { |
133 protected: | 136 protected: |
134 UserImageManagerTest() : LoginManagerTest(true) {} | 137 UserImageManagerTest() : LoginManagerTest(true) {} |
135 | 138 |
136 // LoginManagerTest overrides: | 139 // LoginManagerTest overrides: |
137 void SetUpInProcessBrowserTestFixture() override { | 140 void SetUpInProcessBrowserTestFixture() override { |
138 // Set up fake install attributes. | |
139 std::unique_ptr<chromeos::StubInstallAttributes> attributes = | |
140 base::MakeUnique<chromeos::StubInstallAttributes>(); | |
141 attributes->SetEnterprise("fake-domain", "fake-id"); | |
142 policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting( | |
143 attributes.release()); | |
144 | |
145 LoginManagerTest::SetUpInProcessBrowserTestFixture(); | 141 LoginManagerTest::SetUpInProcessBrowserTestFixture(); |
146 | 142 |
147 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); | 143 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_)); |
148 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); | 144 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir_)); |
149 } | 145 } |
150 | 146 |
151 void SetUpCommandLine(base::CommandLine* command_line) override { | 147 void SetUpCommandLine(base::CommandLine* command_line) override { |
152 LoginManagerTest::SetUpCommandLine(command_line); | 148 LoginManagerTest::SetUpCommandLine(command_line); |
153 // These tests create new users and then inject policy after the fact, | 149 // These tests create new users and then inject policy after the fact, |
154 // to avoid having to set up a mock policy server. UserCloudPolicyManager | 150 // to avoid having to set up a mock policy server. UserCloudPolicyManager |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
576 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); | 572 EXPECT_TRUE(test::AreImagesEqual(default_image, user->GetImage())); |
577 ExpectUserImageInfo(test_account_id1_, | 573 ExpectUserImageInfo(test_account_id1_, |
578 default_user_image::kFirstDefaultImageIndex, | 574 default_user_image::kFirstDefaultImageIndex, |
579 base::FilePath()); | 575 base::FilePath()); |
580 } | 576 } |
581 | 577 |
582 class UserImageManagerPolicyTest : public UserImageManagerTest, | 578 class UserImageManagerPolicyTest : public UserImageManagerTest, |
583 public policy::CloudPolicyStore::Observer { | 579 public policy::CloudPolicyStore::Observer { |
584 protected: | 580 protected: |
585 UserImageManagerPolicyTest() | 581 UserImageManagerPolicyTest() |
586 : fake_session_manager_client_(new chromeos::FakeSessionManagerClient) { | 582 : owner_key_util_(new ownership::MockOwnerKeyUtil()), |
587 } | 583 fake_session_manager_client_(new chromeos::FakeSessionManagerClient) {} |
588 | 584 |
589 // UserImageManagerTest overrides: | 585 // UserImageManagerTest overrides: |
590 void SetUpInProcessBrowserTestFixture() override { | 586 void SetUpInProcessBrowserTestFixture() override { |
| 587 device_policy_.Build(); |
| 588 OwnerSettingsServiceChromeOSFactory::GetInstance() |
| 589 ->SetOwnerKeyUtilForTesting(owner_key_util_); |
| 590 owner_key_util_->SetPublicKeyFromPrivateKey( |
| 591 *device_policy_.GetSigningKey()); |
| 592 fake_session_manager_client_->set_device_policy(device_policy_.GetBlob()); |
591 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( | 593 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( |
592 std::unique_ptr<SessionManagerClient>(fake_session_manager_client_)); | 594 std::unique_ptr<SessionManagerClient>(fake_session_manager_client_)); |
| 595 |
| 596 // Set up fake install attributes. |
| 597 std::unique_ptr<chromeos::StubInstallAttributes> attributes = |
| 598 base::MakeUnique<chromeos::StubInstallAttributes>(); |
| 599 attributes->SetEnterprise("fake-domain", "fake-id"); |
| 600 policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting( |
| 601 attributes.release()); |
593 UserImageManagerTest::SetUpInProcessBrowserTestFixture(); | 602 UserImageManagerTest::SetUpInProcessBrowserTestFixture(); |
594 } | 603 } |
595 | 604 |
596 void SetUpOnMainThread() override { | 605 void SetUpOnMainThread() override { |
597 UserImageManagerTest::SetUpOnMainThread(); | 606 UserImageManagerTest::SetUpOnMainThread(); |
598 | 607 |
599 base::FilePath user_keys_dir; | 608 base::FilePath user_keys_dir; |
600 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, | 609 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, |
601 &user_keys_dir)); | 610 &user_keys_dir)); |
602 const std::string sanitized_username = | 611 const std::string sanitized_username = |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 base::JSONWriter::Write(*policy::test::ConstructExternalDataReference( | 650 base::JSONWriter::Write(*policy::test::ConstructExternalDataReference( |
642 embedded_test_server() | 651 embedded_test_server() |
643 ->GetURL(std::string("/") + relative_path) | 652 ->GetURL(std::string("/") + relative_path) |
644 .spec(), | 653 .spec(), |
645 image_data), | 654 image_data), |
646 &policy); | 655 &policy); |
647 return policy; | 656 return policy; |
648 } | 657 } |
649 | 658 |
650 policy::UserPolicyBuilder user_policy_; | 659 policy::UserPolicyBuilder user_policy_; |
| 660 policy::DevicePolicyBuilder device_policy_; |
| 661 scoped_refptr<ownership::MockOwnerKeyUtil> owner_key_util_; |
651 FakeSessionManagerClient* fake_session_manager_client_; | 662 FakeSessionManagerClient* fake_session_manager_client_; |
652 | 663 |
653 std::unique_ptr<gfx::ImageSkia> policy_image_; | 664 std::unique_ptr<gfx::ImageSkia> policy_image_; |
654 | 665 |
655 private: | 666 private: |
656 DISALLOW_COPY_AND_ASSIGN(UserImageManagerPolicyTest); | 667 DISALLOW_COPY_AND_ASSIGN(UserImageManagerPolicyTest); |
657 }; | 668 }; |
658 | 669 |
659 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { | 670 IN_PROC_BROWSER_TEST_F(UserImageManagerPolicyTest, PRE_SetAndClear) { |
660 RegisterUser(enterprise_account_id_.GetUserEmail()); | 671 RegisterUser(enterprise_account_id_.GetUserEmail()); |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 saved_image = | 884 saved_image = |
874 test::ImageLoader(GetUserImagePath(enterprise_account_id_, "jpg")).Load(); | 885 test::ImageLoader(GetUserImagePath(enterprise_account_id_, "jpg")).Load(); |
875 ASSERT_TRUE(saved_image); | 886 ASSERT_TRUE(saved_image); |
876 | 887 |
877 // Check image dimensions. Images can't be compared since JPEG is lossy. | 888 // Check image dimensions. Images can't be compared since JPEG is lossy. |
878 EXPECT_EQ(policy_image_->width(), saved_image->width()); | 889 EXPECT_EQ(policy_image_->width(), saved_image->width()); |
879 EXPECT_EQ(policy_image_->height(), saved_image->height()); | 890 EXPECT_EQ(policy_image_->height(), saved_image->height()); |
880 } | 891 } |
881 | 892 |
882 } // namespace chromeos | 893 } // namespace chromeos |
OLD | NEW |