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

Unified Diff: chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc

Issue 824683002: UserManager stack refactoring. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Split for FakeManager complete. Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
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..099a105f7657ee7027292f6becea0c39ea511c40
--- /dev/null
+++ b/chrome/browser/chromeos/login/users/fake_chrome_user_manager.cc
@@ -0,0 +1,148 @@
+// 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/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() {
+ // Can't use STLDeleteElements because of the private destructor of User.
ygorshenin1 2015/01/20 18:33:40 Feel free to mark User::~User() as public. BTW, wh
merkulova 2015/01/21 14:10:33 Removed the d-tor.
+ for (user_manager::UserList::iterator it = user_list_.begin();
+ it != user_list_.end();
+ it = user_list_.erase(it)) {
+ delete *it;
+ }
+}
+
+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);
+ user_list_.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);
+ user_list_.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));
+ user_list_.push_back(user);
+}
+
+void FakeChromeUserManager::LoginUser(const std::string& email) {
+ UserLoggedIn(
+ email, ProfileHelper::GetUserIdHashByUserIdForTesting(email), false);
ygorshenin1 2015/01/20 18:33:40 Could you please add /* browser_restart */ after f
merkulova 2015/01/21 14:10:33 Done.
+}
+
+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 NULL;
ygorshenin1 2015/01/20 18:33:40 Modern fancy approach is to use nullptr instead of
merkulova 2015/01/21 14:10:33 Done.
+}
+
+UserFlow* FakeChromeUserManager::GetCurrentUserFlow() const {
+ return NULL;
+}
+
+UserFlow* FakeChromeUserManager::GetUserFlow(const std::string& email) const {
+ return NULL;
+}
+
+void FakeChromeUserManager::SwitchActiveUser(const std::string& email) {
+ active_user_id_ = email;
+ ProfileHelper::Get()->ActiveUserHashChanged(
+ ProfileHelper::GetUserIdHashByUserIdForTesting(email));
+ if (user_list_.size() && !active_user_id_.empty()) {
+ for (user_manager::UserList::const_iterator it = user_list_.begin();
ygorshenin1 2015/01/20 18:33:40 for (User* user : user_list_) user->set_is_activ
merkulova 2015/01/21 14:10:33 Done.
+ it != user_list_.end(); ++it) {
+ (*it)->set_is_active((*it)->email() == active_user_id_);
+ }
+ }
+}
+
+const std::string& FakeChromeUserManager::GetOwnerEmail() const {
+ return owner_email_;
+}
+
+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 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::UserList::const_iterator it = users.begin();
+ it != users.end();
+ ++it) {
+ if ((*it)->GetType() == user_manager::USER_TYPE_REGULAR &&
+ !(*it)->is_logged_in())
+ result.push_back(*it);
ygorshenin1 2015/01/20 18:33:40 Could you please add curly braces around branch?
merkulova 2015/01/21 14:10:33 Done.
+ }
+
+ return result;
+}
+
+} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698