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 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
378 CreateFormManager()); | 378 CreateFormManager()); |
379 test_form_manager->ProvisionallySave( | 379 test_form_manager->ProvisionallySave( |
380 test_local_form(), | 380 test_local_form(), |
381 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 381 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
382 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 382 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
383 | 383 |
384 controller()->NeverSavePassword(); | 384 controller()->NeverSavePassword(); |
385 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 385 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
386 } | 386 } |
387 | 387 |
388 TEST_F(ManagePasswordsUIControllerTest, RedirectNavigations) { | |
389 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | |
390 CreateFormManager()); | |
391 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | |
392 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | |
393 | |
394 // Fake-redirect. We expect the bubble's state to persist so a user reasonably | |
395 // have been able to interact with the bubble. This happens on | |
396 // `accounts.google.com`, for instance. | |
397 content::FrameNavigateParams params; | |
398 params.transition = ui::PAGE_TRANSITION_SERVER_REDIRECT; | |
399 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), params); | |
400 | |
401 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | |
402 } | |
403 | |
404 TEST_F(ManagePasswordsUIControllerTest, NormalNavigations) { | 388 TEST_F(ManagePasswordsUIControllerTest, NormalNavigations) { |
405 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 389 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
406 CreateFormManager()); | 390 CreateFormManager()); |
407 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 391 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
408 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 392 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
409 | 393 |
410 // Fake-navigate. We expect the bubble's state to be reset. | 394 // Fake-navigate. We expect the bubble's state to persist so a user reasonably |
395 // have been able to interact with the bubble. This happens on | |
vabr (Chromium)
2016/02/17 14:28:42
nit: have -> has
vasilii
2016/02/17 14:40:38
Done.
| |
396 // `accounts.google.com`, for instance. | |
411 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), | 397 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), |
412 content::FrameNavigateParams()); | 398 content::FrameNavigateParams()); |
399 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | |
400 controller()->GetState()); | |
401 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | |
402 } | |
413 | 403 |
404 TEST_F(ManagePasswordsUIControllerTest, NormalNavigationsClosedBubble) { | |
405 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | |
406 CreateFormManager()); | |
407 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | |
408 controller()->SavePassword(); | |
409 controller()->OnBubbleHidden(); | |
410 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | |
411 | |
412 // Fake-navigate. There is no bubble, reset the state. | |
413 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), | |
414 content::FrameNavigateParams()); | |
415 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); | |
414 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 416 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
415 } | 417 } |
416 | 418 |
417 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { | 419 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { |
418 // Navigate to a non-webby URL, then see what happens! | 420 // Navigate to a non-webby URL, then see what happens! |
419 content::WebContentsTester::For(web_contents()) | 421 content::WebContentsTester::For(web_contents()) |
420 ->NavigateAndCommit(GURL("chrome://sign-in")); | 422 ->NavigateAndCommit(GURL("chrome://sign-in")); |
421 | 423 |
422 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 424 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
423 CreateFormManager()); | 425 CreateFormManager()); |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
646 EXPECT_CALL(dialog_prompt(), ControllerGone()); | 648 EXPECT_CALL(dialog_prompt(), ControllerGone()); |
647 } | 649 } |
648 | 650 |
649 TEST_F(ManagePasswordsUIControllerTest, AutoSigninFirstRunAfterNavigation) { | 651 TEST_F(ManagePasswordsUIControllerTest, AutoSigninFirstRunAfterNavigation) { |
650 // Pop up the autosignin promo. | 652 // Pop up the autosignin promo. |
651 EXPECT_CALL(*controller(), CreateAutoSigninPrompt(_)).WillOnce( | 653 EXPECT_CALL(*controller(), CreateAutoSigninPrompt(_)).WillOnce( |
652 Return(&dialog_prompt())); | 654 Return(&dialog_prompt())); |
653 EXPECT_CALL(dialog_prompt(), ShowAutoSigninPrompt()); | 655 EXPECT_CALL(dialog_prompt(), ShowAutoSigninPrompt()); |
654 controller()->OnPromptEnableAutoSignin(); | 656 controller()->OnPromptEnableAutoSignin(); |
655 | 657 |
658 // The dialog should survive any navigation. | |
656 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0); | 659 EXPECT_CALL(dialog_prompt(), ControllerGone()).Times(0); |
657 content::FrameNavigateParams params; | 660 content::FrameNavigateParams params; |
658 params.transition = ui::PAGE_TRANSITION_LINK; | 661 params.transition = ui::PAGE_TRANSITION_LINK; |
659 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), params); | 662 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), params); |
660 ASSERT_TRUE(testing::Mock::VerifyAndClearExpectations(&dialog_prompt())); | 663 ASSERT_TRUE(testing::Mock::VerifyAndClearExpectations(&dialog_prompt())); |
661 EXPECT_CALL(dialog_prompt(), ControllerGone()); | 664 EXPECT_CALL(dialog_prompt(), ControllerGone()); |
662 } | 665 } |
663 | 666 |
664 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { | 667 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { |
665 ScopedVector<autofill::PasswordForm> local_credentials; | 668 ScopedVector<autofill::PasswordForm> local_credentials; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
703 CreateFormManager()); | 706 CreateFormManager()); |
704 test_form_manager->ProvisionallySave( | 707 test_form_manager->ProvisionallySave( |
705 test_local_form(), | 708 test_local_form(), |
706 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 709 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
707 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); | 710 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); |
708 | 711 |
709 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 712 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
710 controller()->UpdatePassword(autofill::PasswordForm()); | 713 controller()->UpdatePassword(autofill::PasswordForm()); |
711 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 714 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
712 } | 715 } |
713 | |
714 TEST_F(ManagePasswordsUIControllerTest, NavigationWhenUpdateBubbleActive) { | |
715 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | |
716 CreateFormManager()); | |
717 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); | |
718 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, | |
719 controller()->GetState()); | |
720 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), | |
721 content::FrameNavigateParams()); | |
722 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); | |
723 // The following line shouldn't crash browser. | |
724 controller()->OnNoInteractionOnUpdate(); | |
725 } | |
OLD | NEW |