| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 STATE_NONE, | 110 STATE_NONE, |
| 111 STATE_ATTEMPTING_UNLOCK, | 111 STATE_ATTEMPTING_UNLOCK, |
| 112 STATE_UNLOCK_CANCELED, | 112 STATE_UNLOCK_CANCELED, |
| 113 STATE_UNLOCK_DONE, | 113 STATE_UNLOCK_DONE, |
| 114 STATE_ATTEMPTING_SIGNIN, | 114 STATE_ATTEMPTING_SIGNIN, |
| 115 STATE_SIGNIN_CANCELED, | 115 STATE_SIGNIN_CANCELED, |
| 116 STATE_SIGNIN_DONE | 116 STATE_SIGNIN_DONE |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 explicit TestLockHandler(const AccountId& account_id) | 119 explicit TestLockHandler(const AccountId& account_id) |
| 120 : state_(STATE_NONE), auth_type_(USER_CLICK), account_id_(account_id) {} | 120 : state_(STATE_NONE), |
| 121 auth_type_(proximity_auth::mojom::AuthType::USER_CLICK), |
| 122 account_id_(account_id) {} |
| 121 | 123 |
| 122 ~TestLockHandler() override {} | 124 ~TestLockHandler() override {} |
| 123 | 125 |
| 124 void set_state(AuthState value) { state_ = value; } | 126 void set_state(AuthState value) { state_ = value; } |
| 125 AuthState state() const { return state_; } | 127 AuthState state() const { return state_; } |
| 126 | 128 |
| 127 // Sets the secret that is expected to be sent to |AttemptEasySignin| | 129 // Sets the secret that is expected to be sent to |AttemptEasySignin| |
| 128 void set_expected_secret(const std::string& value) { | 130 void set_expected_secret(const std::string& value) { |
| 129 expected_secret_ = value; | 131 expected_secret_ = value; |
| 130 } | 132 } |
| 131 | 133 |
| 132 // Not using |SetAuthType| to make sure it's not called during tests. | 134 // Not using |SetAuthType| to make sure it's not called during tests. |
| 133 void set_auth_type(AuthType value) { auth_type_ = value; } | 135 void set_auth_type(proximity_auth::mojom::AuthType value) { |
| 136 auth_type_ = value; |
| 137 } |
| 134 | 138 |
| 135 // proximity_auth::ScreenlockBridge::LockHandler implementation: | 139 // proximity_auth::ScreenlockBridge::LockHandler implementation: |
| 136 void ShowBannerMessage(const base::string16& message) override { | 140 void ShowBannerMessage(const base::string16& message) override { |
| 137 ADD_FAILURE() << "Should not be reached."; | 141 ADD_FAILURE() << "Should not be reached."; |
| 138 } | 142 } |
| 139 | 143 |
| 140 void ShowUserPodCustomIcon( | 144 void ShowUserPodCustomIcon( |
| 141 const AccountId& account_id, | 145 const AccountId& account_id, |
| 142 const proximity_auth::ScreenlockBridge::UserPodCustomIconOptions& icon) | 146 const proximity_auth::ScreenlockBridge::UserPodCustomIconOptions& icon) |
| 143 override { | 147 override { |
| 144 ADD_FAILURE() << "Should not be reached."; | 148 ADD_FAILURE() << "Should not be reached."; |
| 145 } | 149 } |
| 146 | 150 |
| 147 void HideUserPodCustomIcon(const AccountId& account_id) override { | 151 void HideUserPodCustomIcon(const AccountId& account_id) override { |
| 148 ADD_FAILURE() << "Should not be reached."; | 152 ADD_FAILURE() << "Should not be reached."; |
| 149 } | 153 } |
| 150 | 154 |
| 151 void EnableInput() override { | 155 void EnableInput() override { |
| 152 ASSERT_EQ(STATE_ATTEMPTING_UNLOCK, state_); | 156 ASSERT_EQ(STATE_ATTEMPTING_UNLOCK, state_); |
| 153 state_ = STATE_UNLOCK_CANCELED; | 157 state_ = STATE_UNLOCK_CANCELED; |
| 154 } | 158 } |
| 155 | 159 |
| 156 void SetAuthType(const AccountId& account_id, | 160 void SetAuthType(const AccountId& account_id, |
| 157 AuthType auth_type, | 161 proximity_auth::mojom::AuthType auth_type, |
| 158 const base::string16& auth_value) override { | 162 const base::string16& auth_value) override { |
| 159 ADD_FAILURE() << "Should not be reached."; | 163 ADD_FAILURE() << "Should not be reached."; |
| 160 } | 164 } |
| 161 | 165 |
| 162 AuthType GetAuthType(const AccountId& account_id) const override { | 166 proximity_auth::mojom::AuthType GetAuthType( |
| 167 const AccountId& account_id) const override { |
| 163 return auth_type_; | 168 return auth_type_; |
| 164 } | 169 } |
| 165 | 170 |
| 166 ScreenType GetScreenType() const override { | 171 ScreenType GetScreenType() const override { |
| 167 // Return an arbitrary value; this is not used by the test code. | 172 // Return an arbitrary value; this is not used by the test code. |
| 168 return LOCK_SCREEN; | 173 return LOCK_SCREEN; |
| 169 } | 174 } |
| 170 | 175 |
| 171 void Unlock(const AccountId& account_id) override { | 176 void Unlock(const AccountId& account_id) override { |
| 172 ASSERT_TRUE(account_id_ == account_id) | 177 ASSERT_TRUE(account_id_ == account_id) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 192 ASSERT_EQ(chromeos::EasyUnlockKeyManager::GetKeyLabel(0u), key_label); | 197 ASSERT_EQ(chromeos::EasyUnlockKeyManager::GetKeyLabel(0u), key_label); |
| 193 state_ = STATE_SIGNIN_DONE; | 198 state_ = STATE_SIGNIN_DONE; |
| 194 } | 199 } |
| 195 #else // if !defined(OS_CHROMEOS) | 200 #else // if !defined(OS_CHROMEOS) |
| 196 ADD_FAILURE() << "Should not be reached."; | 201 ADD_FAILURE() << "Should not be reached."; |
| 197 #endif | 202 #endif |
| 198 } | 203 } |
| 199 | 204 |
| 200 private: | 205 private: |
| 201 AuthState state_; | 206 AuthState state_; |
| 202 AuthType auth_type_; | 207 proximity_auth::mojom::AuthType auth_type_; |
| 203 const AccountId account_id_; | 208 const AccountId account_id_; |
| 204 std::string expected_secret_; | 209 std::string expected_secret_; |
| 205 | 210 |
| 206 DISALLOW_COPY_AND_ASSIGN(TestLockHandler); | 211 DISALLOW_COPY_AND_ASSIGN(TestLockHandler); |
| 207 }; | 212 }; |
| 208 | 213 |
| 209 class EasyUnlockAuthAttemptUnlockTest : public testing::Test { | 214 class EasyUnlockAuthAttemptUnlockTest : public testing::Test { |
| 210 public: | 215 public: |
| 211 EasyUnlockAuthAttemptUnlockTest() {} | 216 EasyUnlockAuthAttemptUnlockTest() {} |
| 212 ~EasyUnlockAuthAttemptUnlockTest() override {} | 217 ~EasyUnlockAuthAttemptUnlockTest() override {} |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 EXPECT_FALSE(auth_attempt_->Start()); | 254 EXPECT_FALSE(auth_attempt_->Start()); |
| 250 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 255 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 251 } | 256 } |
| 252 | 257 |
| 253 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenAuthTypeIsPassword) { | 258 TEST_F(EasyUnlockAuthAttemptUnlockTest, StartWhenAuthTypeIsPassword) { |
| 254 InitScreenLock(); | 259 InitScreenLock(); |
| 255 ASSERT_TRUE(proximity_auth::ScreenlockBridge::Get()->IsLocked()); | 260 ASSERT_TRUE(proximity_auth::ScreenlockBridge::Get()->IsLocked()); |
| 256 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); | 261 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_UNLOCK, lock_handler_->state()); |
| 257 | 262 |
| 258 lock_handler_->set_auth_type( | 263 lock_handler_->set_auth_type( |
| 259 proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | 264 proximity_auth::mojom::AuthType::OFFLINE_PASSWORD); |
| 260 | 265 |
| 261 EXPECT_FALSE(auth_attempt_->Start()); | 266 EXPECT_FALSE(auth_attempt_->Start()); |
| 262 | 267 |
| 263 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 268 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 264 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); | 269 EXPECT_EQ(TestLockHandler::STATE_UNLOCK_CANCELED, lock_handler_->state()); |
| 265 } | 270 } |
| 266 | 271 |
| 267 TEST_F(EasyUnlockAuthAttemptUnlockTest, | 272 TEST_F(EasyUnlockAuthAttemptUnlockTest, |
| 268 StartWhenDispatchingAuthAttemptEventFails) { | 273 StartWhenDispatchingAuthAttemptEventFails) { |
| 269 InitScreenLock(); | 274 InitScreenLock(); |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 EXPECT_FALSE(auth_attempt_->Start()); | 412 EXPECT_FALSE(auth_attempt_->Start()); |
| 408 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 413 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 409 } | 414 } |
| 410 | 415 |
| 411 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenAuthTypeIsPassword) { | 416 TEST_F(EasyUnlockAuthAttemptSigninTest, StartWhenAuthTypeIsPassword) { |
| 412 InitScreenLock(); | 417 InitScreenLock(); |
| 413 ASSERT_TRUE(proximity_auth::ScreenlockBridge::Get()->IsLocked()); | 418 ASSERT_TRUE(proximity_auth::ScreenlockBridge::Get()->IsLocked()); |
| 414 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 419 ASSERT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 415 | 420 |
| 416 lock_handler_->set_auth_type( | 421 lock_handler_->set_auth_type( |
| 417 proximity_auth::ScreenlockBridge::LockHandler::OFFLINE_PASSWORD); | 422 proximity_auth::mojom::AuthType::OFFLINE_PASSWORD); |
| 418 | 423 |
| 419 EXPECT_FALSE(auth_attempt_->Start()); | 424 EXPECT_FALSE(auth_attempt_->Start()); |
| 420 | 425 |
| 421 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); | 426 EXPECT_EQ(0u, app_manager_->auth_attempt_count()); |
| 422 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); | 427 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_CANCELED, lock_handler_->state()); |
| 423 } | 428 } |
| 424 | 429 |
| 425 TEST_F(EasyUnlockAuthAttemptSigninTest, | 430 TEST_F(EasyUnlockAuthAttemptSigninTest, |
| 426 StartWhenDispatchingAuthAttemptEventFails) { | 431 StartWhenDispatchingAuthAttemptEventFails) { |
| 427 InitScreenLock(); | 432 InitScreenLock(); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); | 568 EXPECT_EQ(TestLockHandler::STATE_ATTEMPTING_SIGNIN, lock_handler_->state()); |
| 564 | 569 |
| 565 auth_attempt_->FinalizeSignin(test_account_id1_, GetWrappedSecret(), | 570 auth_attempt_->FinalizeSignin(test_account_id1_, GetWrappedSecret(), |
| 566 GetSessionKey()); | 571 GetSessionKey()); |
| 567 | 572 |
| 568 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); | 573 EXPECT_EQ(TestLockHandler::STATE_SIGNIN_DONE, lock_handler_->state()); |
| 569 } | 574 } |
| 570 #endif // defined(OS_CHROMEOS) | 575 #endif // defined(OS_CHROMEOS) |
| 571 | 576 |
| 572 } // namespace | 577 } // namespace |
| OLD | NEW |