1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/chromeos/login/users/mock_user_manager.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/chromeos/login/users/fake_supervised_user_manager.h" 88bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromeos { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)MockUserManager::MockUserManager() 121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) : user_flow_(new DefaultUserFlow()), 138bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) supervised_user_manager_(new FakeSupervisedUserManager()) {} 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockUserManager::~MockUserManager() { 161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ClearUserList(); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)const UserList& MockUserManager::GetUsers() const { 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return user_list_; 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const User* MockUserManager::GetLoggedInUser() const { 241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return user_list_.empty() ? NULL : user_list_.front(); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)User* MockUserManager::GetLoggedInUser() { 281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return user_list_.empty() ? NULL : user_list_.front(); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)UserList MockUserManager::GetUnlockUsers() const { 32d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return user_list_; 33d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 34d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)const std::string& MockUserManager::GetOwnerEmail() { 361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return GetLoggedInUser()->email(); 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const User* MockUserManager::GetActiveUser() const { 401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return GetLoggedInUser(); 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)User* MockUserManager::GetActiveUser() { 441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return GetLoggedInUser(); 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 47d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)const User* MockUserManager::GetPrimaryUser() const { 481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return GetLoggedInUser(); 49d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 50d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)User* MockUserManager::GetUserByProfile(Profile* profile) const { 521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return user_list_.empty() ? NULL : user_list_.front(); 534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)MultiProfileUserController* MockUserManager::GetMultiProfileUserController() { 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return NULL; 575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)UserImageManager* MockUserManager::GetUserImageManager( 605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const std::string& user_id) { 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return NULL; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 648bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)SupervisedUserManager* MockUserManager::GetSupervisedUserManager() { 658bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return supervised_user_manager_.get(); 668bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 678bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Creates a new User instance. 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void MockUserManager::SetActiveUser(const std::string& email) { 701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ClearUserList(); 711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) AddUser(email); 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)UserFlow* MockUserManager::GetCurrentUserFlow() const { 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return user_flow_.get(); 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)UserFlow* MockUserManager::GetUserFlow(const std::string&) const { 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return user_flow_.get(); 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)User* MockUserManager::CreatePublicAccountUser(const std::string& email) { 831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ClearUserList(); 841e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) user_list_.push_back(User::CreatePublicAccountUser(email)); 851e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return user_list_.back(); 861e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 871e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 881e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void MockUserManager::AddUser(const std::string& email) { 891e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) user_list_.push_back(User::CreateRegularUser(email)); 901e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 911e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 921e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void MockUserManager::ClearUserList() { 931e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Can't use STLDeleteElements because of the protected destructor of User. 941e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) UserList::iterator user; 951e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) for (user = user_list_.begin(); user != user_list_.end(); ++user) 961e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) delete *user; 9758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) user_list_.clear(); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 100f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool MockUserManager::RespectLocalePreference( 101f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Profile* profile, 102f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const User* user, 103f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<locale_util::SwitchLanguageCallback> callback) const { 104f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return false; 1054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace chromeos 108