| 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 "components/proximity_auth/unlock_manager.h" | 5 #include "components/proximity_auth/unlock_manager.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/test/test_simple_task_runner.h" | 10 #include "base/test/test_simple_task_runner.h" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 ON_CALL(*this, IsInRssiRange()).WillByDefault(Return(false)); | 82 ON_CALL(*this, IsInRssiRange()).WillByDefault(Return(false)); |
| 83 } | 83 } |
| 84 ~MockProximityMonitor() override {} | 84 ~MockProximityMonitor() override {} |
| 85 | 85 |
| 86 MOCK_METHOD0(Start, void()); | 86 MOCK_METHOD0(Start, void()); |
| 87 MOCK_METHOD0(Stop, void()); | 87 MOCK_METHOD0(Stop, void()); |
| 88 MOCK_CONST_METHOD0(GetStrategy, Strategy()); | 88 MOCK_CONST_METHOD0(GetStrategy, Strategy()); |
| 89 MOCK_CONST_METHOD0(IsUnlockAllowed, bool()); | 89 MOCK_CONST_METHOD0(IsUnlockAllowed, bool()); |
| 90 MOCK_CONST_METHOD0(IsInRssiRange, bool()); | 90 MOCK_CONST_METHOD0(IsInRssiRange, bool()); |
| 91 MOCK_METHOD0(RecordProximityMetricsOnAuthSuccess, void()); | 91 MOCK_METHOD0(RecordProximityMetricsOnAuthSuccess, void()); |
| 92 MOCK_METHOD1(AddObserver, void(ProximityMonitorObserver*)); |
| 93 MOCK_METHOD1(RemoveObserver, void(ProximityMonitorObserver*)); |
| 92 | 94 |
| 93 private: | 95 private: |
| 94 DISALLOW_COPY_AND_ASSIGN(MockProximityMonitor); | 96 DISALLOW_COPY_AND_ASSIGN(MockProximityMonitor); |
| 95 }; | 97 }; |
| 96 | 98 |
| 97 class FakeLockHandler : public ScreenlockBridge::LockHandler { | 99 class FakeLockHandler : public ScreenlockBridge::LockHandler { |
| 98 public: | 100 public: |
| 99 FakeLockHandler() {} | 101 FakeLockHandler() {} |
| 100 ~FakeLockHandler() override {} | 102 ~FakeLockHandler() override {} |
| 101 | 103 |
| (...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 EXPECT_CALL(*proximity_monitor_, Stop()).Times(AtLeast(1)); | 458 EXPECT_CALL(*proximity_monitor_, Stop()).Times(AtLeast(1)); |
| 457 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); | 459 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); |
| 458 } | 460 } |
| 459 | 461 |
| 460 TEST_F( | 462 TEST_F( |
| 461 ProximityAuthUnlockManagerTest, | 463 ProximityAuthUnlockManagerTest, |
| 462 SetRemoteDeviceLifeCycle_ConnectingRemoteDeviceLifeCycle_StopsProximityMonit
or) { | 464 SetRemoteDeviceLifeCycle_ConnectingRemoteDeviceLifeCycle_StopsProximityMonit
or) { |
| 463 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); | 465 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); |
| 464 SimulateUserPresentState(); | 466 SimulateUserPresentState(); |
| 465 | 467 |
| 466 NiceMock<MockRemoteDeviceLifeCycle> life_cycle; | 468 ON_CALL(life_cycle_, GetState()) |
| 467 ON_CALL(life_cycle, GetState()) | |
| 468 .WillByDefault(Return(RemoteDeviceLifeCycle::State::FINDING_CONNECTION)); | 469 .WillByDefault(Return(RemoteDeviceLifeCycle::State::FINDING_CONNECTION)); |
| 469 | 470 |
| 470 EXPECT_CALL(*proximity_monitor_, Stop()).Times(AtLeast(1)); | 471 EXPECT_CALL(*proximity_monitor_, Stop()).Times(AtLeast(1)); |
| 471 unlock_manager_->SetRemoteDeviceLifeCycle(&life_cycle); | 472 unlock_manager_->SetRemoteDeviceLifeCycle(&life_cycle_); |
| 472 } | 473 } |
| 473 | 474 |
| 474 TEST_F( | 475 TEST_F( |
| 475 ProximityAuthUnlockManagerTest, | 476 ProximityAuthUnlockManagerTest, |
| 476 SetRemoteDeviceLifeCycle_ConnectedRemoteDeviceLifeCycle_StartsProximityMonit
or) { | 477 SetRemoteDeviceLifeCycle_ConnectedRemoteDeviceLifeCycle_StartsProximityMonit
or) { |
| 477 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); | 478 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); |
| 478 SimulateUserPresentState(); | 479 SimulateUserPresentState(); |
| 479 | 480 |
| 480 NiceMock<MockRemoteDeviceLifeCycle> life_cycle; | 481 ON_CALL(life_cycle_, GetState()) |
| 481 ON_CALL(life_cycle, GetState()) | |
| 482 .WillByDefault( | 482 .WillByDefault( |
| 483 Return(RemoteDeviceLifeCycle::State::SECURE_CHANNEL_ESTABLISHED)); | 483 Return(RemoteDeviceLifeCycle::State::SECURE_CHANNEL_ESTABLISHED)); |
| 484 | 484 |
| 485 EXPECT_CALL(*proximity_monitor_, Start()).Times(AtLeast(1)); | 485 EXPECT_CALL(*proximity_monitor_, Start()).Times(AtLeast(1)); |
| 486 unlock_manager_->SetRemoteDeviceLifeCycle(&life_cycle); | 486 unlock_manager_->SetRemoteDeviceLifeCycle(&life_cycle_); |
| 487 } | 487 } |
| 488 | 488 |
| 489 TEST_F(ProximityAuthUnlockManagerTest, | 489 TEST_F(ProximityAuthUnlockManagerTest, |
| 490 OnLifeCycleStateChanged_SecureChannelEstablished_RegistersAsObserver) { | 490 OnLifeCycleStateChanged_SecureChannelEstablished_RegistersAsObserver) { |
| 491 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); | 491 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); |
| 492 SimulateUserPresentState(); | 492 SimulateUserPresentState(); |
| 493 | |
| 494 NiceMock<MockRemoteDeviceLifeCycle> life_cycle; | |
| 495 ON_CALL(life_cycle, GetState()) | |
| 496 .WillByDefault( | |
| 497 Return(RemoteDeviceLifeCycle::State::SECURE_CHANNEL_ESTABLISHED)); | |
| 498 | |
| 499 EXPECT_CALL(messenger_, AddObserver(unlock_manager_.get())); | 493 EXPECT_CALL(messenger_, AddObserver(unlock_manager_.get())); |
| 500 unlock_manager_->OnLifeCycleStateChanged(); | 494 unlock_manager_->OnLifeCycleStateChanged(); |
| 501 } | 495 } |
| 502 | 496 |
| 503 TEST_F(ProximityAuthUnlockManagerTest, | 497 TEST_F(ProximityAuthUnlockManagerTest, |
| 504 OnLifeCycleStateChanged_StartsProximityMonitor) { | 498 OnLifeCycleStateChanged_StartsProximityMonitor) { |
| 505 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); | 499 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); |
| 506 SimulateUserPresentState(); | 500 SimulateUserPresentState(); |
| 507 | |
| 508 NiceMock<MockRemoteDeviceLifeCycle> life_cycle; | |
| 509 ON_CALL(life_cycle, GetState()) | |
| 510 .WillByDefault( | |
| 511 Return(RemoteDeviceLifeCycle::State::SECURE_CHANNEL_ESTABLISHED)); | |
| 512 | |
| 513 EXPECT_CALL(*proximity_monitor_, Start()).Times(AtLeast(1)); | 501 EXPECT_CALL(*proximity_monitor_, Start()).Times(AtLeast(1)); |
| 514 unlock_manager_->OnLifeCycleStateChanged(); | 502 unlock_manager_->OnLifeCycleStateChanged(); |
| 515 } | 503 } |
| 516 | 504 |
| 517 TEST_F(ProximityAuthUnlockManagerTest, | 505 TEST_F(ProximityAuthUnlockManagerTest, |
| 518 OnLifeCycleStateChanged_StopsProximityMonitor) { | 506 OnLifeCycleStateChanged_StopsProximityMonitor) { |
| 519 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); | 507 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); |
| 520 SimulateUserPresentState(); | 508 SimulateUserPresentState(); |
| 521 | 509 |
| 522 ON_CALL(life_cycle_, GetState()) | 510 ON_CALL(life_cycle_, GetState()) |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 } | 593 } |
| 606 | 594 |
| 607 TEST_F(ProximityAuthUnlockManagerTest, OnDisconnected_UnregistersAsObserver) { | 595 TEST_F(ProximityAuthUnlockManagerTest, OnDisconnected_UnregistersAsObserver) { |
| 608 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); | 596 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); |
| 609 SimulateUserPresentState(); | 597 SimulateUserPresentState(); |
| 610 | 598 |
| 611 ON_CALL(life_cycle_, GetState()) | 599 ON_CALL(life_cycle_, GetState()) |
| 612 .WillByDefault( | 600 .WillByDefault( |
| 613 Return(RemoteDeviceLifeCycle::State::AUTHENTICATION_FAILED)); | 601 Return(RemoteDeviceLifeCycle::State::AUTHENTICATION_FAILED)); |
| 614 | 602 |
| 615 EXPECT_CALL(messenger_, RemoveObserver(unlock_manager_.get())); | 603 EXPECT_CALL(messenger_, RemoveObserver(unlock_manager_.get())) |
| 604 .Times(testing::AtLeast(1)); |
| 616 unlock_manager_.get()->OnDisconnected(); | 605 unlock_manager_.get()->OnDisconnected(); |
| 606 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); |
| 617 } | 607 } |
| 618 | 608 |
| 619 TEST_F(ProximityAuthUnlockManagerTest, | 609 TEST_F(ProximityAuthUnlockManagerTest, |
| 620 OnScreenDidUnlock_StopsProximityMonitor) { | 610 OnScreenDidUnlock_StopsProximityMonitor) { |
| 621 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); | 611 CreateUnlockManager(UnlockManager::ScreenlockType::SESSION_LOCK); |
| 622 SimulateUserPresentState(); | 612 SimulateUserPresentState(); |
| 623 | 613 |
| 624 EXPECT_CALL(*proximity_monitor_, Stop()); | 614 EXPECT_CALL(*proximity_monitor_, Stop()); |
| 625 unlock_manager_.get()->OnScreenDidUnlock( | 615 unlock_manager_.get()->OnScreenDidUnlock( |
| 626 ScreenlockBridge::LockHandler::LOCK_SCREEN); | 616 ScreenlockBridge::LockHandler::LOCK_SCREEN); |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 SimulateUserPresentState(); | 809 SimulateUserPresentState(); |
| 820 | 810 |
| 821 EXPECT_CALL(messenger_, DispatchUnlockEvent()); | 811 EXPECT_CALL(messenger_, DispatchUnlockEvent()); |
| 822 unlock_manager_->OnAuthAttempted(ScreenlockBridge::LockHandler::USER_CLICK); | 812 unlock_manager_->OnAuthAttempted(ScreenlockBridge::LockHandler::USER_CLICK); |
| 823 | 813 |
| 824 EXPECT_CALL(proximity_auth_client_, FinalizeUnlock(true)); | 814 EXPECT_CALL(proximity_auth_client_, FinalizeUnlock(true)); |
| 825 unlock_manager_->OnUnlockEventSent(true); | 815 unlock_manager_->OnUnlockEventSent(true); |
| 826 } | 816 } |
| 827 | 817 |
| 828 } // namespace proximity_auth | 818 } // namespace proximity_auth |
| OLD | NEW |