| 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/fake_user_manager.h" | 5 #include "chrome/browser/chromeos/login/users/fake_user_manager.h" |
| 6 | 6 |
| 7 #include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h" | 7 #include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h" |
| 8 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 8 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 9 #include "chrome/grit/theme_resources.h" | 9 #include "chrome/grit/theme_resources.h" |
| 10 #include "components/user_manager/user_image/user_image.h" | 10 #include "components/user_manager/user_image/user_image.h" |
| 11 #include "components/user_manager/user_type.h" | 11 #include "components/user_manager/user_type.h" |
| 12 #include "ui/base/resource/resource_bundle.h" | 12 #include "ui/base/resource/resource_bundle.h" |
| 13 | 13 |
| 14 namespace { | |
| 15 | |
| 16 // As defined in /chromeos/dbus/cryptohome_client.cc. | |
| 17 static const char kUserIdHashSuffix[] = "-hash"; | |
| 18 | |
| 19 } // namespace | |
| 20 | |
| 21 namespace chromeos { | 14 namespace chromeos { |
| 22 | 15 |
| 23 FakeUserManager::FakeUserManager() | 16 FakeUserManager::FakeUserManager() |
| 24 : supervised_user_manager_(new FakeSupervisedUserManager), | 17 : supervised_user_manager_(new FakeSupervisedUserManager), |
| 25 primary_user_(NULL), | 18 primary_user_(NULL), |
| 26 multi_profile_user_controller_(NULL) { | 19 multi_profile_user_controller_(NULL) { |
| 27 ProfileHelper::SetProfileToUserForTestingEnabled(true); | |
| 28 } | 20 } |
| 29 | 21 |
| 30 FakeUserManager::~FakeUserManager() { | 22 FakeUserManager::~FakeUserManager() { |
| 31 ProfileHelper::SetProfileToUserForTestingEnabled(false); | |
| 32 | |
| 33 // Can't use STLDeleteElements because of the private destructor of User. | 23 // Can't use STLDeleteElements because of the private destructor of User. |
| 34 for (user_manager::UserList::iterator it = user_list_.begin(); | 24 for (user_manager::UserList::iterator it = user_list_.begin(); |
| 35 it != user_list_.end(); | 25 it != user_list_.end(); |
| 36 it = user_list_.erase(it)) { | 26 it = user_list_.erase(it)) { |
| 37 delete *it; | 27 delete *it; |
| 38 } | 28 } |
| 39 } | 29 } |
| 40 | 30 |
| 41 const user_manager::User* FakeUserManager::AddUser(const std::string& email) { | 31 const user_manager::User* FakeUserManager::AddUser(const std::string& email) { |
| 42 user_manager::User* user = user_manager::User::CreateRegularUser(email); | 32 user_manager::User* user = user_manager::User::CreateRegularUser(email); |
| 43 user->set_username_hash(email + kUserIdHashSuffix); | 33 user->set_username_hash( |
| 34 ProfileHelper::Get()->GetUserIdHashByUserIdForTests(email)); |
| 44 user->SetStubImage(user_manager::UserImage( | 35 user->SetStubImage(user_manager::UserImage( |
| 45 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( | 36 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| 46 IDR_PROFILE_PICTURE_LOADING)), | 37 IDR_PROFILE_PICTURE_LOADING)), |
| 47 user_manager::User::USER_IMAGE_PROFILE, | 38 user_manager::User::USER_IMAGE_PROFILE, |
| 48 false); | 39 false); |
| 49 user_list_.push_back(user); | 40 user_list_.push_back(user); |
| 50 ProfileHelper::Get()->SetProfileToUserMappingForTesting(user); | |
| 51 return user; | 41 return user; |
| 52 } | 42 } |
| 53 | 43 |
| 54 const user_manager::User* FakeUserManager::AddPublicAccountUser( | 44 const user_manager::User* FakeUserManager::AddPublicAccountUser( |
| 55 const std::string& email) { | 45 const std::string& email) { |
| 56 user_manager::User* user = user_manager::User::CreatePublicAccountUser(email); | 46 user_manager::User* user = user_manager::User::CreatePublicAccountUser(email); |
| 57 user->set_username_hash(email + kUserIdHashSuffix); | 47 user->set_username_hash( |
| 48 ProfileHelper::Get()->GetUserIdHashByUserIdForTests(email)); |
| 58 user->SetStubImage(user_manager::UserImage( | 49 user->SetStubImage(user_manager::UserImage( |
| 59 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( | 50 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| 60 IDR_PROFILE_PICTURE_LOADING)), | 51 IDR_PROFILE_PICTURE_LOADING)), |
| 61 user_manager::User::USER_IMAGE_PROFILE, | 52 user_manager::User::USER_IMAGE_PROFILE, |
| 62 false); | 53 false); |
| 63 user_list_.push_back(user); | 54 user_list_.push_back(user); |
| 64 ProfileHelper::Get()->SetProfileToUserMappingForTesting(user); | |
| 65 return user; | 55 return user; |
| 66 } | 56 } |
| 67 | 57 |
| 68 void FakeUserManager::AddKioskAppUser(const std::string& kiosk_app_username) { | 58 void FakeUserManager::AddKioskAppUser(const std::string& kiosk_app_username) { |
| 69 user_manager::User* user = | 59 user_manager::User* user = |
| 70 user_manager::User::CreateKioskAppUser(kiosk_app_username); | 60 user_manager::User::CreateKioskAppUser(kiosk_app_username); |
| 71 user->set_username_hash(kiosk_app_username + kUserIdHashSuffix); | 61 user->set_username_hash( |
| 62 ProfileHelper::Get()->GetUserIdHashByUserIdForTests(kiosk_app_username)); |
| 72 user_list_.push_back(user); | 63 user_list_.push_back(user); |
| 73 ProfileHelper::Get()->SetProfileToUserMappingForTesting(user); | |
| 74 } | 64 } |
| 75 | 65 |
| 76 void FakeUserManager::RemoveUserFromList(const std::string& email) { | 66 void FakeUserManager::RemoveUserFromList(const std::string& email) { |
| 77 user_manager::UserList::iterator it = user_list_.begin(); | 67 user_manager::UserList::iterator it = user_list_.begin(); |
| 78 while (it != user_list_.end() && (*it)->email() != email) ++it; | 68 while (it != user_list_.end() && (*it)->email() != email) ++it; |
| 79 if (it != user_list_.end()) { | 69 if (it != user_list_.end()) { |
| 80 delete *it; | 70 delete *it; |
| 81 user_list_.erase(it); | 71 user_list_.erase(it); |
| 82 } | 72 } |
| 83 } | 73 } |
| 84 | 74 |
| 85 void FakeUserManager::LoginUser(const std::string& email) { | 75 void FakeUserManager::LoginUser(const std::string& email) { |
| 86 UserLoggedIn(email, email + kUserIdHashSuffix, false); | 76 UserLoggedIn( |
| 77 email, ProfileHelper::Get()->GetUserIdHashByUserIdForTests(email), false); |
| 87 } | 78 } |
| 88 | 79 |
| 89 const user_manager::UserList& FakeUserManager::GetUsers() const { | 80 const user_manager::UserList& FakeUserManager::GetUsers() const { |
| 90 return user_list_; | 81 return user_list_; |
| 91 } | 82 } |
| 92 | 83 |
| 93 user_manager::UserList FakeUserManager::GetUsersAdmittedForMultiProfile() | 84 user_manager::UserList FakeUserManager::GetUsersAdmittedForMultiProfile() |
| 94 const { | 85 const { |
| 95 user_manager::UserList result; | 86 user_manager::UserList result; |
| 96 for (user_manager::UserList::const_iterator it = user_list_.begin(); | 87 for (user_manager::UserList::const_iterator it = user_list_.begin(); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 108 } | 99 } |
| 109 | 100 |
| 110 void FakeUserManager::UserLoggedIn(const std::string& email, | 101 void FakeUserManager::UserLoggedIn(const std::string& email, |
| 111 const std::string& username_hash, | 102 const std::string& username_hash, |
| 112 bool browser_restart) { | 103 bool browser_restart) { |
| 113 for (user_manager::UserList::const_iterator it = user_list_.begin(); | 104 for (user_manager::UserList::const_iterator it = user_list_.begin(); |
| 114 it != user_list_.end(); | 105 it != user_list_.end(); |
| 115 ++it) { | 106 ++it) { |
| 116 if ((*it)->username_hash() == username_hash) { | 107 if ((*it)->username_hash() == username_hash) { |
| 117 (*it)->set_is_logged_in(true); | 108 (*it)->set_is_logged_in(true); |
| 109 (*it)->set_profile_is_created(); |
| 118 logged_in_users_.push_back(*it); | 110 logged_in_users_.push_back(*it); |
| 119 | 111 |
| 120 if (!primary_user_) | 112 if (!primary_user_) |
| 121 primary_user_ = *it; | 113 primary_user_ = *it; |
| 122 break; | 114 break; |
| 123 } | 115 } |
| 124 } | 116 } |
| 125 } | 117 } |
| 126 | 118 |
| 127 user_manager::User* FakeUserManager::GetActiveUserInternal() const { | 119 user_manager::User* FakeUserManager::GetActiveUserInternal() const { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 142 const user_manager::User* FakeUserManager::GetActiveUser() const { | 134 const user_manager::User* FakeUserManager::GetActiveUser() const { |
| 143 return GetActiveUserInternal(); | 135 return GetActiveUserInternal(); |
| 144 } | 136 } |
| 145 | 137 |
| 146 user_manager::User* FakeUserManager::GetActiveUser() { | 138 user_manager::User* FakeUserManager::GetActiveUser() { |
| 147 return GetActiveUserInternal(); | 139 return GetActiveUserInternal(); |
| 148 } | 140 } |
| 149 | 141 |
| 150 void FakeUserManager::SwitchActiveUser(const std::string& email) { | 142 void FakeUserManager::SwitchActiveUser(const std::string& email) { |
| 151 active_user_id_ = email; | 143 active_user_id_ = email; |
| 144 ProfileHelper::Get()->ActiveUserHashChanged( |
| 145 ProfileHelper::Get()->GetUserIdHashByUserIdForTests(email)); |
| 152 } | 146 } |
| 153 | 147 |
| 154 void FakeUserManager::SaveUserDisplayName( | 148 void FakeUserManager::SaveUserDisplayName( |
| 155 const std::string& username, | 149 const std::string& username, |
| 156 const base::string16& display_name) { | 150 const base::string16& display_name) { |
| 157 for (user_manager::UserList::iterator it = user_list_.begin(); | 151 for (user_manager::UserList::iterator it = user_list_.begin(); |
| 158 it != user_list_.end(); | 152 it != user_list_.end(); |
| 159 ++it) { | 153 ++it) { |
| 160 if ((*it)->email() == username) { | 154 if ((*it)->email() == username) { |
| 161 (*it)->set_display_name(display_name); | 155 (*it)->set_display_name(display_name); |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 | 292 |
| 299 UserFlow* FakeUserManager::GetUserFlow(const std::string& email) const { | 293 UserFlow* FakeUserManager::GetUserFlow(const std::string& email) const { |
| 300 return NULL; | 294 return NULL; |
| 301 } | 295 } |
| 302 | 296 |
| 303 bool FakeUserManager::AreSupervisedUsersAllowed() const { | 297 bool FakeUserManager::AreSupervisedUsersAllowed() const { |
| 304 return true; | 298 return true; |
| 305 } | 299 } |
| 306 | 300 |
| 307 } // namespace chromeos | 301 } // namespace chromeos |
| OLD | NEW |