Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / chromeos / login / mock_user_manager.h
blob346f090be59543a1d69fa551e326c84febcb4ad4
1 // Copyright (c) 2012 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.
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_MOCK_USER_MANAGER_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_MOCK_USER_MANAGER_H_
8 #include <string>
10 #include "base/files/file_path.h"
11 #include "base/memory/weak_ptr.h"
12 #include "chrome/browser/chromeos/login/mock_user_image_manager.h"
13 #include "chrome/browser/chromeos/login/user.h"
14 #include "chrome/browser/chromeos/login/user_flow.h"
15 #include "chrome/browser/chromeos/login/user_image.h"
16 #include "chrome/browser/chromeos/login/user_manager.h"
17 #include "testing/gmock/include/gmock/gmock.h"
19 namespace chromeos {
21 class FakeSupervisedUserManager;
23 class MockUserManager : public UserManager {
24 public:
25 MockUserManager();
26 virtual ~MockUserManager();
28 MOCK_METHOD0(Shutdown, void(void));
29 MOCK_CONST_METHOD0(GetUsersAdmittedForMultiProfile, UserList(void));
30 MOCK_CONST_METHOD0(GetLoggedInUsers, const UserList&(void));
31 MOCK_METHOD0(GetLRULoggedInUsers, const UserList&(void));
32 MOCK_METHOD3(UserLoggedIn, void(
33 const std::string&, const std::string&, bool));
34 MOCK_METHOD1(SwitchActiveUser, void(const std::string& email));
35 MOCK_METHOD0(SessionStarted, void(void));
36 MOCK_METHOD0(RestoreActiveSessions, void(void));
37 MOCK_METHOD2(RemoveUser, void(const std::string&, RemoveUserDelegate*));
38 MOCK_METHOD1(RemoveUserFromList, void(const std::string&));
39 MOCK_CONST_METHOD1(IsKnownUser, bool(const std::string&));
40 MOCK_CONST_METHOD1(FindUser, const User*(const std::string&));
41 MOCK_METHOD1(FindUserAndModify, User*(const std::string&));
42 MOCK_METHOD2(SaveUserOAuthStatus, void(const std::string&,
43 User::OAuthTokenStatus));
44 MOCK_CONST_METHOD1(GetProfileByUser, Profile*(const User*));
45 MOCK_METHOD2(SaveUserDisplayName, void(const std::string&,
46 const base::string16&));
47 MOCK_METHOD2(UpdateUserAccountData,
48 void(const std::string&, const UserAccountData&));
49 MOCK_CONST_METHOD1(GetUserDisplayName, base::string16(const std::string&));
50 MOCK_METHOD2(SaveUserDisplayEmail, void(const std::string&,
51 const std::string&));
52 MOCK_CONST_METHOD1(GetUserDisplayEmail, std::string(const std::string&));
53 MOCK_CONST_METHOD0(IsCurrentUserOwner, bool(void));
54 MOCK_CONST_METHOD0(IsCurrentUserNew, bool(void));
55 MOCK_CONST_METHOD0(IsCurrentUserNonCryptohomeDataEphemeral, bool(void));
56 MOCK_CONST_METHOD0(CanCurrentUserLock, bool(void));
57 MOCK_CONST_METHOD0(IsUserLoggedIn, bool(void));
58 MOCK_CONST_METHOD0(IsLoggedInAsRegularUser, bool(void));
59 MOCK_CONST_METHOD0(IsLoggedInAsDemoUser, bool(void));
60 MOCK_CONST_METHOD0(IsLoggedInAsPublicAccount, bool(void));
61 MOCK_CONST_METHOD0(IsLoggedInAsGuest, bool(void));
62 MOCK_CONST_METHOD0(IsLoggedInAsLocallyManagedUser, bool(void));
63 MOCK_CONST_METHOD0(IsLoggedInAsKioskApp, bool(void));
64 MOCK_CONST_METHOD0(IsLoggedInAsStub, bool(void));
65 MOCK_CONST_METHOD0(IsSessionStarted, bool(void));
66 MOCK_CONST_METHOD0(UserSessionsRestored, bool(void));
67 MOCK_CONST_METHOD0(HasBrowserRestarted, bool(void));
68 MOCK_CONST_METHOD1(IsUserNonCryptohomeDataEphemeral,
69 bool(const std::string&));
70 MOCK_METHOD1(AddObserver, void(UserManager::Observer*));
71 MOCK_METHOD1(RemoveObserver, void(UserManager::Observer*));
72 MOCK_METHOD1(AddSessionStateObserver,
73 void(UserManager::UserSessionStateObserver*));
74 MOCK_METHOD1(RemoveSessionStateObserver,
75 void(UserManager::UserSessionStateObserver*));
76 MOCK_METHOD0(NotifyLocalStateChanged, void(void));
77 MOCK_METHOD2(SetUserFlow, void(const std::string&, UserFlow*));
78 MOCK_METHOD1(ResetUserFlow, void(const std::string&));
80 MOCK_METHOD2(GetAppModeChromeClientOAuthInfo, bool(std::string*,
81 std::string*));
82 MOCK_METHOD2(SetAppModeChromeClientOAuthInfo, void(const std::string&,
83 const std::string&));
84 MOCK_CONST_METHOD0(AreLocallyManagedUsersAllowed, bool(void));
85 MOCK_CONST_METHOD1(GetUserProfileDir,
86 base::FilePath(const std::string& email));
88 // You can't mock these functions easily because nobody can create
89 // User objects but the UserManagerImpl and us.
90 virtual const UserList& GetUsers() const OVERRIDE;
91 virtual const User* GetLoggedInUser() const OVERRIDE;
92 virtual UserList GetUnlockUsers() const OVERRIDE;
93 virtual const std::string& GetOwnerEmail() OVERRIDE;
94 virtual User* GetLoggedInUser() OVERRIDE;
95 virtual const User* GetActiveUser() const OVERRIDE;
96 virtual User* GetActiveUser() OVERRIDE;
97 virtual const User* GetPrimaryUser() const OVERRIDE;
98 virtual User* GetUserByProfile(Profile* profile) const OVERRIDE;
100 virtual UserImageManager* GetUserImageManager(
101 const std::string& user_id) OVERRIDE;
102 virtual SupervisedUserManager* GetSupervisedUserManager() OVERRIDE;
104 virtual UserFlow* GetCurrentUserFlow() const OVERRIDE;
105 virtual UserFlow* GetUserFlow(const std::string&) const OVERRIDE;
106 virtual bool RespectLocalePreference(
107 Profile* profile,
108 const User* user,
109 scoped_ptr<locale_util::SwitchLanguageCallback> callback) const OVERRIDE;
111 // Sets a new User instance. Users previously created by this MockUserManager
112 // become invalid.
113 void SetActiveUser(const std::string& email);
115 // Creates a new public session user. Users previously created by this
116 // MockUserManager become invalid.
117 User* CreatePublicAccountUser(const std::string& email);
119 // Adds a new User instance to the back of the user list. Users previously
120 // created by this MockUserManager remain valid.
121 void AddUser(const std::string& email);
123 // Clears the user list and the active user. Users previously created by this
124 // MockUserManager become invalid.
125 void ClearUserList();
127 scoped_ptr<UserFlow> user_flow_;
128 scoped_ptr<MockUserImageManager> user_image_manager_;
129 scoped_ptr<FakeSupervisedUserManager> supervised_user_manager_;
130 UserList user_list_;
133 } // namespace chromeos
135 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_MOCK_USER_MANAGER_H_