Chromium Code Reviews| Index: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| index db036a0a60f249718544e612d8e68f3136c55a90..c0ee5a4107d8d615cef6792cf1c209d832da8a43 100644 |
| --- a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| +++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc |
| @@ -805,3 +805,82 @@ TEST_F(ManagePasswordsUIControllerTest, OpenBubbleTwice) { |
| // up with the controller's state. |
| EXPECT_FALSE(proxy_delegate); |
| } |
| + |
| +TEST_F(ManagePasswordsUIControllerTest, ManualFallbackForSaving_UseFallback) { |
| + for (bool is_update : {false, true}) { |
| + SCOPED_TRACE(testing::Message("is_update = ") << is_update); |
| + std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( |
| + CreateFormManager()); |
| + test_form_manager->ProvisionallySave( |
| + test_local_form(), |
| + password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| + EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
| + controller()->OnShowManualFallbackForSaving(std::move(test_form_manager), |
| + is_update); |
| + ExpectIconAndControllerStateIs( |
| + is_update ? password_manager::ui::PENDING_PASSWORD_UPDATE_STATE |
| + : password_manager::ui::PENDING_PASSWORD_STATE); |
| + EXPECT_FALSE(controller()->opened_bubble()); |
| + |
| + // A user clicks on omnibox icon, opens the bubble and press Save/Update. |
| + if (is_update) { |
| + EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
| + controller()->UpdatePassword(autofill::PasswordForm()); |
| + } else { |
| + controller()->SavePassword(test_local_form().username_value); |
| + } |
| + ExpectIconAndControllerStateIs(password_manager::ui::MANAGE_STATE); |
| + } |
|
vasilii
2017/07/25 11:17:47
How about clearing the expectations on controller(
kolos1
2017/07/26 13:40:57
Done.
|
| +} |
| + |
| +TEST_F(ManagePasswordsUIControllerTest, ManualFallbackForSaving_HideFallback) { |
| + for (bool is_update : {false, true}) { |
| + SCOPED_TRACE(testing::Message("is_update = ") << is_update); |
| + std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( |
| + CreateFormManager()); |
| + test_form_manager->ProvisionallySave( |
| + test_local_form(), |
| + password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| + EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
| + controller()->OnShowManualFallbackForSaving(std::move(test_form_manager), |
| + is_update); |
| + ExpectIconAndControllerStateIs( |
| + is_update ? password_manager::ui::PENDING_PASSWORD_UPDATE_STATE |
| + : password_manager::ui::PENDING_PASSWORD_STATE); |
| + EXPECT_FALSE(controller()->opened_bubble()); |
| + |
| + // A user clears the password field. It hides the fallback. |
| + EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
| + controller()->OnHideManualFallbackForSaving(); |
| + ExpectIconAndControllerStateIs(password_manager::ui::MANAGE_STATE); |
| + } |
| +} |
| + |
| +TEST_F(ManagePasswordsUIControllerTest, |
| + ManualFallbackForSaving_GeneratedPassword) { |
| + for (bool user_closed_bubble : {false, true}) { |
| + SCOPED_TRACE(testing::Message("user_closed_bubble = ") |
| + << user_closed_bubble); |
| + std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( |
| + CreateFormManager()); |
| + test_form_manager->ProvisionallySave( |
| + test_local_form(), |
| + password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
| + test_form_manager->SetHasGeneratedPassword(true); |
| + EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
| + controller()->OnShowManualFallbackForSaving(std::move(test_form_manager), |
| + false); |
| + ExpectIconAndControllerStateIs(password_manager::ui::CONFIRMATION_STATE); |
| + EXPECT_FALSE(controller()->opened_bubble()); |
| + |
| + EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
| + if (user_closed_bubble) { |
| + // A user opens the confirmation bubble and presses OK. |
| + controller()->OnBubbleHidden(); |
| + } else { |
| + // The user removes the generated password. It hides the fallback. |
| + controller()->OnHideManualFallbackForSaving(); |
| + } |
| + ExpectIconAndControllerStateIs(password_manager::ui::MANAGE_STATE); |
| + } |
| +} |