Chromium Code Reviews| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/prefs/pref_service.h" | 6 #include "base/prefs/pref_service.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
| 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" | 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
| 10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h" | 10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 118 autofill::PasswordForm blacklisted; | 118 autofill::PasswordForm blacklisted; |
| 119 blacklisted.origin = this->origin(); | 119 blacklisted.origin = this->origin(); |
| 120 blacklisted.signon_realm = blacklisted.origin.spec(); | 120 blacklisted.signon_realm = blacklisted.origin.spec(); |
| 121 blacklisted.blacklisted_by_user = true; | 121 blacklisted.blacklisted_by_user = true; |
| 122 password_manager::PasswordStoreChange change( | 122 password_manager::PasswordStoreChange change( |
| 123 password_manager::PasswordStoreChange::ADD, blacklisted); | 123 password_manager::PasswordStoreChange::ADD, blacklisted); |
| 124 password_manager::PasswordStoreChangeList list(1, change); | 124 password_manager::PasswordStoreChangeList list(1, change); |
| 125 OnLoginsChanged(list); | 125 OnLoginsChanged(list); |
| 126 } | 126 } |
| 127 | 127 |
| 128 GURL OriginFromPasswordFormMap(const autofill::PasswordFormMap& map) { | |
|
vabr (Chromium)
2015/10/13 10:45:20
Typing
OriginFromPasswordFormMap(map)
is actuall
melandory
2015/10/13 13:48:16
Done.
| |
| 129 return map.begin()->second->origin; | |
| 130 } | |
| 131 | |
| 128 } // namespace | 132 } // namespace |
| 129 | 133 |
| 130 class ManagePasswordsUIControllerTest : public ChromeRenderViewHostTestHarness { | 134 class ManagePasswordsUIControllerTest : public ChromeRenderViewHostTestHarness { |
| 131 public: | 135 public: |
| 132 ManagePasswordsUIControllerTest() : password_manager_(&client_) {} | 136 ManagePasswordsUIControllerTest() : password_manager_(&client_) {} |
| 133 | 137 |
| 134 void SetUp() override { | 138 void SetUp() override { |
| 135 ChromeRenderViewHostTestHarness::SetUp(); | 139 ChromeRenderViewHostTestHarness::SetUp(); |
| 136 | 140 |
| 137 // Create the test UIController here so that it's bound to | 141 // Create the test UIController here so that it's bound to |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 227 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 231 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
| 228 } | 232 } |
| 229 | 233 |
| 230 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { | 234 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { |
| 231 scoped_ptr<autofill::PasswordForm> test_form( | 235 scoped_ptr<autofill::PasswordForm> test_form( |
| 232 new autofill::PasswordForm(test_local_form())); | 236 new autofill::PasswordForm(test_local_form())); |
| 233 autofill::PasswordForm* test_form_ptr = test_form.get(); | 237 autofill::PasswordForm* test_form_ptr = test_form.get(); |
| 234 base::string16 kTestUsername = test_form->username_value; | 238 base::string16 kTestUsername = test_form->username_value; |
| 235 autofill::PasswordFormMap map; | 239 autofill::PasswordFormMap map; |
| 236 map.insert(kTestUsername, test_form.Pass()); | 240 map.insert(kTestUsername, test_form.Pass()); |
| 237 controller()->OnPasswordAutofilled(map); | 241 controller()->OnPasswordAutofilled(map, OriginFromPasswordFormMap(map)); |
| 238 | 242 |
| 239 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 243 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); |
| 240 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 244 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| 241 EXPECT_EQ(test_form_ptr->origin, controller()->origin()); | 245 EXPECT_EQ(test_form_ptr->origin, controller()->origin()); |
| 242 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); | 246 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); |
| 243 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); | 247 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); |
| 244 | 248 |
| 245 // Controller should store a separate copy of the form as it doesn't own it. | 249 // Controller should store a separate copy of the form as it doesn't own it. |
| 246 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); | 250 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); |
| 247 | 251 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 374 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 378 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| 375 | 379 |
| 376 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 380 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
| 377 } | 381 } |
| 378 | 382 |
| 379 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { | 383 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { |
| 380 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 384 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
| 381 autofill::PasswordFormMap map; | 385 autofill::PasswordFormMap map; |
| 382 map.insert(kTestUsername, | 386 map.insert(kTestUsername, |
| 383 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); | 387 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
| 384 controller()->OnPasswordAutofilled(map); | 388 controller()->OnPasswordAutofilled(map, OriginFromPasswordFormMap(map)); |
| 385 | 389 |
| 386 test_local_form().blacklisted_by_user = true; | 390 test_local_form().blacklisted_by_user = true; |
| 387 password_manager::PasswordStoreChange change( | 391 password_manager::PasswordStoreChange change( |
| 388 password_manager::PasswordStoreChange::ADD, test_local_form()); | 392 password_manager::PasswordStoreChange::ADD, test_local_form()); |
| 389 password_manager::PasswordStoreChangeList list(1, change); | 393 password_manager::PasswordStoreChangeList list(1, change); |
| 390 controller()->OnLoginsChanged(list); | 394 controller()->OnLoginsChanged(list); |
| 391 | 395 |
| 392 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 396 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); |
| 393 EXPECT_EQ(test_local_form().origin, controller()->origin()); | 397 EXPECT_EQ(test_local_form().origin, controller()->origin()); |
| 394 | 398 |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 554 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { | 558 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { |
| 555 ScopedVector<autofill::PasswordForm> local_credentials; | 559 ScopedVector<autofill::PasswordForm> local_credentials; |
| 556 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 560 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
| 557 controller()->OnAutoSignin(local_credentials.Pass()); | 561 controller()->OnAutoSignin(local_credentials.Pass()); |
| 558 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); | 562 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); |
| 559 scoped_ptr<autofill::PasswordForm> test_form( | 563 scoped_ptr<autofill::PasswordForm> test_form( |
| 560 new autofill::PasswordForm(test_local_form())); | 564 new autofill::PasswordForm(test_local_form())); |
| 561 autofill::PasswordFormMap map; | 565 autofill::PasswordFormMap map; |
| 562 base::string16 kTestUsername = test_form->username_value; | 566 base::string16 kTestUsername = test_form->username_value; |
| 563 map.insert(kTestUsername, test_form.Pass()); | 567 map.insert(kTestUsername, test_form.Pass()); |
| 564 controller()->OnPasswordAutofilled(map); | 568 controller()->OnPasswordAutofilled(map, OriginFromPasswordFormMap(map)); |
| 565 | 569 |
| 566 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); | 570 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); |
| 567 } | 571 } |
| 568 | 572 |
| 569 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { | 573 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { |
| 570 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 574 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
| 571 autofill::PasswordFormMap map; | 575 autofill::PasswordFormMap map; |
| 572 scoped_ptr<autofill::PasswordForm> psl_matched_test_form( | 576 scoped_ptr<autofill::PasswordForm> psl_matched_test_form( |
| 573 new autofill::PasswordForm(test_local_form())); | 577 new autofill::PasswordForm(test_local_form())); |
| 574 psl_matched_test_form->is_public_suffix_match = true; | 578 psl_matched_test_form->is_public_suffix_match = true; |
| 575 map.insert(kTestUsername, psl_matched_test_form.Pass()); | 579 map.insert(kTestUsername, psl_matched_test_form.Pass()); |
| 576 controller()->OnPasswordAutofilled(map); | 580 controller()->OnPasswordAutofilled(map, OriginFromPasswordFormMap(map)); |
| 577 | 581 |
| 578 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); | 582 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); |
| 579 } | 583 } |
| 580 | 584 |
| 581 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { | 585 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { |
| 582 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 586 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 583 CreateFormManager()); | 587 CreateFormManager()); |
| 584 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); | 588 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); |
| 585 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, | 589 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, |
| 586 controller()->state()); | 590 controller()->state()); |
| 587 | 591 |
| 588 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 592 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
| 589 } | 593 } |
| 590 | 594 |
| 591 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { | 595 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { |
| 592 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 596 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 593 CreateFormManager()); | 597 CreateFormManager()); |
| 594 test_form_manager->ProvisionallySave( | 598 test_form_manager->ProvisionallySave( |
| 595 test_local_form(), | 599 test_local_form(), |
| 596 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 600 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| 597 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); | 601 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); |
| 598 | 602 |
| 599 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 603 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
| 600 controller()->UpdatePassword(autofill::PasswordForm()); | 604 controller()->UpdatePassword(autofill::PasswordForm()); |
| 601 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 605 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
| 602 } | 606 } |
| OLD | NEW |