OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_MOCK_USER_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_MOCK_USER_MANAGER_H_ |
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_MOCK_USER_MANAGER_H_ | 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_MOCK_USER_MANAGER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
11 #include "base/memory/weak_ptr.h" | 11 #include "base/memory/weak_ptr.h" |
12 #include "chrome/browser/chromeos/login/user_flow.h" | 12 #include "chrome/browser/chromeos/login/user_flow.h" |
13 #include "chrome/browser/chromeos/login/users/affiliation.h" | 13 #include "chrome/browser/chromeos/login/users/affiliation.h" |
14 #include "chrome/browser/chromeos/login/users/avatar/mock_user_image_manager.h" | 14 #include "chrome/browser/chromeos/login/users/avatar/mock_user_image_manager.h" |
15 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 15 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
16 #include "components/signin/core/account_id/account_id.h" | |
17 #include "components/user_manager/user.h" | 16 #include "components/user_manager/user.h" |
18 #include "components/user_manager/user_image/user_image.h" | 17 #include "components/user_manager/user_image/user_image.h" |
19 #include "testing/gmock/include/gmock/gmock.h" | 18 #include "testing/gmock/include/gmock/gmock.h" |
20 | 19 |
21 namespace chromeos { | 20 namespace chromeos { |
22 | 21 |
23 class FakeSupervisedUserManager; | 22 class FakeSupervisedUserManager; |
24 | 23 |
25 class MockUserManager : public ChromeUserManager { | 24 class MockUserManager : public ChromeUserManager { |
26 public: | 25 public: |
27 MockUserManager(); | 26 MockUserManager(); |
28 virtual ~MockUserManager(); | 27 virtual ~MockUserManager(); |
29 | 28 |
30 MOCK_METHOD0(Shutdown, void(void)); | 29 MOCK_METHOD0(Shutdown, void(void)); |
31 MOCK_CONST_METHOD0(GetUsersAllowedForMultiProfile, | 30 MOCK_CONST_METHOD0(GetUsersAllowedForMultiProfile, |
32 user_manager::UserList(void)); | 31 user_manager::UserList(void)); |
33 MOCK_CONST_METHOD0(GetUsersAllowedForSupervisedUsersCreation, | 32 MOCK_CONST_METHOD0(GetUsersAllowedForSupervisedUsersCreation, |
34 user_manager::UserList(void)); | 33 user_manager::UserList(void)); |
35 MOCK_CONST_METHOD0(GetLoggedInUsers, const user_manager::UserList&(void)); | 34 MOCK_CONST_METHOD0(GetLoggedInUsers, const user_manager::UserList&(void)); |
36 MOCK_CONST_METHOD0(GetLRULoggedInUsers, const user_manager::UserList&(void)); | 35 MOCK_CONST_METHOD0(GetLRULoggedInUsers, const user_manager::UserList&(void)); |
37 MOCK_METHOD3(UserLoggedIn, void(const AccountId&, const std::string&, bool)); | 36 MOCK_METHOD3(UserLoggedIn, void( |
38 MOCK_METHOD1(SwitchActiveUser, void(const AccountId& account_id)); | 37 const std::string&, const std::string&, bool)); |
| 38 MOCK_METHOD1(SwitchActiveUser, void(const std::string& email)); |
39 MOCK_METHOD0(SessionStarted, void(void)); | 39 MOCK_METHOD0(SessionStarted, void(void)); |
40 MOCK_METHOD2(RemoveUser, | 40 MOCK_METHOD2(RemoveUser, |
41 void(const AccountId&, user_manager::RemoveUserDelegate*)); | 41 void(const std::string&, user_manager::RemoveUserDelegate*)); |
42 MOCK_METHOD1(RemoveUserFromList, void(const AccountId&)); | 42 MOCK_METHOD1(RemoveUserFromList, void(const std::string&)); |
43 MOCK_CONST_METHOD1(IsKnownUser, bool(const AccountId&)); | 43 MOCK_CONST_METHOD1(IsKnownUser, bool(const std::string&)); |
44 MOCK_CONST_METHOD1(FindUser, const user_manager::User*(const AccountId&)); | 44 MOCK_CONST_METHOD1(FindUser, const user_manager::User*(const std::string&)); |
45 MOCK_METHOD1(FindUserAndModify, user_manager::User*(const AccountId&)); | 45 MOCK_METHOD1(FindUserAndModify, user_manager::User*(const std::string&)); |
46 MOCK_METHOD2(SaveUserOAuthStatus, | 46 MOCK_METHOD2(SaveUserOAuthStatus, |
47 void(const AccountId&, user_manager::User::OAuthTokenStatus)); | 47 void(const std::string&, user_manager::User::OAuthTokenStatus)); |
48 MOCK_METHOD2(SaveForceOnlineSignin, void(const AccountId&, bool)); | 48 MOCK_METHOD2(SaveForceOnlineSignin, void(const std::string&, bool)); |
49 MOCK_METHOD2(SaveUserDisplayName, | 49 MOCK_METHOD2(SaveUserDisplayName, void(const std::string&, |
50 void(const AccountId&, const base::string16&)); | 50 const base::string16&)); |
51 MOCK_METHOD2(UpdateUserAccountData, | 51 MOCK_METHOD2(UpdateUserAccountData, |
52 void(const AccountId&, const UserAccountData&)); | 52 void(const std::string&, const UserAccountData&)); |
53 MOCK_CONST_METHOD1(GetUserDisplayName, base::string16(const AccountId&)); | 53 MOCK_CONST_METHOD1(GetUserDisplayName, base::string16(const std::string&)); |
54 MOCK_METHOD2(SaveUserDisplayEmail, | 54 MOCK_METHOD2(SaveUserDisplayEmail, void(const std::string&, |
55 void(const AccountId&, const std::string&)); | 55 const std::string&)); |
56 MOCK_CONST_METHOD1(GetUserDisplayEmail, std::string(const AccountId&)); | 56 MOCK_CONST_METHOD1(GetUserDisplayEmail, std::string(const std::string&)); |
57 MOCK_CONST_METHOD0(IsCurrentUserOwner, bool(void)); | 57 MOCK_CONST_METHOD0(IsCurrentUserOwner, bool(void)); |
58 MOCK_CONST_METHOD0(IsCurrentUserNew, bool(void)); | 58 MOCK_CONST_METHOD0(IsCurrentUserNew, bool(void)); |
59 MOCK_CONST_METHOD0(IsCurrentUserNonCryptohomeDataEphemeral, bool(void)); | 59 MOCK_CONST_METHOD0(IsCurrentUserNonCryptohomeDataEphemeral, bool(void)); |
60 MOCK_CONST_METHOD0(CanCurrentUserLock, bool(void)); | 60 MOCK_CONST_METHOD0(CanCurrentUserLock, bool(void)); |
61 MOCK_CONST_METHOD0(IsUserLoggedIn, bool(void)); | 61 MOCK_CONST_METHOD0(IsUserLoggedIn, bool(void)); |
62 MOCK_CONST_METHOD0(IsLoggedInAsUserWithGaiaAccount, bool(void)); | 62 MOCK_CONST_METHOD0(IsLoggedInAsUserWithGaiaAccount, bool(void)); |
63 MOCK_CONST_METHOD0(IsLoggedInAsPublicAccount, bool(void)); | 63 MOCK_CONST_METHOD0(IsLoggedInAsPublicAccount, bool(void)); |
64 MOCK_CONST_METHOD0(IsLoggedInAsGuest, bool(void)); | 64 MOCK_CONST_METHOD0(IsLoggedInAsGuest, bool(void)); |
65 MOCK_CONST_METHOD0(IsLoggedInAsSupervisedUser, bool(void)); | 65 MOCK_CONST_METHOD0(IsLoggedInAsSupervisedUser, bool(void)); |
66 MOCK_CONST_METHOD0(IsLoggedInAsKioskApp, bool(void)); | 66 MOCK_CONST_METHOD0(IsLoggedInAsKioskApp, bool(void)); |
67 MOCK_CONST_METHOD0(IsLoggedInAsStub, bool(void)); | 67 MOCK_CONST_METHOD0(IsLoggedInAsStub, bool(void)); |
68 MOCK_CONST_METHOD0(IsSessionStarted, bool(void)); | 68 MOCK_CONST_METHOD0(IsSessionStarted, bool(void)); |
69 MOCK_CONST_METHOD1(IsUserNonCryptohomeDataEphemeral, bool(const AccountId&)); | 69 MOCK_CONST_METHOD1(IsUserNonCryptohomeDataEphemeral, |
| 70 bool(const std::string&)); |
70 MOCK_METHOD1(AddObserver, void(UserManager::Observer*)); | 71 MOCK_METHOD1(AddObserver, void(UserManager::Observer*)); |
71 MOCK_METHOD1(RemoveObserver, void(UserManager::Observer*)); | 72 MOCK_METHOD1(RemoveObserver, void(UserManager::Observer*)); |
72 MOCK_METHOD1(AddSessionStateObserver, | 73 MOCK_METHOD1(AddSessionStateObserver, |
73 void(UserManager::UserSessionStateObserver*)); | 74 void(UserManager::UserSessionStateObserver*)); |
74 MOCK_METHOD1(RemoveSessionStateObserver, | 75 MOCK_METHOD1(RemoveSessionStateObserver, |
75 void(UserManager::UserSessionStateObserver*)); | 76 void(UserManager::UserSessionStateObserver*)); |
76 MOCK_METHOD0(NotifyLocalStateChanged, void(void)); | 77 MOCK_METHOD0(NotifyLocalStateChanged, void(void)); |
77 MOCK_CONST_METHOD0(AreSupervisedUsersAllowed, bool(void)); | 78 MOCK_CONST_METHOD0(AreSupervisedUsersAllowed, bool(void)); |
78 | 79 |
79 // UserManagerBase overrides: | 80 // UserManagerBase overrides: |
80 MOCK_CONST_METHOD0(AreEphemeralUsersEnabled, bool(void)); | 81 MOCK_CONST_METHOD0(AreEphemeralUsersEnabled, bool(void)); |
81 MOCK_CONST_METHOD0(GetApplicationLocale, const std::string&(void)); | 82 MOCK_CONST_METHOD0(GetApplicationLocale, const std::string&(void)); |
82 MOCK_CONST_METHOD0(GetLocalState, PrefService*(void)); | 83 MOCK_CONST_METHOD0(GetLocalState, PrefService*(void)); |
83 MOCK_CONST_METHOD2(HandleUserOAuthTokenStatusChange, | 84 MOCK_CONST_METHOD2(HandleUserOAuthTokenStatusChange, |
84 void(const AccountId&, | 85 void(const std::string&, |
85 user_manager::User::OAuthTokenStatus status)); | 86 user_manager::User::OAuthTokenStatus status)); |
86 MOCK_CONST_METHOD0(IsEnterpriseManaged, bool(void)); | 87 MOCK_CONST_METHOD0(IsEnterpriseManaged, bool(void)); |
87 MOCK_METHOD1(LoadPublicAccounts, void(std::set<AccountId>*)); | 88 MOCK_METHOD1(LoadPublicAccounts, void(std::set<std::string>*)); |
88 MOCK_METHOD0(PerformPreUserListLoadingActions, void(void)); | 89 MOCK_METHOD0(PerformPreUserListLoadingActions, void(void)); |
89 MOCK_METHOD0(PerformPostUserListLoadingActions, void(void)); | 90 MOCK_METHOD0(PerformPostUserListLoadingActions, void(void)); |
90 MOCK_METHOD1(PerformPostUserLoggedInActions, void(bool)); | 91 MOCK_METHOD1(PerformPostUserLoggedInActions, void(bool)); |
91 MOCK_CONST_METHOD1(IsDemoApp, bool(const AccountId&)); | 92 MOCK_CONST_METHOD1(IsDemoApp, bool(const std::string&)); |
92 MOCK_CONST_METHOD1(IsKioskApp, bool(const AccountId&)); | 93 MOCK_CONST_METHOD1(IsKioskApp, bool(const std::string&)); |
93 MOCK_CONST_METHOD1(IsPublicAccountMarkedForRemoval, bool(const AccountId&)); | 94 MOCK_CONST_METHOD1(IsPublicAccountMarkedForRemoval, bool(const std::string&)); |
94 MOCK_METHOD0(DemoAccountLoggedIn, void(void)); | 95 MOCK_METHOD0(DemoAccountLoggedIn, void(void)); |
95 MOCK_METHOD1(KioskAppLoggedIn, void(const AccountId&)); | 96 MOCK_METHOD1(KioskAppLoggedIn, void(const std::string&)); |
96 MOCK_METHOD1(PublicAccountUserLoggedIn, void(user_manager::User*)); | 97 MOCK_METHOD1(PublicAccountUserLoggedIn, void(user_manager::User*)); |
97 MOCK_METHOD1(SupervisedUserLoggedIn, void(const AccountId&)); | 98 MOCK_METHOD1(SupervisedUserLoggedIn, void(const std::string&)); |
98 MOCK_METHOD1(OnUserRemoved, void(const AccountId&)); | 99 MOCK_METHOD1(OnUserRemoved, void(const std::string&)); |
| 100 MOCK_METHOD2(SetUserAffiliation, |
| 101 void(const std::string& user_id, |
| 102 const chromeos::AffiliationIDSet& user_affiliation_ids)); |
99 | 103 |
100 // You can't mock these functions easily because nobody can create | 104 // You can't mock these functions easily because nobody can create |
101 // User objects but the ChromeUserManager and us. | 105 // User objects but the ChromeUserManager and us. |
102 const user_manager::UserList& GetUsers() const override; | 106 const user_manager::UserList& GetUsers() const override; |
103 const user_manager::User* GetLoggedInUser() const override; | 107 const user_manager::User* GetLoggedInUser() const override; |
104 user_manager::UserList GetUnlockUsers() const override; | 108 user_manager::UserList GetUnlockUsers() const override; |
105 const AccountId& GetOwnerAccountId() const override; | 109 const std::string& GetOwnerEmail() const override; |
106 user_manager::User* GetLoggedInUser() override; | 110 user_manager::User* GetLoggedInUser() override; |
107 const user_manager::User* GetActiveUser() const override; | 111 const user_manager::User* GetActiveUser() const override; |
108 user_manager::User* GetActiveUser() override; | 112 user_manager::User* GetActiveUser() override; |
109 const user_manager::User* GetPrimaryUser() const override; | 113 const user_manager::User* GetPrimaryUser() const override; |
110 | 114 |
111 // ChromeUserManager overrides: | 115 // ChromeUserManager overrides: |
112 BootstrapManager* GetBootstrapManager() override; | 116 BootstrapManager* GetBootstrapManager() override; |
113 MultiProfileUserController* GetMultiProfileUserController() override; | 117 MultiProfileUserController* GetMultiProfileUserController() override; |
114 UserImageManager* GetUserImageManager(const AccountId& account_id) override; | 118 UserImageManager* GetUserImageManager(const std::string& user_id) override; |
115 SupervisedUserManager* GetSupervisedUserManager() override; | 119 SupervisedUserManager* GetSupervisedUserManager() override; |
116 MOCK_METHOD2(SetUserFlow, void(const AccountId&, UserFlow*)); | 120 MOCK_METHOD2(SetUserFlow, void(const std::string&, UserFlow*)); |
117 MOCK_METHOD1(ResetUserFlow, void(const AccountId&)); | 121 MOCK_METHOD1(ResetUserFlow, void(const std::string&)); |
118 UserFlow* GetCurrentUserFlow() const override; | 122 UserFlow* GetCurrentUserFlow() const override; |
119 UserFlow* GetUserFlow(const AccountId&) const override; | 123 UserFlow* GetUserFlow(const std::string&) const override; |
120 MOCK_METHOD2(SetUserAffiliation, | |
121 void(const std::string& user_id, | |
122 const chromeos::AffiliationIDSet& user_affiliation_ids)); | |
123 | 124 |
124 bool ShouldReportUser(const std::string& user_id) const override; | 125 bool ShouldReportUser(const std::string& user_id) const override; |
125 | 126 |
126 // Sets a new User instance. Users previously created by this MockUserManager | 127 // Sets a new User instance. Users previously created by this MockUserManager |
127 // become invalid. | 128 // become invalid. |
128 void SetActiveUser(const AccountId& account_id); | 129 void SetActiveUser(const std::string& email); |
129 | 130 |
130 // Creates a new public session user. Users previously created by this | 131 // Creates a new public session user. Users previously created by this |
131 // MockUserManager become invalid. | 132 // MockUserManager become invalid. |
132 user_manager::User* CreatePublicAccountUser(const AccountId& account_id); | 133 user_manager::User* CreatePublicAccountUser(const std::string& email); |
133 | 134 |
134 // Creates a new kiosk app user. Users previously created by this | 135 // Creates a new kiosk app user. Users previously created by this |
135 // MockUserManager become invalid. | 136 // MockUserManager become invalid. |
136 user_manager::User* CreateKioskAppUser(const AccountId& account_id); | 137 user_manager::User* CreateKioskAppUser(const std::string& user_id); |
137 | 138 |
138 // Adds a new User instance to the back of the user list. Users previously | 139 // Adds a new User instance to the back of the user list. Users previously |
139 // created by this MockUserManager remain valid. The added User is not | 140 // created by this MockUserManager remain valid. The added User is not |
140 // affiliated with the domain, that owns the device. | 141 // affiliated with the domain, that owns the device. |
141 void AddUser(const AccountId& account_id); | 142 void AddUser(const std::string& email); |
142 | 143 |
143 // The same as AddUser, but allows specifying affiliation with the domain, | 144 // The same as AddUser, but allows specifying affiliation with the domain, |
144 // that owns the device. | 145 // that owns the device. |
145 void AddUserWithAffiliation(const AccountId& account_id, bool is_affiliated); | 146 void AddUserWithAffiliation(const std::string& email, bool is_affiliated); |
146 | 147 |
147 // Clears the user list and the active user. Users previously created by this | 148 // Clears the user list and the active user. Users previously created by this |
148 // MockUserManager become invalid. | 149 // MockUserManager become invalid. |
149 void ClearUserList(); | 150 void ClearUserList(); |
150 | 151 |
151 scoped_ptr<UserFlow> user_flow_; | 152 scoped_ptr<UserFlow> user_flow_; |
152 scoped_ptr<MockUserImageManager> user_image_manager_; | 153 scoped_ptr<MockUserImageManager> user_image_manager_; |
153 scoped_ptr<FakeSupervisedUserManager> supervised_user_manager_; | 154 scoped_ptr<FakeSupervisedUserManager> supervised_user_manager_; |
154 user_manager::UserList user_list_; | 155 user_manager::UserList user_list_; |
155 // TODO (alemate): remove temporary_owner_account_id_ as soon as | |
156 // User::GetAccountId will | |
157 // return constant reference. crbug.com/546863 | |
158 mutable AccountId temporary_owner_account_id_ = EmptyAccountId(); | |
159 }; | 156 }; |
160 | 157 |
161 } // namespace chromeos | 158 } // namespace chromeos |
162 | 159 |
163 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_MOCK_USER_MANAGER_H_ | 160 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_MOCK_USER_MANAGER_H_ |
OLD | NEW |