Index: chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc |
diff --git a/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..34abb1811c4610f93e98be8abe4237dcc15422d0 |
--- /dev/null |
+++ b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc |
@@ -0,0 +1,153 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" |
+ |
+#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
+#include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h" |
+#include "chrome/browser/chromeos/profiles/profile_helper.h" |
+#include "chrome/browser/chromeos/settings/cros_settings.h" |
+#include "chrome/grit/theme_resources.h" |
+#include "components/user_manager/user_image/user_image.h" |
+#include "components/user_manager/user_type.h" |
+#include "ui/base/resource/resource_bundle.h" |
+ |
+namespace chromeos { |
+ |
+class FakeSupervisedUserManager; |
+ |
+FakeChromeUserManager::FakeChromeUserManager() |
+ : supervised_user_manager_(new FakeSupervisedUserManager), |
+ multi_profile_user_controller_(NULL) { |
+} |
+ |
+FakeChromeUserManager::~FakeChromeUserManager() { |
+} |
+ |
+const user_manager::User* FakeChromeUserManager::AddUser( |
+ const std::string& email) { |
+ user_manager::User* user = user_manager::User::CreateRegularUser(email); |
+ user->set_username_hash( |
+ ProfileHelper::GetUserIdHashByUserIdForTesting(email)); |
+ user->SetStubImage(user_manager::UserImage( |
+ *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
+ IDR_PROFILE_PICTURE_LOADING)), |
+ user_manager::User::USER_IMAGE_PROFILE, false); |
+ users_.push_back(user); |
+ return user; |
+} |
+ |
+const user_manager::User* FakeChromeUserManager::AddPublicAccountUser( |
+ const std::string& email) { |
+ user_manager::User* user = user_manager::User::CreatePublicAccountUser(email); |
+ user->set_username_hash( |
+ ProfileHelper::GetUserIdHashByUserIdForTesting(email)); |
+ user->SetStubImage(user_manager::UserImage( |
+ *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
+ IDR_PROFILE_PICTURE_LOADING)), |
+ user_manager::User::USER_IMAGE_PROFILE, false); |
+ users_.push_back(user); |
+ return user; |
+} |
+ |
+void FakeChromeUserManager::AddKioskAppUser( |
+ const std::string& kiosk_app_username) { |
+ user_manager::User* user = |
+ user_manager::User::CreateKioskAppUser(kiosk_app_username); |
+ user->set_username_hash( |
+ ProfileHelper::GetUserIdHashByUserIdForTesting(kiosk_app_username)); |
+ users_.push_back(user); |
+} |
+ |
+void FakeChromeUserManager::LoginUser(const std::string& email) { |
+ UserLoggedIn(email, ProfileHelper::GetUserIdHashByUserIdForTesting(email), |
+ false /* browser_restart */); |
+} |
+ |
+MultiProfileUserController* |
+FakeChromeUserManager::GetMultiProfileUserController() { |
+ return multi_profile_user_controller_; |
+} |
+ |
+SupervisedUserManager* FakeChromeUserManager::GetSupervisedUserManager() { |
+ return supervised_user_manager_.get(); |
+} |
+ |
+UserImageManager* FakeChromeUserManager::GetUserImageManager( |
+ const std::string& /* user_id */) { |
+ return nullptr; |
+} |
+ |
+void FakeChromeUserManager::SetUserFlow(const std::string& email, |
+ UserFlow* flow) { |
+} |
+ |
+UserFlow* FakeChromeUserManager::GetCurrentUserFlow() const { |
+ return nullptr; |
+} |
+ |
+UserFlow* FakeChromeUserManager::GetUserFlow(const std::string& email) const { |
+ return nullptr; |
+} |
+ |
+void FakeChromeUserManager::ResetUserFlow(const std::string& email) { |
+} |
+ |
+void FakeChromeUserManager::SwitchActiveUser(const std::string& email) { |
+ active_user_id_ = email; |
+ ProfileHelper::Get()->ActiveUserHashChanged( |
+ ProfileHelper::GetUserIdHashByUserIdForTesting(email)); |
+ if (users_.size() && !active_user_id_.empty()) { |
ygorshenin1
2015/01/23 10:18:03
Could you please change users_.size() by !users_.e
merkulova
2015/01/23 12:59:09
Done.
|
+ for (user_manager::User* user : users_) |
+ user->set_is_active(user->email() == active_user_id_); |
+ } |
+} |
+ |
+const std::string& FakeChromeUserManager::GetOwnerEmail() const { |
+ return owner_email_; |
+} |
+ |
+void FakeChromeUserManager::SessionStarted() { |
+} |
+ |
+void FakeChromeUserManager::RemoveUser( |
+ const std::string& email, |
+ user_manager::RemoveUserDelegate* delegate) { |
+} |
+ |
+user_manager::UserList |
+FakeChromeUserManager::GetUsersAllowedForSupervisedUsersCreation() const { |
+ CrosSettings* cros_settings = CrosSettings::Get(); |
+ bool allow_new_user = true; |
+ cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); |
+ bool supervised_users_allowed = AreSupervisedUsersAllowed(); |
+ |
+ // Restricted either by policy or by owner. |
+ if (!allow_new_user || !supervised_users_allowed) |
+ return user_manager::UserList(); |
+ |
+ return ChromeUserManager::GetUsersAllowedAsSupervisedUserManagers(GetUsers()); |
+} |
+ |
+user_manager::UserList FakeChromeUserManager::GetUsersAllowedForMultiProfile() |
+ const { |
+ // Supervised users are not allowed to use multi-profiles. |
+ if (GetLoggedInUsers().size() == 1 && |
+ GetPrimaryUser()->GetType() != user_manager::USER_TYPE_REGULAR) { |
+ return user_manager::UserList(); |
+ } |
+ |
+ user_manager::UserList result; |
+ const user_manager::UserList& users = GetUsers(); |
+ for (user_manager::User* user : users) { |
+ if (user->GetType() == user_manager::USER_TYPE_REGULAR && |
+ !user->is_logged_in()) { |
+ result.push_back(user); |
+ } |
+ } |
+ |
+ return result; |
+} |
+ |
+} // namespace chromeos |