OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 9 #include "chrome/browser/chromeos/login/existing_user_controller.h" |
10 #include "chrome/browser/chromeos/login/ui/mock_login_display.h" | 10 #include "chrome/browser/chromeos/login/ui/mock_login_display.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 CrosSettings::Get()->SetInteger( | 94 CrosSettings::Get()->SetInteger( |
95 kAccountsPrefDeviceLocalAccountAutoLoginDelay, | 95 kAccountsPrefDeviceLocalAccountAutoLoginDelay, |
96 delay); | 96 delay); |
97 } | 97 } |
98 | 98 |
99 // ExistingUserController private member accessors. | 99 // ExistingUserController private member accessors. |
100 base::OneShotTimer* auto_login_timer() { | 100 base::OneShotTimer* auto_login_timer() { |
101 return existing_user_controller()->auto_login_timer_.get(); | 101 return existing_user_controller()->auto_login_timer_.get(); |
102 } | 102 } |
103 | 103 |
104 const std::string& auto_login_username() const { | 104 const AccountId& auto_login_account_id() const { |
105 return existing_user_controller()->public_session_auto_login_username_; | 105 return existing_user_controller()->public_session_auto_login_account_id_; |
106 } | 106 } |
107 void set_auto_login_username(const std::string& username) { | 107 void set_auto_login_account_id(const AccountId& account_id) { |
108 existing_user_controller()->public_session_auto_login_username_ = username; | 108 existing_user_controller()->public_session_auto_login_account_id_ = |
| 109 account_id; |
109 } | 110 } |
110 | 111 |
111 int auto_login_delay() const { | 112 int auto_login_delay() const { |
112 return existing_user_controller()->public_session_auto_login_delay_; | 113 return existing_user_controller()->public_session_auto_login_delay_; |
113 } | 114 } |
114 void set_auto_login_delay(int delay) { | 115 void set_auto_login_delay(int delay) { |
115 existing_user_controller()->public_session_auto_login_delay_ = delay; | 116 existing_user_controller()->public_session_auto_login_delay_ = delay; |
116 } | 117 } |
117 | 118 |
118 bool is_login_in_progress() const { | 119 bool is_login_in_progress() const { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 MockUserManager* mock_user_manager_; | 151 MockUserManager* mock_user_manager_; |
151 ScopedUserManagerEnabler scoped_user_manager_; | 152 ScopedUserManagerEnabler scoped_user_manager_; |
152 | 153 |
153 // |existing_user_controller_| must be destroyed before | 154 // |existing_user_controller_| must be destroyed before |
154 // |device_settings_test_helper_|. | 155 // |device_settings_test_helper_|. |
155 scoped_ptr<ExistingUserController> existing_user_controller_; | 156 scoped_ptr<ExistingUserController> existing_user_controller_; |
156 }; | 157 }; |
157 | 158 |
158 TEST_F(ExistingUserControllerAutoLoginTest, StartAutoLoginTimer) { | 159 TEST_F(ExistingUserControllerAutoLoginTest, StartAutoLoginTimer) { |
159 // Timer shouldn't start until signin screen is ready. | 160 // Timer shouldn't start until signin screen is ready. |
160 set_auto_login_username(auto_login_account_id_.GetUserEmail()); | 161 set_auto_login_account_id(auto_login_account_id_); |
161 set_auto_login_delay(kAutoLoginDelay2); | 162 set_auto_login_delay(kAutoLoginDelay2); |
162 existing_user_controller()->StartPublicSessionAutoLoginTimer(); | 163 existing_user_controller()->StartPublicSessionAutoLoginTimer(); |
163 EXPECT_FALSE(auto_login_timer()); | 164 EXPECT_FALSE(auto_login_timer()); |
164 | 165 |
165 // Timer shouldn't start if the policy isn't set. | 166 // Timer shouldn't start if the policy isn't set. |
166 set_auto_login_username(""); | 167 set_auto_login_account_id(EmptyAccountId()); |
167 existing_user_controller()->OnSigninScreenReady(); | 168 existing_user_controller()->OnSigninScreenReady(); |
168 existing_user_controller()->StartPublicSessionAutoLoginTimer(); | 169 existing_user_controller()->StartPublicSessionAutoLoginTimer(); |
169 EXPECT_FALSE(auto_login_timer()); | 170 EXPECT_FALSE(auto_login_timer()); |
170 | 171 |
171 // Timer shouldn't fire in the middle of a login attempt. | 172 // Timer shouldn't fire in the middle of a login attempt. |
172 set_auto_login_username(auto_login_account_id_.GetUserEmail()); | 173 set_auto_login_account_id(auto_login_account_id_); |
173 set_is_login_in_progress(true); | 174 set_is_login_in_progress(true); |
174 existing_user_controller()->StartPublicSessionAutoLoginTimer(); | 175 existing_user_controller()->StartPublicSessionAutoLoginTimer(); |
175 EXPECT_FALSE(auto_login_timer()); | 176 EXPECT_FALSE(auto_login_timer()); |
176 | 177 |
177 // Otherwise start. | 178 // Otherwise start. |
178 set_is_login_in_progress(false); | 179 set_is_login_in_progress(false); |
179 existing_user_controller()->StartPublicSessionAutoLoginTimer(); | 180 existing_user_controller()->StartPublicSessionAutoLoginTimer(); |
180 ASSERT_TRUE(auto_login_timer()); | 181 ASSERT_TRUE(auto_login_timer()); |
181 EXPECT_TRUE(auto_login_timer()->IsRunning()); | 182 EXPECT_TRUE(auto_login_timer()->IsRunning()); |
182 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), | 183 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), |
183 kAutoLoginDelay2); | 184 kAutoLoginDelay2); |
184 } | 185 } |
185 | 186 |
186 TEST_F(ExistingUserControllerAutoLoginTest, StopAutoLoginTimer) { | 187 TEST_F(ExistingUserControllerAutoLoginTest, StopAutoLoginTimer) { |
187 existing_user_controller()->OnSigninScreenReady(); | 188 existing_user_controller()->OnSigninScreenReady(); |
188 set_auto_login_username(auto_login_account_id_.GetUserEmail()); | 189 set_auto_login_account_id(auto_login_account_id_); |
189 set_auto_login_delay(kAutoLoginDelay2); | 190 set_auto_login_delay(kAutoLoginDelay2); |
190 | 191 |
191 existing_user_controller()->StartPublicSessionAutoLoginTimer(); | 192 existing_user_controller()->StartPublicSessionAutoLoginTimer(); |
192 ASSERT_TRUE(auto_login_timer()); | 193 ASSERT_TRUE(auto_login_timer()); |
193 EXPECT_TRUE(auto_login_timer()->IsRunning()); | 194 EXPECT_TRUE(auto_login_timer()->IsRunning()); |
194 | 195 |
195 existing_user_controller()->StopPublicSessionAutoLoginTimer(); | 196 existing_user_controller()->StopPublicSessionAutoLoginTimer(); |
196 ASSERT_TRUE(auto_login_timer()); | 197 ASSERT_TRUE(auto_login_timer()); |
197 EXPECT_FALSE(auto_login_timer()->IsRunning()); | 198 EXPECT_FALSE(auto_login_timer()->IsRunning()); |
198 } | 199 } |
199 | 200 |
200 TEST_F(ExistingUserControllerAutoLoginTest, ResetAutoLoginTimer) { | 201 TEST_F(ExistingUserControllerAutoLoginTest, ResetAutoLoginTimer) { |
201 existing_user_controller()->OnSigninScreenReady(); | 202 existing_user_controller()->OnSigninScreenReady(); |
202 set_auto_login_username(auto_login_account_id_.GetUserEmail()); | 203 set_auto_login_account_id(auto_login_account_id_); |
203 | 204 |
204 // Timer starts off not running. | 205 // Timer starts off not running. |
205 EXPECT_FALSE(auto_login_timer()); | 206 EXPECT_FALSE(auto_login_timer()); |
206 | 207 |
207 // When the timer isn't running, nothing should happen. | 208 // When the timer isn't running, nothing should happen. |
208 existing_user_controller()->ResetPublicSessionAutoLoginTimer(); | 209 existing_user_controller()->ResetPublicSessionAutoLoginTimer(); |
209 EXPECT_FALSE(auto_login_timer()); | 210 EXPECT_FALSE(auto_login_timer()); |
210 | 211 |
211 // Start the timer. | 212 // Start the timer. |
212 set_auto_login_delay(kAutoLoginDelay2); | 213 set_auto_login_delay(kAutoLoginDelay2); |
(...skipping 13 matching lines...) Expand all Loading... |
226 kAutoLoginDelay1); | 227 kAutoLoginDelay1); |
227 } | 228 } |
228 | 229 |
229 TEST_F(ExistingUserControllerAutoLoginTest, ConfigureAutoLogin) { | 230 TEST_F(ExistingUserControllerAutoLoginTest, ConfigureAutoLogin) { |
230 existing_user_controller()->OnSigninScreenReady(); | 231 existing_user_controller()->OnSigninScreenReady(); |
231 | 232 |
232 // Timer shouldn't start when the policy is disabled. | 233 // Timer shouldn't start when the policy is disabled. |
233 ConfigureAutoLogin(); | 234 ConfigureAutoLogin(); |
234 EXPECT_FALSE(auto_login_timer()); | 235 EXPECT_FALSE(auto_login_timer()); |
235 EXPECT_EQ(auto_login_delay(), 0); | 236 EXPECT_EQ(auto_login_delay(), 0); |
236 EXPECT_EQ(auto_login_username(), ""); | 237 EXPECT_EQ(auto_login_account_id(), EmptyAccountId()); |
237 | 238 |
238 // Timer shouldn't start when the delay alone is set. | 239 // Timer shouldn't start when the delay alone is set. |
239 SetAutoLoginSettings("", kAutoLoginDelay1); | 240 SetAutoLoginSettings("", kAutoLoginDelay1); |
240 ConfigureAutoLogin(); | 241 ConfigureAutoLogin(); |
241 EXPECT_FALSE(auto_login_timer()); | 242 EXPECT_FALSE(auto_login_timer()); |
242 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay1); | 243 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay1); |
243 EXPECT_EQ(auto_login_username(), ""); | 244 EXPECT_EQ(auto_login_account_id(), EmptyAccountId()); |
244 | 245 |
245 // Timer should start when the account ID is set. | 246 // Timer should start when the account ID is set. |
246 SetAutoLoginSettings(auto_login_user_id_, kAutoLoginDelay1); | 247 SetAutoLoginSettings(auto_login_user_id_, kAutoLoginDelay1); |
247 ConfigureAutoLogin(); | 248 ConfigureAutoLogin(); |
248 ASSERT_TRUE(auto_login_timer()); | 249 ASSERT_TRUE(auto_login_timer()); |
249 EXPECT_TRUE(auto_login_timer()->IsRunning()); | 250 EXPECT_TRUE(auto_login_timer()->IsRunning()); |
250 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), | 251 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), |
251 kAutoLoginDelay1); | 252 kAutoLoginDelay1); |
252 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay1); | 253 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay1); |
253 EXPECT_EQ(auto_login_username(), auto_login_account_id_.GetUserEmail()); | 254 EXPECT_EQ(auto_login_account_id(), auto_login_account_id_); |
254 | 255 |
255 // Timer should restart when the delay is changed. | 256 // Timer should restart when the delay is changed. |
256 SetAutoLoginSettings(auto_login_user_id_, kAutoLoginDelay2); | 257 SetAutoLoginSettings(auto_login_user_id_, kAutoLoginDelay2); |
257 ConfigureAutoLogin(); | 258 ConfigureAutoLogin(); |
258 ASSERT_TRUE(auto_login_timer()); | 259 ASSERT_TRUE(auto_login_timer()); |
259 EXPECT_TRUE(auto_login_timer()->IsRunning()); | 260 EXPECT_TRUE(auto_login_timer()->IsRunning()); |
260 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), | 261 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), |
261 kAutoLoginDelay2); | 262 kAutoLoginDelay2); |
262 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay2); | 263 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay2); |
263 EXPECT_EQ(auto_login_username(), auto_login_account_id_.GetUserEmail()); | 264 EXPECT_EQ(auto_login_account_id(), auto_login_account_id_); |
264 | 265 |
265 // Timer should stop when the account ID is unset. | 266 // Timer should stop when the account ID is unset. |
266 SetAutoLoginSettings("", kAutoLoginDelay2); | 267 SetAutoLoginSettings("", kAutoLoginDelay2); |
267 ConfigureAutoLogin(); | 268 ConfigureAutoLogin(); |
268 ASSERT_TRUE(auto_login_timer()); | 269 ASSERT_TRUE(auto_login_timer()); |
269 EXPECT_FALSE(auto_login_timer()->IsRunning()); | 270 EXPECT_FALSE(auto_login_timer()->IsRunning()); |
270 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), | 271 EXPECT_EQ(auto_login_timer()->GetCurrentDelay().InMilliseconds(), |
271 kAutoLoginDelay2); | 272 kAutoLoginDelay2); |
272 EXPECT_EQ(auto_login_username(), ""); | 273 EXPECT_EQ(auto_login_account_id(), EmptyAccountId()); |
273 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay2); | 274 EXPECT_EQ(auto_login_delay(), kAutoLoginDelay2); |
274 } | 275 } |
275 | 276 |
276 } // namespace chromeos | 277 } // namespace chromeos |
OLD | NEW |