Home | History | Annotate | Download | only in users
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/chromeos/login/users/mock_user_manager.h"
      6 
      7 #include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h"
      8 
      9 namespace chromeos {
     10 
     11 MockUserManager::MockUserManager()
     12     : user_flow_(new DefaultUserFlow()),
     13       supervised_user_manager_(new FakeSupervisedUserManager()) {}
     14 
     15 MockUserManager::~MockUserManager() {
     16   ClearUserList();
     17 }
     18 
     19 const UserList& MockUserManager::GetUsers() const {
     20   return user_list_;
     21 }
     22 
     23 const User* MockUserManager::GetLoggedInUser() const {
     24   return user_list_.empty() ? NULL : user_list_.front();
     25 }
     26 
     27 User* MockUserManager::GetLoggedInUser() {
     28   return user_list_.empty() ? NULL : user_list_.front();
     29 }
     30 
     31 UserList MockUserManager::GetUnlockUsers() const {
     32   return user_list_;
     33 }
     34 
     35 const std::string& MockUserManager::GetOwnerEmail() {
     36   return GetLoggedInUser()->email();
     37 }
     38 
     39 const User* MockUserManager::GetActiveUser() const {
     40   return GetLoggedInUser();
     41 }
     42 
     43 User* MockUserManager::GetActiveUser() {
     44   return GetLoggedInUser();
     45 }
     46 
     47 const User* MockUserManager::GetPrimaryUser() const {
     48   return GetLoggedInUser();
     49 }
     50 
     51 User* MockUserManager::GetUserByProfile(Profile* profile) const {
     52   return user_list_.empty() ? NULL : user_list_.front();
     53 }
     54 
     55 MultiProfileUserController* MockUserManager::GetMultiProfileUserController() {
     56   return NULL;
     57 }
     58 
     59 UserImageManager* MockUserManager::GetUserImageManager(
     60     const std::string& user_id) {
     61   return NULL;
     62 }
     63 
     64 SupervisedUserManager* MockUserManager::GetSupervisedUserManager() {
     65   return supervised_user_manager_.get();
     66 }
     67 
     68 // Creates a new User instance.
     69 void MockUserManager::SetActiveUser(const std::string& email) {
     70   ClearUserList();
     71   AddUser(email);
     72 }
     73 
     74 UserFlow* MockUserManager::GetCurrentUserFlow() const {
     75   return user_flow_.get();
     76 }
     77 
     78 UserFlow* MockUserManager::GetUserFlow(const std::string&) const {
     79   return user_flow_.get();
     80 }
     81 
     82 User* MockUserManager::CreatePublicAccountUser(const std::string& email) {
     83   ClearUserList();
     84   user_list_.push_back(User::CreatePublicAccountUser(email));
     85   return user_list_.back();
     86 }
     87 
     88 void MockUserManager::AddUser(const std::string& email) {
     89   user_list_.push_back(User::CreateRegularUser(email));
     90 }
     91 
     92 void MockUserManager::ClearUserList() {
     93   // Can't use STLDeleteElements because of the protected destructor of User.
     94   UserList::iterator user;
     95   for (user = user_list_.begin(); user != user_list_.end(); ++user)
     96     delete *user;
     97   user_list_.clear();
     98 }
     99 
    100 bool MockUserManager::RespectLocalePreference(
    101     Profile* profile,
    102     const User* user,
    103     scoped_ptr<locale_util::SwitchLanguageCallback> callback) const {
    104   return false;
    105 }
    106 
    107 }  // namespace chromeos
    108