Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc

Issue 2262843002: Make PasswordFormManager::best_matches_ const (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@621355_pass_creds_to_update_by_value
Patch Set: Just rebased Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <map>
5 #include <memory> 6 #include <memory>
6 #include <utility> 7 #include <utility>
7 #include <vector> 8 #include <vector>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/macros.h" 11 #include "base/macros.h"
11 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "base/strings/string16.h"
12 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
13 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
14 #include "build/build_config.h" 16 #include "build/build_config.h"
15 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" 17 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
16 #include "chrome/browser/ui/passwords/manage_passwords_icon_view.h" 18 #include "chrome/browser/ui/passwords/manage_passwords_icon_view.h"
17 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h" 19 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h"
18 #include "chrome/browser/ui/passwords/password_dialog_controller.h" 20 #include "chrome/browser/ui/passwords/password_dialog_controller.h"
19 #include "chrome/browser/ui/passwords/password_dialog_prompts.h" 21 #include "chrome/browser/ui/passwords/password_dialog_prompts.h"
20 #include "chrome/browser/ui/passwords/passwords_model_delegate.h" 22 #include "chrome/browser/ui/passwords/passwords_model_delegate.h"
21 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 23 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 270 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
269 if (state == password_manager::ui::PENDING_PASSWORD_STATE) 271 if (state == password_manager::ui::PENDING_PASSWORD_STATE)
270 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 272 controller()->OnPasswordSubmitted(std::move(test_form_manager));
271 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) 273 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE)
272 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); 274 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager));
273 else // password_manager::ui::CONFIRMATION_STATE 275 else // password_manager::ui::CONFIRMATION_STATE
274 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); 276 controller()->OnAutomaticPasswordSave(std::move(test_form_manager));
275 ASSERT_EQ(state, controller()->GetState()); 277 ASSERT_EQ(state, controller()->GetState());
276 278
277 // Autofill happens. 279 // Autofill happens.
278 std::unique_ptr<autofill::PasswordForm> test_form( 280 std::map<base::string16, const autofill::PasswordForm*> map;
279 new autofill::PasswordForm(test_local_form()));
280 autofill::PasswordFormMap map;
281 map.insert( 281 map.insert(
282 std::make_pair(test_local_form().username_value, std::move(test_form))); 282 std::make_pair(test_local_form().username_value, &test_local_form()));
283 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); 283 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr);
284 284
285 // State shouldn't changed. 285 // State shouldn't changed.
286 EXPECT_EQ(state, controller()->GetState()); 286 EXPECT_EQ(state, controller()->GetState());
287 ExpectIconStateIs(state); 287 ExpectIconStateIs(state);
288 } 288 }
289 289
290 TEST_F(ManagePasswordsUIControllerTest, DefaultState) { 290 TEST_F(ManagePasswordsUIControllerTest, DefaultState) {
291 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 291 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
292 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); 292 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin());
293 293
294 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 294 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
295 } 295 }
296 296
297 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { 297 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) {
298 std::unique_ptr<autofill::PasswordForm> test_form( 298 const autofill::PasswordForm* test_form_ptr = &test_local_form();
299 new autofill::PasswordForm(test_local_form())); 299 base::string16 kTestUsername = test_form_ptr->username_value;
300 autofill::PasswordForm* test_form_ptr = test_form.get(); 300 std::map<base::string16, const autofill::PasswordForm*> map;
301 base::string16 kTestUsername = test_form->username_value; 301 map.insert(std::make_pair(kTestUsername, test_form_ptr));
302 autofill::PasswordFormMap map;
303 map.insert(std::make_pair(kTestUsername, std::move(test_form)));
304 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 302 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
305 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); 303 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr);
306 304
307 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); 305 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
308 EXPECT_EQ(test_form_ptr->origin, controller()->GetOrigin()); 306 EXPECT_EQ(test_form_ptr->origin, controller()->GetOrigin());
309 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); 307 ASSERT_EQ(1u, controller()->GetCurrentForms().size());
310 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); 308 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value);
311 309
312 // Controller should store a separate copy of the form as it doesn't own it. 310 // Controller should store a separate copy of the form as it doesn't own it.
313 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0].get()); 311 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0].get());
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 478 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
481 controller()->OnPasswordSubmitted(std::move(test_form_manager)); 479 controller()->OnPasswordSubmitted(std::move(test_form_manager));
482 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 480 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
483 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); 481 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin());
484 482
485 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 483 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
486 } 484 }
487 485
488 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { 486 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) {
489 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 487 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
490 autofill::PasswordFormMap map; 488 std::map<base::string16, const autofill::PasswordForm*> map;
491 map.insert(std::make_pair( 489 map.insert(std::make_pair(kTestUsername, &test_local_form()));
492 kTestUsername,
493 base::WrapUnique(new autofill::PasswordForm(test_local_form()))));
494 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 490 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
495 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); 491 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr);
496 492
497 test_local_form().blacklisted_by_user = true; 493 test_local_form().blacklisted_by_user = true;
498 password_manager::PasswordStoreChange change( 494 password_manager::PasswordStoreChange change(
499 password_manager::PasswordStoreChange::ADD, test_local_form()); 495 password_manager::PasswordStoreChange::ADD, test_local_form());
500 password_manager::PasswordStoreChangeList list(1, change); 496 password_manager::PasswordStoreChangeList list(1, change);
501 controller()->OnLoginsChanged(list); 497 controller()->OnLoginsChanged(list);
502 498
503 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); 499 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 Return(&dialog_prompt())); 627 Return(&dialog_prompt()));
632 EXPECT_CALL(dialog_prompt(), ShowAutoSigninPrompt()); 628 EXPECT_CALL(dialog_prompt(), ShowAutoSigninPrompt());
633 controller()->OnPromptEnableAutoSignin(); 629 controller()->OnPromptEnableAutoSignin();
634 630
635 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 631 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
636 EXPECT_CALL(dialog_prompt(), ControllerGone()); 632 EXPECT_CALL(dialog_prompt(), ControllerGone());
637 } 633 }
638 634
639 TEST_F(ManagePasswordsUIControllerTest, AutoSigninFirstRunAfterAutofill) { 635 TEST_F(ManagePasswordsUIControllerTest, AutoSigninFirstRunAfterAutofill) {
640 // Setup the managed state first. 636 // Setup the managed state first.
641 std::unique_ptr<autofill::PasswordForm> test_form( 637 const autofill::PasswordForm* test_form_ptr = &test_local_form();
642 new autofill::PasswordForm(test_local_form())); 638 const base::string16 kTestUsername = test_form_ptr->username_value;
643 autofill::PasswordForm* test_form_ptr = test_form.get(); 639 std::map<base::string16, const autofill::PasswordForm*> map;
644 const base::string16 kTestUsername = test_form->username_value; 640 map.insert(std::make_pair(kTestUsername, test_form_ptr));
645 autofill::PasswordFormMap map;
646 map.insert(std::make_pair(kTestUsername, std::move(test_form)));
647 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 641 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
648 controller()->OnPasswordAutofilled(map, test_form_ptr->origin, nullptr); 642 controller()->OnPasswordAutofilled(map, test_form_ptr->origin, nullptr);
649 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); 643 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
650 644
651 // Pop up the autosignin promo. The state should stay intact. 645 // Pop up the autosignin promo. The state should stay intact.
652 EXPECT_CALL(*controller(), CreateAutoSigninPrompt(_)).WillOnce( 646 EXPECT_CALL(*controller(), CreateAutoSigninPrompt(_)).WillOnce(
653 Return(&dialog_prompt())); 647 Return(&dialog_prompt()));
654 EXPECT_CALL(dialog_prompt(), ShowAutoSigninPrompt()); 648 EXPECT_CALL(dialog_prompt(), ShowAutoSigninPrompt());
655 controller()->OnPromptEnableAutoSignin(); 649 controller()->OnPromptEnableAutoSignin();
656 650
(...skipping 21 matching lines...) Expand all
678 EXPECT_CALL(dialog_prompt(), ControllerGone()); 672 EXPECT_CALL(dialog_prompt(), ControllerGone());
679 } 673 }
680 674
681 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { 675 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) {
682 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials; 676 std::vector<std::unique_ptr<autofill::PasswordForm>> local_credentials;
683 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 677 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
684 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 678 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
685 controller()->OnAutoSignin(std::move(local_credentials), 679 controller()->OnAutoSignin(std::move(local_credentials),
686 test_local_form().origin); 680 test_local_form().origin);
687 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); 681 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE);
688 std::unique_ptr<autofill::PasswordForm> test_form( 682 std::map<base::string16, const autofill::PasswordForm*> map;
689 new autofill::PasswordForm(test_local_form())); 683 base::string16 kTestUsername = test_local_form().username_value;
690 autofill::PasswordFormMap map; 684 map.insert(std::make_pair(kTestUsername, &test_local_form()));
691 base::string16 kTestUsername = test_form->username_value;
692 map.insert(std::make_pair(kTestUsername, std::move(test_form)));
693 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); 685 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr);
694 686
695 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE); 687 ExpectIconAndControllerStateIs(password_manager::ui::AUTO_SIGNIN_STATE);
696 } 688 }
697 689
698 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { 690 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) {
699 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 691 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
700 autofill::PasswordFormMap map; 692 std::map<base::string16, const autofill::PasswordForm*> map;
701 std::unique_ptr<autofill::PasswordForm> psl_matched_test_form( 693 autofill::PasswordForm psl_matched_test_form(test_local_form());
702 new autofill::PasswordForm(test_local_form())); 694 psl_matched_test_form.is_public_suffix_match = true;
703 psl_matched_test_form->is_public_suffix_match = true; 695 map.insert(std::make_pair(kTestUsername, &psl_matched_test_form));
704 map.insert(std::make_pair(kTestUsername, std::move(psl_matched_test_form)));
705 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 696 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
706 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); 697 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr);
707 698
708 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 699 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
709 } 700 }
710 701
711 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { 702 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) {
712 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( 703 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager(
713 CreateFormManager()); 704 CreateFormManager());
714 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 705 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 // Open the bubble again. 753 // Open the bubble again.
763 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); 754 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form()));
764 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); 755 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility());
765 controller()->OnAutoSignin(std::move(local_credentials), 756 controller()->OnAutoSignin(std::move(local_credentials),
766 test_local_form().origin); 757 test_local_form().origin);
767 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); 758 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState());
768 // Check the delegate is destroyed. Thus, the first bubble has no way to mess 759 // Check the delegate is destroyed. Thus, the first bubble has no way to mess
769 // up with the controller's state. 760 // up with the controller's state.
770 EXPECT_FALSE(proxy_delegate); 761 EXPECT_FALSE(proxy_delegate);
771 } 762 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698