| 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" |
| 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" |
| 12 #include "components/proximity_auth/screenlock_bridge.h" |
| 13 #include "components/signin/core/browser/signin_manager_base.h" |
| 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 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 ~EasyUnlockAuthAttemptUnlockTest() override {} | 212 ~EasyUnlockAuthAttemptUnlockTest() override {} |
| 209 | 213 |
| 210 void SetUp() override { | 214 void SetUp() override { |
| 211 app_manager_.reset(new FakeAppManager()); | 215 app_manager_.reset(new FakeAppManager()); |
| 212 auth_attempt_.reset(new EasyUnlockAuthAttempt( | 216 auth_attempt_.reset(new EasyUnlockAuthAttempt( |
| 213 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_UNLOCK, | 217 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_UNLOCK, |
| 214 EasyUnlockAuthAttempt::FinalizedCallback())); | 218 EasyUnlockAuthAttempt::FinalizedCallback())); |
| 215 } | 219 } |
| 216 | 220 |
| 217 void TearDown() override { | 221 void TearDown() override { |
| 218 ScreenlockBridge::Get()->SetLockHandler(NULL); | 222 GetScreenlockBridgeInstance()->SetLockHandler(NULL); |
| 219 auth_attempt_.reset(); | 223 auth_attempt_.reset(); |
| 220 } | 224 } |
| 221 | 225 |
| 222 protected: | 226 protected: |
| 223 void InitScreenLock() { | 227 void InitScreenLock() { |
| 224 lock_handler_.reset(new TestLockHandler(kTestUser1)); | 228 lock_handler_.reset(new TestLockHandler(kTestUser1)); |
| 225 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_UNLOCK); | 229 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_UNLOCK); |
| 226 ScreenlockBridge::Get()->SetLockHandler(lock_handler_.get()); | 230 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); |
| 227 } | 231 } |
| 228 | 232 |
| 229 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; | 233 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; |
| 230 scoped_ptr<FakeAppManager> app_manager_; | 234 scoped_ptr<FakeAppManager> app_manager_; |
| 231 scoped_ptr<TestLockHandler> lock_handler_; | 235 scoped_ptr<TestLockHandler> lock_handler_; |
| 232 | 236 |
| 233 private: | 237 private: |
| 234 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptUnlockTest); | 238 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptUnlockTest); |
| 235 }; | 239 }; |
| 236 | 240 |
| 237 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenNotLocked) { | 241 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenNotLocked) { |
| 238 ASSERT_FALSE(ScreenlockBridge::Get()->IsLocked()); | 242 ASSERT_FALSE(GetScreenlockBridgeInstance()->IsLocked()); |
| 239 | 243 |
| 240 EXPECT_FALSE(auth_attempt_->Start()); | 244 EXPECT_FALSE(auth_attempt_->Start()); |
| 241 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 245 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 242 } | 246 } |
| 243 | 247 |
| 244 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenAuthTypeIsPassword) { | 248 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenAuthTypeIsPassword) { |
| 245 InitScreenLock(); | 249 InitScreenLock(); |
| 246 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 250 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 247 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 251 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 248 | 252 |
| 249 lock_handler_->set_auth_type(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | 253 lock_handler_->set_auth_type(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); |
| 250 | 254 |
| 251 EXPECT_FALSE(auth_attempt_->Start()); | 255 EXPECT_FALSE(auth_attempt_->Start()); |
| 252 | 256 |
| 253 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 257 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 254 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 258 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
| 255 } | 259 } |
| 256 | 260 |
| 257 TEST_F(EasyUnlockAuthAttemptUnlockTest, | 261 TEST_F(EasyUnlockAuthAttemptUnlockTest, |
| 258 StartWhenDispatchingAuthAttemptEventFails) { | 262 StartWhenDispatchingAuthAttemptEventFails) { |
| 259 InitScreenLock(); | 263 InitScreenLock(); |
| 260 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 264 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 261 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 265 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 262 | 266 |
| 263 app_manager_->set_auth_attempt_should_fail(true); | 267 app_manager_->set_auth_attempt_should_fail(true); |
| 264 | 268 |
| 265 EXPECT_FALSE(auth_attempt_->Start()); | 269 EXPECT_FALSE(auth_attempt_->Start()); |
| 266 | 270 |
| 267 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); | 271 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); |
| 268 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 272 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
| 269 } | 273 } |
| 270 | 274 |
| 271 TEST_F(EasyUnlockAuthAttemptUnlockTest, ResetBeforeFinalizeUnlock) { | 275 TEST_F(EasyUnlockAuthAttemptUnlockTest, ResetBeforeFinalizeUnlock) { |
| 272 InitScreenLock(); | 276 InitScreenLock(); |
| 273 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 277 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 274 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 278 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 275 | 279 |
| 276 ASSERT_TRUE(auth_attempt_->Start()); | 280 ASSERT_TRUE(auth_attempt_->Start()); |
| 277 | 281 |
| 278 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 282 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 279 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 283 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 280 | 284 |
| 281 auth_attempt_.reset(); | 285 auth_attempt_.reset(); |
| 282 | 286 |
| 283 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 287 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
| 284 } | 288 } |
| 285 | 289 |
| 286 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockFailure) { | 290 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockFailure) { |
| 287 InitScreenLock(); | 291 InitScreenLock(); |
| 288 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 292 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 289 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 293 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 290 | 294 |
| 291 ASSERT_TRUE(auth_attempt_->Start()); | 295 ASSERT_TRUE(auth_attempt_->Start()); |
| 292 | 296 |
| 293 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 297 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 294 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 298 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 295 | 299 |
| 296 auth_attempt_->FinalizeUnlock(kTestUser1, false); | 300 auth_attempt_->FinalizeUnlock(kTestUser1, false); |
| 297 | 301 |
| 298 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 302 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
| 299 } | 303 } |
| 300 | 304 |
| 301 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeSigninCalled) { | 305 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeSigninCalled) { |
| 302 InitScreenLock(); | 306 InitScreenLock(); |
| 303 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 307 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 304 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 308 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 305 | 309 |
| 306 ASSERT_TRUE(auth_attempt_->Start()); | 310 ASSERT_TRUE(auth_attempt_->Start()); |
| 307 | 311 |
| 308 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 312 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 309 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 313 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 310 | 314 |
| 311 // Wrapped secret and key should be irrelevant in this case. | 315 // Wrapped secret and key should be irrelevant in this case. |
| 312 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), | 316 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), |
| 313 GetSessionKey()); | 317 GetSessionKey()); |
| 314 | 318 |
| 315 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 319 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
| 316 } | 320 } |
| 317 | 321 |
| 318 TEST_F(EasyUnlockAuthAttemptUnlockTest, UnlockSucceeds) { | 322 TEST_F(EasyUnlockAuthAttemptUnlockTest, UnlockSucceeds) { |
| 319 InitScreenLock(); | 323 InitScreenLock(); |
| 320 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 324 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 321 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 325 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 322 | 326 |
| 323 ASSERT_TRUE(auth_attempt_->Start()); | 327 ASSERT_TRUE(auth_attempt_->Start()); |
| 324 | 328 |
| 325 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 329 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 326 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 330 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 327 | 331 |
| 328 auth_attempt_->FinalizeUnlock(kTestUser1, true); | 332 auth_attempt_->FinalizeUnlock(kTestUser1, true); |
| 329 | 333 |
| 330 ASSERT_EQ(TestLockHandler::STATE_UNLOCK_DONE, lock_handler_->state()); | 334 ASSERT_EQ(TestLockHandler::STATE_UNLOCK_DONE, lock_handler_->state()); |
| 331 } | 335 } |
| 332 | 336 |
| 333 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockCalledForWrongUser) { | 337 TEST_F(EasyUnlockAuthAttemptUnlockTest, FinalizeUnlockCalledForWrongUser) { |
| 334 InitScreenLock(); | 338 InitScreenLock(); |
| 335 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 339 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 336 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 340 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 337 | 341 |
| 338 ASSERT_TRUE(auth_attempt_->Start()); | 342 ASSERT_TRUE(auth_attempt_->Start()); |
| 339 | 343 |
| 340 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 344 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 341 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 345 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 342 | 346 |
| 343 auth_attempt_->FinalizeUnlock(kTestUser2, true); | 347 auth_attempt_->FinalizeUnlock(kTestUser2, true); |
| 344 | 348 |
| 345 // If FinalizeUnlock is called for an incorrect user, it should be ignored | 349 // If FinalizeUnlock is called for an incorrect user, it should be ignored |
| (...skipping 14 matching lines...) Expand all Loading... |
| 360 ~EasyUnlockAuthAttemptSigninTest() override {} | 364 ~EasyUnlockAuthAttemptSigninTest() override {} |
| 361 | 365 |
| 362 void SetUp() override { | 366 void SetUp() override { |
| 363 app_manager_.reset(new FakeAppManager()); | 367 app_manager_.reset(new FakeAppManager()); |
| 364 auth_attempt_.reset(new EasyUnlockAuthAttempt( | 368 auth_attempt_.reset(new EasyUnlockAuthAttempt( |
| 365 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_SIGNIN, | 369 app_manager_.get(), kTestUser1, EasyUnlockAuthAttempt::TYPE_SIGNIN, |
| 366 EasyUnlockAuthAttempt::FinalizedCallback())); | 370 EasyUnlockAuthAttempt::FinalizedCallback())); |
| 367 } | 371 } |
| 368 | 372 |
| 369 void TearDown() override { | 373 void TearDown() override { |
| 370 ScreenlockBridge::Get()->SetLockHandler(NULL); | 374 GetScreenlockBridgeInstance()->SetLockHandler(NULL); |
| 371 auth_attempt_.reset(); | 375 auth_attempt_.reset(); |
| 372 } | 376 } |
| 373 | 377 |
| 374 protected: | 378 protected: |
| 375 void InitScreenLock() { | 379 void InitScreenLock() { |
| 376 lock_handler_.reset(new TestLockHandler(kTestUser1)); | 380 lock_handler_.reset(new TestLockHandler(kTestUser1)); |
| 377 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_SIGNIN); | 381 lock_handler_->set_state(TestLockHandler::STATE_ATTEMPTING_SIGNIN); |
| 378 ScreenlockBridge::Get()->SetLockHandler(lock_handler_.get()); | 382 GetScreenlockBridgeInstance()->SetLockHandler(lock_handler_.get()); |
| 379 } | 383 } |
| 380 | 384 |
| 381 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; | 385 scoped_ptr<EasyUnlockAuthAttempt> auth_attempt_; |
| 382 scoped_ptr<FakeAppManager> app_manager_; | 386 scoped_ptr<FakeAppManager> app_manager_; |
| 383 scoped_ptr<TestLockHandler> lock_handler_; | 387 scoped_ptr<TestLockHandler> lock_handler_; |
| 384 | 388 |
| 385 private: | 389 private: |
| 386 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptSigninTest); | 390 DISALLOW_COPY_AND_ASSIGN(EasyUnlockAuthAttemptSigninTest); |
| 387 }; | 391 }; |
| 388 | 392 |
| 389 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenNotLocked) { | 393 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenNotLocked) { |
| 390 ASSERT_FALSE(ScreenlockBridge::Get()->IsLocked()); | 394 ASSERT_FALSE(GetScreenlockBridgeInstance()->IsLocked()); |
| 391 | 395 |
| 392 EXPECT_FALSE(auth_attempt_->Start()); | 396 EXPECT_FALSE(auth_attempt_->Start()); |
| 393 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 397 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 394 } | 398 } |
| 395 | 399 |
| 396 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenAuthTypeIsPassword) { | 400 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenAuthTypeIsPassword) { |
| 397 InitScreenLock(); | 401 InitScreenLock(); |
| 398 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 402 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 399 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 403 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 400 | 404 |
| 401 lock_handler_->set_auth_type(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | 405 lock_handler_->set_auth_type(ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); |
| 402 | 406 |
| 403 EXPECT_FALSE(auth_attempt_->Start()); | 407 EXPECT_FALSE(auth_attempt_->Start()); |
| 404 | 408 |
| 405 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 409 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 406 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 410 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 407 } | 411 } |
| 408 | 412 |
| 409 TEST_F(EasyUnlockAuthAttemptSigninTest, | 413 TEST_F(EasyUnlockAuthAttemptSigninTest, |
| 410 StartWhenDispatchingAuthAttemptEventFails) { | 414 StartWhenDispatchingAuthAttemptEventFails) { |
| 411 InitScreenLock(); | 415 InitScreenLock(); |
| 412 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 416 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 413 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 417 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 414 | 418 |
| 415 app_manager_->set_auth_attempt_should_fail(true); | 419 app_manager_->set_auth_attempt_should_fail(true); |
| 416 | 420 |
| 417 EXPECT_FALSE(auth_attempt_->Start()); | 421 EXPECT_FALSE(auth_attempt_->Start()); |
| 418 | 422 |
| 419 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); | 423 EXPECT_EQ(1u, app_manager_->auth_attempt_count()); |
| 420 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 424 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 421 } | 425 } |
| 422 | 426 |
| 423 TEST_F(EasyUnlockAuthAttemptSigninTest, ResetBeforeFinalizeSignin) { | 427 TEST_F(EasyUnlockAuthAttemptSigninTest, ResetBeforeFinalizeSignin) { |
| 424 InitScreenLock(); | 428 InitScreenLock(); |
| 425 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 429 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 426 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 430 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 427 | 431 |
| 428 ASSERT_TRUE(auth_attempt_->Start()); | 432 ASSERT_TRUE(auth_attempt_->Start()); |
| 429 | 433 |
| 430 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 434 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 431 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 435 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 432 | 436 |
| 433 auth_attempt_.reset(); | 437 auth_attempt_.reset(); |
| 434 | 438 |
| 435 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 439 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 436 } | 440 } |
| 437 | 441 |
| 438 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpySecret) { | 442 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpySecret) { |
| 439 InitScreenLock(); | 443 InitScreenLock(); |
| 440 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 444 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 441 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 445 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 442 | 446 |
| 443 ASSERT_TRUE(auth_attempt_->Start()); | 447 ASSERT_TRUE(auth_attempt_->Start()); |
| 444 | 448 |
| 445 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 449 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 446 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 450 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 447 | 451 |
| 448 auth_attempt_->FinalizeSignin(kTestUser1, "", GetSessionKey()); | 452 auth_attempt_->FinalizeSignin(kTestUser1, "", GetSessionKey()); |
| 449 | 453 |
| 450 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 454 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 451 } | 455 } |
| 452 | 456 |
| 453 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpyKey) { | 457 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninWithEmtpyKey) { |
| 454 InitScreenLock(); | 458 InitScreenLock(); |
| 455 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 459 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 456 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 460 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 457 | 461 |
| 458 ASSERT_TRUE(auth_attempt_->Start()); | 462 ASSERT_TRUE(auth_attempt_->Start()); |
| 459 | 463 |
| 460 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 464 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 461 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 465 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 462 | 466 |
| 463 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), ""); | 467 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), ""); |
| 464 | 468 |
| 465 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 469 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 466 } | 470 } |
| 467 | 471 |
| 468 TEST_F(EasyUnlockAuthAttemptSigninTest, SigninSuccess) { | 472 TEST_F(EasyUnlockAuthAttemptSigninTest, SigninSuccess) { |
| 469 InitScreenLock(); | 473 InitScreenLock(); |
| 470 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 474 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 471 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 475 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 472 | 476 |
| 473 ASSERT_TRUE(auth_attempt_->Start()); | 477 ASSERT_TRUE(auth_attempt_->Start()); |
| 474 | 478 |
| 475 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 479 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 476 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 480 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 477 | 481 |
| 478 lock_handler_->set_expected_secret(GetSecret()); | 482 lock_handler_->set_expected_secret(GetSecret()); |
| 479 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), | 483 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), |
| 480 GetSessionKey()); | 484 GetSessionKey()); |
| 481 | 485 |
| 482 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); | 486 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); |
| 483 } | 487 } |
| 484 | 488 |
| 485 TEST_F(EasyUnlockAuthAttemptSigninTest, WrongWrappedSecret) { | 489 TEST_F(EasyUnlockAuthAttemptSigninTest, WrongWrappedSecret) { |
| 486 InitScreenLock(); | 490 InitScreenLock(); |
| 487 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 491 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 488 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 492 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 489 | 493 |
| 490 ASSERT_TRUE(auth_attempt_->Start()); | 494 ASSERT_TRUE(auth_attempt_->Start()); |
| 491 | 495 |
| 492 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 496 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 493 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 497 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 494 | 498 |
| 495 auth_attempt_->FinalizeSignin(kTestUser1, "wrong_secret", GetSessionKey()); | 499 auth_attempt_->FinalizeSignin(kTestUser1, "wrong_secret", GetSessionKey()); |
| 496 | 500 |
| 497 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 501 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 498 } | 502 } |
| 499 | 503 |
| 500 TEST_F(EasyUnlockAuthAttemptSigninTest, InvalidSessionKey) { | 504 TEST_F(EasyUnlockAuthAttemptSigninTest, InvalidSessionKey) { |
| 501 InitScreenLock(); | 505 InitScreenLock(); |
| 502 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 506 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 503 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 507 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 504 | 508 |
| 505 ASSERT_TRUE(auth_attempt_->Start()); | 509 ASSERT_TRUE(auth_attempt_->Start()); |
| 506 | 510 |
| 507 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 511 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 508 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 512 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 509 | 513 |
| 510 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), "invalid_key"); | 514 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), "invalid_key"); |
| 511 | 515 |
| 512 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 516 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 513 } | 517 } |
| 514 | 518 |
| 515 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeUnlockCalled) { | 519 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeUnlockCalled) { |
| 516 InitScreenLock(); | 520 InitScreenLock(); |
| 517 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 521 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 518 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 522 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 519 | 523 |
| 520 ASSERT_TRUE(auth_attempt_->Start()); | 524 ASSERT_TRUE(auth_attempt_->Start()); |
| 521 | 525 |
| 522 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 526 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 523 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 527 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 524 | 528 |
| 525 auth_attempt_->FinalizeUnlock(kTestUser1, true); | 529 auth_attempt_->FinalizeUnlock(kTestUser1, true); |
| 526 | 530 |
| 527 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 531 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 528 } | 532 } |
| 529 | 533 |
| 530 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninCalledForWrongUser) { | 534 TEST_F(EasyUnlockAuthAttemptSigninTest, FinalizeSigninCalledForWrongUser) { |
| 531 InitScreenLock(); | 535 InitScreenLock(); |
| 532 ASSERT_TRUE(ScreenlockBridge::Get()->IsLocked()); | 536 ASSERT_TRUE(GetScreenlockBridgeInstance()->IsLocked()); |
| 533 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 537 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 534 | 538 |
| 535 ASSERT_TRUE(auth_attempt_->Start()); | 539 ASSERT_TRUE(auth_attempt_->Start()); |
| 536 | 540 |
| 537 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); | 541 ASSERT_EQ(1u, app_manager_->auth_attempt_count()); |
| 538 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 542 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 539 | 543 |
| 540 lock_handler_->set_expected_secret(GetSecret()); | 544 lock_handler_->set_expected_secret(GetSecret()); |
| 541 | 545 |
| 542 auth_attempt_->FinalizeSignin(kTestUser2, GetWrappedSecret(), | 546 auth_attempt_->FinalizeSignin(kTestUser2, GetWrappedSecret(), |
| 543 GetSessionKey()); | 547 GetSessionKey()); |
| 544 | 548 |
| 545 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 549 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 546 | 550 |
| 547 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), | 551 auth_attempt_->FinalizeSignin(kTestUser1, GetWrappedSecret(), |
| 548 GetSessionKey()); | 552 GetSessionKey()); |
| 549 | 553 |
| 550 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); | 554 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); |
| 551 } | 555 } |
| 552 #endif // defined(OS_CHROMEOS) | 556 #endif // defined(OS_CHROMEOS) |
| 553 | 557 |
| 554 } // namespace | 558 } // namespace |
| OLD | NEW |