Index: chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc |
diff --git a/chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc b/chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc |
index 301d3717e17dc47743ef225ec3e72056f5246876..50a52f264a9da72aa49acec58fce80cea1a8def2 100644 |
--- a/chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc |
+++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc |
@@ -42,6 +42,12 @@ class ManagePasswordsBubbleModelTest : public testing::Test { |
password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
} |
+ void PretendCredentialsWaiting() { |
+ model_->set_state(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
+ model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
+ controller()->SetState(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
+ } |
+ |
void PretendManagingPasswords() { |
model_->set_state(password_manager::ui::MANAGE_STATE); |
model_->OnBubbleShown(ManagePasswordsBubble::USER_ACTION); |
@@ -217,6 +223,60 @@ TEST_F(ManagePasswordsBubbleModelTest, ClickUnblacklist) { |
1); |
} |
+TEST_F(ManagePasswordsBubbleModelTest, ClickCredential) { |
+ base::HistogramTester histogram_tester; |
+ PretendCredentialsWaiting(); |
+ EXPECT_FALSE(controller()->choose_credential()); |
+ autofill::PasswordForm form; |
+ model_->OnChooseCredentials(form); |
+ model_->OnBubbleHidden(); |
+ EXPECT_EQ(model_->dismissal_reason(), |
+ password_manager::metrics_util::CLICKED_CREDENTIAL); |
+ EXPECT_FALSE(controller()->saved_password()); |
+ EXPECT_FALSE(controller()->never_saved_password()); |
+ EXPECT_TRUE(controller()->choose_credential()); |
+ |
+ histogram_tester.ExpectUniqueSample( |
+ kUIDismissalReasonMetric, |
+ password_manager::metrics_util::CLICKED_CREDENTIAL, |
+ 1); |
+} |
+ |
+TEST_F(ManagePasswordsBubbleModelTest, ClickCancelCredential) { |
+ base::HistogramTester histogram_tester; |
+ PretendCredentialsWaiting(); |
+ EXPECT_FALSE(controller()->choose_credential()); |
+ model_->OnNopeClicked(); |
+ model_->OnBubbleHidden(); |
+ EXPECT_EQ(model_->dismissal_reason(), |
+ password_manager::metrics_util::CLICKED_NOPE); |
+ EXPECT_FALSE(controller()->saved_password()); |
+ EXPECT_FALSE(controller()->never_saved_password()); |
+ EXPECT_TRUE(controller()->choose_credential()); |
+ |
+ histogram_tester.ExpectUniqueSample( |
+ kUIDismissalReasonMetric, |
+ password_manager::metrics_util::CLICKED_NOPE, |
+ 1); |
+} |
+ |
+TEST_F(ManagePasswordsBubbleModelTest, DismissCredential) { |
+ base::HistogramTester histogram_tester; |
+ PretendCredentialsWaiting(); |
+ EXPECT_FALSE(controller()->choose_credential()); |
+ model_->OnBubbleHidden(); |
+ EXPECT_EQ(model_->dismissal_reason(), |
+ password_manager::metrics_util::NO_DIRECT_INTERACTION); |
+ EXPECT_FALSE(controller()->saved_password()); |
+ EXPECT_FALSE(controller()->never_saved_password()); |
+ EXPECT_TRUE(controller()->choose_credential()); |
+ |
+ histogram_tester.ExpectUniqueSample( |
+ kUIDismissalReasonMetric, |
+ password_manager::metrics_util::NO_DIRECT_INTERACTION, |
+ 1); |
+} |
+ |
TEST_F(ManagePasswordsBubbleModelTest, PasswordPendingUserDecision) { |
EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); |