| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <utility> | 5 #include <utility> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 void ExpectIconStateIs(password_manager::ui::State state); | 173 void ExpectIconStateIs(password_manager::ui::State state); |
| 174 void ExpectIconAndControllerStateIs(password_manager::ui::State state); | 174 void ExpectIconAndControllerStateIs(password_manager::ui::State state); |
| 175 | 175 |
| 176 scoped_ptr<password_manager::PasswordFormManager> | 176 scoped_ptr<password_manager::PasswordFormManager> |
| 177 CreateFormManagerWithBestMatches( | 177 CreateFormManagerWithBestMatches( |
| 178 const autofill::PasswordForm& observed_form, | 178 const autofill::PasswordForm& observed_form, |
| 179 ScopedVector<autofill::PasswordForm> best_matches); | 179 ScopedVector<autofill::PasswordForm> best_matches); |
| 180 | 180 |
| 181 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager(); | 181 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager(); |
| 182 | 182 |
| 183 // Tests that the state is not changed when the password is autofilled. |
| 184 void TestNotChangingStateOnAutofill( |
| 185 password_manager::ui::State state); |
| 186 |
| 183 private: | 187 private: |
| 184 password_manager::StubPasswordManagerClient client_; | 188 password_manager::StubPasswordManagerClient client_; |
| 185 password_manager::StubPasswordManagerDriver driver_; | 189 password_manager::StubPasswordManagerDriver driver_; |
| 186 password_manager::PasswordManager password_manager_; | 190 password_manager::PasswordManager password_manager_; |
| 187 | 191 |
| 188 autofill::PasswordForm test_local_form_; | 192 autofill::PasswordForm test_local_form_; |
| 189 autofill::PasswordForm test_federated_form_; | 193 autofill::PasswordForm test_federated_form_; |
| 190 scoped_ptr<password_manager::CredentialInfo> credential_info_; | 194 scoped_ptr<password_manager::CredentialInfo> credential_info_; |
| 191 base::FieldTrialList field_trial_list_; | 195 base::FieldTrialList field_trial_list_; |
| 192 DialogPromptMock dialog_prompt_; | 196 DialogPromptMock dialog_prompt_; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 } | 245 } |
| 242 | 246 |
| 243 scoped_ptr<password_manager::PasswordFormManager> | 247 scoped_ptr<password_manager::PasswordFormManager> |
| 244 ManagePasswordsUIControllerTest::CreateFormManager() { | 248 ManagePasswordsUIControllerTest::CreateFormManager() { |
| 245 ScopedVector<autofill::PasswordForm> stored_forms; | 249 ScopedVector<autofill::PasswordForm> stored_forms; |
| 246 stored_forms.push_back(new autofill::PasswordForm(test_local_form())); | 250 stored_forms.push_back(new autofill::PasswordForm(test_local_form())); |
| 247 return CreateFormManagerWithBestMatches(test_local_form(), | 251 return CreateFormManagerWithBestMatches(test_local_form(), |
| 248 std::move(stored_forms)); | 252 std::move(stored_forms)); |
| 249 } | 253 } |
| 250 | 254 |
| 255 void ManagePasswordsUIControllerTest::TestNotChangingStateOnAutofill( |
| 256 password_manager::ui::State state) { |
| 257 DCHECK(state == password_manager::ui::PENDING_PASSWORD_STATE || |
| 258 state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE || |
| 259 state == password_manager::ui::CONFIRMATION_STATE); |
| 260 |
| 261 // Set the bubble state to |state|. |
| 262 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 263 CreateFormManager()); |
| 264 test_form_manager->ProvisionallySave( |
| 265 test_local_form(), |
| 266 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 267 if (state == password_manager::ui::PENDING_PASSWORD_STATE) |
| 268 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
| 269 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) |
| 270 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); |
| 271 else // password_manager::ui::CONFIRMATION_STATE |
| 272 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); |
| 273 ASSERT_EQ(state, controller()->GetState()); |
| 274 |
| 275 // Autofill happens. |
| 276 scoped_ptr<autofill::PasswordForm> test_form( |
| 277 new autofill::PasswordForm(test_local_form())); |
| 278 autofill::PasswordFormMap map; |
| 279 map.insert( |
| 280 std::make_pair(test_local_form().username_value, std::move(test_form))); |
| 281 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); |
| 282 |
| 283 // State shouldn't changed. |
| 284 EXPECT_EQ(state, controller()->GetState()); |
| 285 ExpectIconStateIs(state); |
| 286 } |
| 287 |
| 251 TEST_F(ManagePasswordsUIControllerTest, DefaultState) { | 288 TEST_F(ManagePasswordsUIControllerTest, DefaultState) { |
| 252 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); | 289 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
| 253 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); | 290 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); |
| 254 | 291 |
| 255 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 292 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
| 256 } | 293 } |
| 257 | 294 |
| 258 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { | 295 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { |
| 259 scoped_ptr<autofill::PasswordForm> test_form( | 296 scoped_ptr<autofill::PasswordForm> test_form( |
| 260 new autofill::PasswordForm(test_local_form())); | 297 new autofill::PasswordForm(test_local_form())); |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 709 CreateFormManager()); | 746 CreateFormManager()); |
| 710 test_form_manager->ProvisionallySave( | 747 test_form_manager->ProvisionallySave( |
| 711 test_local_form(), | 748 test_local_form(), |
| 712 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 749 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 713 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); | 750 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); |
| 714 | 751 |
| 715 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 752 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
| 716 controller()->UpdatePassword(autofill::PasswordForm()); | 753 controller()->UpdatePassword(autofill::PasswordForm()); |
| 717 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 754 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
| 718 } | 755 } |
| 756 |
| 757 TEST_F(ManagePasswordsUIControllerTest, SavePendingStatePasswordAutofilled) { |
| 758 TestNotChangingStateOnAutofill(password_manager::ui::PENDING_PASSWORD_STATE); |
| 759 } |
| 760 |
| 761 TEST_F(ManagePasswordsUIControllerTest, UpdatePendingStatePasswordAutofilled) { |
| 762 TestNotChangingStateOnAutofill( |
| 763 password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
| 764 } |
| 765 |
| 766 TEST_F(ManagePasswordsUIControllerTest, ConfirmationStatePasswordAutofilled) { |
| 767 TestNotChangingStateOnAutofill(password_manager::ui::CONFIRMATION_STATE); |
| 768 } |
| OLD | NEW |