OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/signin/easy_unlock_auth_attempt.h" | 5 #include "chrome/browser/signin/easy_unlock_auth_attempt.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "chrome/browser/profiles/profile.h" | |
Ilya Sherman
2015/04/24 21:22:01
nit: Not needed?
msarda
2015/04/27 11:29:24
Done.
| |
8 #include "chrome/browser/signin/easy_unlock_app_manager.h" | 9 #include "chrome/browser/signin/easy_unlock_app_manager.h" |
9 #include "chrome/browser/signin/screenlock_bridge.h" | 10 #include "chrome/browser/signin/easy_unlock_util.h" |
11 #include "chrome/browser/signin/signin_manager_factory.h" | |
Ilya Sherman
2015/04/24 21:22:01
nit: Not needed?
msarda
2015/04/27 11:29:24
Done.
| |
12 #include "components/proximity_auth/screenlock_bridge.h" | |
13 #include "components/signin/core/browser/signin_manager_base.h" | |
Ilya Sherman
2015/04/24 21:22:01
nit: Not needed?
msarda
2015/04/27 11:29:24
Done.
| |
10 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
11 | 15 |
12 #if defined(OS_CHROMEOS) | 16 #if defined(OS_CHROMEOS) |
13 #include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_manager.h" | 17 #include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_manager.h" |
14 #endif | 18 #endif |
15 | 19 |
16 namespace { | 20 namespace { |
17 | 21 |
18 // Fake user ids used in tests. | 22 // Fake user ids used in tests. |
19 const char kTestUser1[] = "user1"; | 23 const char kTestUser1[] = "user1"; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
93 } | 97 } |
94 | 98 |
95 private: | 99 private: |
96 size_t auth_attempt_count_; | 100 size_t auth_attempt_count_; |
97 bool auth_attempt_should_fail_; | 101 bool auth_attempt_should_fail_; |
98 | 102 |
99 DISALLOW_COPY_AND_ASSIGN(FakeAppManager); | 103 DISALLOW_COPY_AND_ASSIGN(FakeAppManager); |
100 }; | 104 }; |
101 | 105 |
102 // Fake lock handler to be used in these tests. | 106 // Fake lock handler to be used in these tests. |
103 class TestLockHandler : public ScreenlockBridge::LockHandler { | 107 class TestLockHandler : public proximity_auth::ScreenlockBridge::LockHandler { |
104 public: | 108 public: |
105 // The state of unlock/signin procedure. | 109 // The state of unlock/signin procedure. |
106 enum AuthState { | 110 enum AuthState { |
107 STATE_NONE, | 111 STATE_NONE, |
108 STATE_ATTEMPTING_UNLOCK, | 112 STATE_ATTEMPTING_UNLOCK, |
109 STATE_UNLOCK_CANCELED, | 113 STATE_UNLOCK_CANCELED, |
110 STATE_UNLOCK_DONE, | 114 STATE_UNLOCK_DONE, |
111 STATE_ATTEMPTING_SIGNIN, | 115 STATE_ATTEMPTING_SIGNIN, |
112 STATE_SIGNIN_CANCELED, | 116 STATE_SIGNIN_CANCELED, |
113 STATE_SIGNIN_DONE | 117 STATE_SIGNIN_DONE |
(...skipping 12 matching lines...) Expand all Loading... | |
126 void set_user_id(const std::string& value) { user_id_ = value; } | 130 void set_user_id(const std::string& value) { user_id_ = value; } |
127 | 131 |
128 // Sets the secret that is expected to be sent to |AttemptEasySignin| | 132 // Sets the secret that is expected to be sent to |AttemptEasySignin| |
129 void set_expected_secret(const std::string& value) { | 133 void set_expected_secret(const std::string& value) { |
130 expected_secret_ = value; | 134 expected_secret_ = value; |
131 } | 135 } |
132 | 136 |
133 // Not using |SetAuthType| to make sure it's not called during tests. | 137 // Not using |SetAuthType| to make sure it's not called during tests. |
134 void set_auth_type(AuthType value) { auth_type_ = value; } | 138 void set_auth_type(AuthType value) { auth_type_ = value; } |
135 | 139 |
136 // ScreenlockBridge::LockHandler implementation: | 140 // proximity_auth::ScreenlockBridge::LockHandler implementation: |
137 void ShowBannerMessage(const base::string16& message) override { | 141 void ShowBannerMessage(const base::string16& message) override { |
138 ADD_FAILURE() << "Should not be reached."; | 142 ADD_FAILURE() << "Should not be reached."; |
139 } | 143 } |
140 | 144 |
141 void ShowUserPodCustomIcon( | 145 void ShowUserPodCustomIcon( |
142 const std::string& user_email, | 146 const std::string& user_email, |
143 const ScreenlockBridge::UserPodCustomIconOptions& icon) override { | 147 const proximity_auth::ScreenlockBridge::UserPodCustomIconOptions& icon) |
148 override { | |
144 ADD_FAILURE() << "Should not be reached."; | 149 ADD_FAILURE() << "Should not be reached."; |
145 } | 150 } |
146 | 151 |
147 void HideUserPodCustomIcon(const std::string& user_email) override { | 152 void HideUserPodCustomIcon(const std::string& user_email) override { |
148 ADD_FAILURE() << "Should not be reached."; | 153 ADD_FAILURE() << "Should not be reached."; |
149 } | 154 } |
150 | 155 |
151 void EnableInput() override { | 156 void EnableInput() override { |
152 ASSERT_EQ(STATE_ATTEMPTING_UNLOCK, state_); | 157 ASSERT_EQ(STATE_ATTEMPTING_UNLOCK, state_); |
153 state_ = STATE_UNLOCK_CANCELED; | 158 state_ = STATE_UNLOCK_CANCELED; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
208 ~EasyUnlockAuthAttemptUnlockTest() override {} | 213 ~EasyUnlockAuthAttemptUnlockTest() override {} |
209 | 214 |
210 void SetUp() override { | 215 void SetUp() override { |
211 app_manager_.reset(new FakeAppManager()); | 216 app_manager_.reset(new FakeAppManager()); |
212 auth_attempt_.reset(new EasyUnlockAuthAttempt( | 217 auth_attempt_.reset(new EasyUnlockAuthAttempt( |
213 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_UNLOCK, | 218 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_UNLOCK, |
214 EasyUnlockAuthAttempt::FinalizedCallback())); | 219 EasyUnlockAuthAttempt::FinalizedCallback())); |
215 } | 220 } |
216 | 221 |
217 void TearDown() override { | 222 void TearDown() override { |
218 ScreenlockBridge::Get()->SetLockHandler(NULL); | 223 GetScreenlockBridgeInstance()->SetLockHandler(NULL); |
219 auth_attempt_.reset(); | 224 auth_attempt_.reset(); |
220 } | 225 } |
221 | 226 |
222 protected: | 227 protected: |
223 void InitScreenLock() { | 228 void InitScreenLock() { |
224 lock_handler_.reset(new TestLockHandler(kTestUser1)); | 229 lock_handler_.reset(new TestLockHandler(kTestUser1)); |
225 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_UNLOCK); | 230 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_UNLOCK); |
226 ScreenlockBridge::Get()->SetLockHandler(lock_handler_.get()); | 231 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); |
227 } | 232 } |
228 | 233 |
229 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; | 234 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; |
230 scoped_ptr<FakeAppManager> app_manager_; | 235 scoped_ptr<FakeAppManager> app_manager_; |
231 scoped_ptr<TestLockHandler> lock_handler_; | 236 scoped_ptr<TestLockHandler> lock_handler_; |
232 | 237 |
233 private: | 238 private: |
234 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptUnlockTest); | 239 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptUnlockTest); |
235 }; | 240 }; |
236 | 241 |
237 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenNotLocked) { | 242 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenNotLocked) { |
238 ASSERT_FALSE(ScreenlockBridge::Get()->IsLocked()); | 243 ASSERT_FALSE(GetScreenlockBridgeInstance()->IsLocked()); |
239 | 244 |
240 EXPECT_FALSE(auth_attempt_->Start()); | 245 EXPECT_FALSE(auth_attempt_->Start()); |
241 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 246 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
242 } | 247 } |
243 | 248 |
244 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenAuthTypeIsPassword) { | 249 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenAuthTypeIsPassword) { |
245 InitScreenLock(); | 250 InitScreenLock(); |
246 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 251 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
247 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 252 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
248 | 253 |
249 lock_handler_->set_auth_type(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | 254 lock_handler_->set_auth_type( |
255 proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | |
250 | 256 |
251 EXPECT_FALSE(auth_attempt_->Start()); | 257 EXPECT_FALSE(auth_attempt_->Start()); |
252 | 258 |
253 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 259 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
254 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 260 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
255 } | 261 } |
256 | 262 |
257 TEST_F(EasyUnlockAuthAttemptUnlockTest, | 263 TEST_F(EasyUnlockAuthAttemptUnlockTest, |
258 StartWhenDispatchingAuthAttemptEventFails) { | 264 StartWhenDispatchingAuthAttemptEventFails) { |
259 InitScreenLock(); | 265 InitScreenLock(); |
260 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 266 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
261 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 267 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
262 | 268 |
263 app_manager_->set_auth_attempt_should_fail(true); | 269 app_manager_->set_auth_attempt_should_fail(true); |
264 | 270 |
265 EXPECT_FALSE(auth_attempt_->Start()); | 271 EXPECT_FALSE(auth_attempt_->Start()); |
266 | 272 |
267 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); | 273 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); |
268 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 274 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
269 } | 275 } |
270 | 276 |
271 TEST_F(EasyUnlockAuthAttemptUnlockTest, ResetBeforeFinalizeUnlock) { | 277 TEST_F(EasyUnlockAuthAttemptUnlockTest, ResetBeforeFinalizeUnlock) { |
272 InitScreenLock(); | 278 InitScreenLock(); |
273 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 279 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
274 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 280 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
275 | 281 |
276 ASSERT_TRUE(auth_attempt_->Start()); | 282 ASSERT_TRUE(auth_attempt_->Start()); |
277 | 283 |
278 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 284 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
279 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 285 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
280 | 286 |
281 auth_attempt_.reset(); | 287 auth_attempt_.reset(); |
282 | 288 |
283 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 289 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
284 } | 290 } |
285 | 291 |
286 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockFailure) { | 292 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockFailure) { |
287 InitScreenLock(); | 293 InitScreenLock(); |
288 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 294 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
289 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 295 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
290 | 296 |
291 ASSERT_TRUE(auth_attempt_->Start()); | 297 ASSERT_TRUE(auth_attempt_->Start()); |
292 | 298 |
293 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 299 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
294 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 300 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
295 | 301 |
296 auth_attempt_->FinalizeUnlock(kTestUser1, false); | 302 auth_attempt_->FinalizeUnlock(kTestUser1, false); |
297 | 303 |
298 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 304 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
299 } | 305 } |
300 | 306 |
301 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeSigninCalled) { | 307 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeSigninCalled) { |
302 InitScreenLock(); | 308 InitScreenLock(); |
303 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 309 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
304 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 310 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
305 | 311 |
306 ASSERT_TRUE(auth_attempt_->Start()); | 312 ASSERT_TRUE(auth_attempt_->Start()); |
307 | 313 |
308 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 314 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
309 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 315 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
310 | 316 |
311 // Wrapped secret and key should be irrelevant in this case. | 317 // Wrapped secret and key should be irrelevant in this case. |
312 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), | 318 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), |
313 GetSessionKey()); | 319 GetSessionKey()); |
314 | 320 |
315 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 321 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
316 } | 322 } |
317 | 323 |
318 TEST_F(EasyUnlockAuthAttemptUnlockTest, UnlockSucceeds) { | 324 TEST_F(EasyUnlockAuthAttemptUnlockTest, UnlockSucceeds) { |
319 InitScreenLock(); | 325 InitScreenLock(); |
320 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 326 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
321 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 327 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
322 | 328 |
323 ASSERT_TRUE(auth_attempt_->Start()); | 329 ASSERT_TRUE(auth_attempt_->Start()); |
324 | 330 |
325 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 331 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
326 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 332 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
327 | 333 |
328 auth_attempt_->FinalizeUnlock(kTestUser1, true); | 334 auth_attempt_->FinalizeUnlock(kTestUser1, true); |
329 | 335 |
330 ASSERT_EQ(TestLockHandler::STATE_UNLOCK_DONE, lock_handler_->state()); | 336 ASSERT_EQ(TestLockHandler::STATE_UNLOCK_DONE, lock_handler_->state()); |
331 } | 337 } |
332 | 338 |
333 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockCalledForWrongUser) { | 339 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockCalledForWrongUser) { |
334 InitScreenLock(); | 340 InitScreenLock(); |
335 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 341 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
336 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 342 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
337 | 343 |
338 ASSERT_TRUE(auth_attempt_->Start()); | 344 ASSERT_TRUE(auth_attempt_->Start()); |
339 | 345 |
340 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 346 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
341 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 347 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
342 | 348 |
343 auth_attempt_->FinalizeUnlock(kTestUser2, true); | 349 auth_attempt_->FinalizeUnlock(kTestUser2, true); |
344 | 350 |
345 // If FinalizeUnlock is called for an incorrect user, it should be ignored | 351 // If FinalizeUnlock is called for an incorrect user, it should be ignored |
(...skipping 14 matching lines...) Expand all Loading... | |
360 ~EasyUnlockAuthAttemptSigninTest() override {} | 366 ~EasyUnlockAuthAttemptSigninTest() override {} |
361 | 367 |
362 void SetUp() override { | 368 void SetUp() override { |
363 app_manager_.reset(new FakeAppManager()); | 369 app_manager_.reset(new FakeAppManager()); |
364 auth_attempt_.reset(new EasyUnlockAuthAttempt( | 370 auth_attempt_.reset(new EasyUnlockAuthAttempt( |
365 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_SIGNIN, | 371 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_SIGNIN, |
366 EasyUnlockAuthAttempt::FinalizedCallback())); | 372 EasyUnlockAuthAttempt::FinalizedCallback())); |
367 } | 373 } |
368 | 374 |
369 void TearDown() override { | 375 void TearDown() override { |
370 ScreenlockBridge::Get()->SetLockHandler(NULL); | 376 GetScreenlockBridgeInstance()->SetLockHandler(NULL); |
371 auth_attempt_.reset(); | 377 auth_attempt_.reset(); |
372 } | 378 } |
373 | 379 |
374 protected: | 380 protected: |
375 void InitScreenLock() { | 381 void InitScreenLock() { |
376 lock_handler_.reset(new TestLockHandler(kTestUser1)); | 382 lock_handler_.reset(new TestLockHandler(kTestUser1)); |
377 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_SIGNIN); | 383 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_SIGNIN); |
378 ScreenlockBridge::Get()->SetLockHandler(lock_handler_.get()); | 384 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); |
379 } | 385 } |
380 | 386 |
381 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; | 387 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; |
382 scoped_ptr<FakeAppManager> app_manager_; | 388 scoped_ptr<FakeAppManager> app_manager_; |
383 scoped_ptr<TestLockHandler> lock_handler_; | 389 scoped_ptr<TestLockHandler> lock_handler_; |
384 | 390 |
385 private: | 391 private: |
386 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptSigninTest); | 392 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptSigninTest); |
387 }; | 393 }; |
388 | 394 |
389 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenNotLocked) { | 395 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenNotLocked) { |
390 ASSERT_FALSE(ScreenlockBridge::Get()->IsLocked()); | 396 ASSERT_FALSE(GetScreenlockBridgeInstance()->IsLocked()); |
391 | 397 |
392 EXPECT_FALSE(auth_attempt_->Start()); | 398 EXPECT_FALSE(auth_attempt_->Start()); |
393 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 399 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
394 } | 400 } |
395 | 401 |
396 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenAuthTypeIsPassword) { | 402 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenAuthTypeIsPassword) { |
397 InitScreenLock(); | 403 InitScreenLock(); |
398 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 404 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
399 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 405 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
400 | 406 |
401 lock_handler_->set_auth_type(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | 407 lock_handler_->set_auth_type( |
408 proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | |
402 | 409 |
403 EXPECT_FALSE(auth_attempt_->Start()); | 410 EXPECT_FALSE(auth_attempt_->Start()); |
404 | 411 |
405 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 412 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
406 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 413 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
407 } | 414 } |
408 | 415 |
409 TEST_F(EasyUnlockAuthAttemptSigninTest, | 416 TEST_F(EasyUnlockAuthAttemptSigninTest, |
410 StartWhenDispatchingAuthAttemptEventFails) { | 417 StartWhenDispatchingAuthAttemptEventFails) { |
411 InitScreenLock(); | 418 InitScreenLock(); |
412 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 419 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
413 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 420 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
414 | 421 |
415 app_manager_->set_auth_attempt_should_fail(true); | 422 app_manager_->set_auth_attempt_should_fail(true); |
416 | 423 |
417 EXPECT_FALSE(auth_attempt_->Start()); | 424 EXPECT_FALSE(auth_attempt_->Start()); |
418 | 425 |
419 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); | 426 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); |
420 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 427 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
421 } | 428 } |
422 | 429 |
423 TEST_F(EasyUnlockAuthAttemptSigninTest, ResetBeforeFinalizeSignin) { | 430 TEST_F(EasyUnlockAuthAttemptSigninTest, ResetBeforeFinalizeSignin) { |
424 InitScreenLock(); | 431 InitScreenLock(); |
425 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 432 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
426 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 433 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
427 | 434 |
428 ASSERT_TRUE(auth_attempt_->Start()); | 435 ASSERT_TRUE(auth_attempt_->Start()); |
429 | 436 |
430 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 437 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
431 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 438 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
432 | 439 |
433 auth_attempt_.reset(); | 440 auth_attempt_.reset(); |
434 | 441 |
435 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 442 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
436 } | 443 } |
437 | 444 |
438 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpySecret) { | 445 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpySecret) { |
439 InitScreenLock(); | 446 InitScreenLock(); |
440 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 447 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
441 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 448 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
442 | 449 |
443 ASSERT_TRUE(auth_attempt_->Start()); | 450 ASSERT_TRUE(auth_attempt_->Start()); |
444 | 451 |
445 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 452 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
446 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 453 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
447 | 454 |
448 auth_attempt_->FinalizeSignin(kTestUser1, "", GetSessionKey()); | 455 auth_attempt_->FinalizeSignin(kTestUser1, "", GetSessionKey()); |
449 | 456 |
450 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 457 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
451 } | 458 } |
452 | 459 |
453 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpyKey) { | 460 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpyKey) { |
454 InitScreenLock(); | 461 InitScreenLock(); |
455 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 462 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
456 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 463 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
457 | 464 |
458 ASSERT_TRUE(auth_attempt_->Start()); | 465 ASSERT_TRUE(auth_attempt_->Start()); |
459 | 466 |
460 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 467 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
461 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 468 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
462 | 469 |
463 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), ""); | 470 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), ""); |
464 | 471 |
465 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 472 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
466 } | 473 } |
467 | 474 |
468 TEST_F(EasyUnlockAuthAttemptSigninTest, SigninSuccess) { | 475 TEST_F(EasyUnlockAuthAttemptSigninTest, SigninSuccess) { |
469 InitScreenLock(); | 476 InitScreenLock(); |
470 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 477 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
471 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 478 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
472 | 479 |
473 ASSERT_TRUE(auth_attempt_->Start()); | 480 ASSERT_TRUE(auth_attempt_->Start()); |
474 | 481 |
475 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 482 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
476 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 483 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
477 | 484 |
478 lock_handler_->set_expected_secret(GetSecret()); | 485 lock_handler_->set_expected_secret(GetSecret()); |
479 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), | 486 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), |
480 GetSessionKey()); | 487 GetSessionKey()); |
481 | 488 |
482 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); | 489 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); |
483 } | 490 } |
484 | 491 |
485 TEST_F(EasyUnlockAuthAttemptSigninTest, WrongWrappedSecret) { | 492 TEST_F(EasyUnlockAuthAttemptSigninTest, WrongWrappedSecret) { |
486 InitScreenLock(); | 493 InitScreenLock(); |
487 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 494 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
488 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 495 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
489 | 496 |
490 ASSERT_TRUE(auth_attempt_->Start()); | 497 ASSERT_TRUE(auth_attempt_->Start()); |
491 | 498 |
492 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 499 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
493 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 500 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
494 | 501 |
495 auth_attempt_->FinalizeSignin(kTestUser1, "wrong_secret", GetSessionKey()); | 502 auth_attempt_->FinalizeSignin(kTestUser1, "wrong_secret", GetSessionKey()); |
496 | 503 |
497 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 504 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
498 } | 505 } |
499 | 506 |
500 TEST_F(EasyUnlockAuthAttemptSigninTest, InvalidSessionKey) { | 507 TEST_F(EasyUnlockAuthAttemptSigninTest, InvalidSessionKey) { |
501 InitScreenLock(); | 508 InitScreenLock(); |
502 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 509 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
503 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 510 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
504 | 511 |
505 ASSERT_TRUE(auth_attempt_->Start()); | 512 ASSERT_TRUE(auth_attempt_->Start()); |
506 | 513 |
507 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 514 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
508 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 515 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
509 | 516 |
510 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), "invalid_key"); | 517 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), "invalid_key"); |
511 | 518 |
512 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 519 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
513 } | 520 } |
514 | 521 |
515 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeUnlockCalled) { | 522 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeUnlockCalled) { |
516 InitScreenLock(); | 523 InitScreenLock(); |
517 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 524 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
518 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 525 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
519 | 526 |
520 ASSERT_TRUE(auth_attempt_->Start()); | 527 ASSERT_TRUE(auth_attempt_->Start()); |
521 | 528 |
522 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 529 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
523 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 530 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
524 | 531 |
525 auth_attempt_->FinalizeUnlock(kTestUser1, true); | 532 auth_attempt_->FinalizeUnlock(kTestUser1, true); |
526 | 533 |
527 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 534 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
528 } | 535 } |
529 | 536 |
530 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninCalledForWrongUser) { | 537 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninCalledForWrongUser) { |
531 InitScreenLock(); | 538 InitScreenLock(); |
532 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 539 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
533 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 540 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
534 | 541 |
535 ASSERT_TRUE(auth_attempt_->Start()); | 542 ASSERT_TRUE(auth_attempt_->Start()); |
536 | 543 |
537 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 544 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
538 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 545 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
539 | 546 |
540 lock_handler_->set_expected_secret(GetSecret()); | 547 lock_handler_->set_expected_secret(GetSecret()); |
541 | 548 |
542 auth_attempt_->FinalizeSignin(kTestUser2, GetWrappedSecret(), | 549 auth_attempt_->FinalizeSignin(kTestUser2, GetWrappedSecret(), |
543 GetSessionKey()); | 550 GetSessionKey()); |
544 | 551 |
545 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 552 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
546 | 553 |
547 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), | 554 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), |
548 GetSessionKey()); | 555 GetSessionKey()); |
549 | 556 |
550 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); | 557 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); |
551 } | 558 } |
552 #endif // defined(OS_CHROMEOS) | 559 #endif // defined(OS_CHROMEOS) |
553 | 560 |
554 } // namespace | 561 } // namespace |
OLD | NEW |