Chromium Code Reviews| 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 50a52f264a9da72aa49acec58fce80cea1a8def2..398ba199093589394fa22c2822a987065e206759 100644 |
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc |
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc |
| @@ -35,6 +35,24 @@ class ManagePasswordsBubbleModelTest : public testing::Test { |
| void TearDown() override { model_.reset(); } |
| + void PretendNeedToAskUserToSubmitURL() { |
| + model_->set_state( |
| + password_manager::ui::ASK_USER_REPORT_URL_BEFORE_LOAD_STATE); |
| + model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
| + controller()->SetState( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE); |
| + } |
| + |
| + void PretendUserInteractedWithAllowToSubmitBubbleBeforeNavigation() { |
| + // TODO(melandory) This method should be removed after solution where |
| + // "Ask to collect URL?" doesn't appear before navigation is implemented |
|
vabr (Chromium)
2014/12/05 13:43:22
nit: Full-stop missing at the end.
melandory
2014/12/05 14:22:56
Done.
|
| + model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
| + model_->set_state( |
| + password_manager::ui::ASK_USER_REPORT_URL_AFTER_LOAD_STATE); |
| + controller()->SetState( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE); |
| + } |
| + |
| void PretendPasswordWaiting() { |
| model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
| model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
| @@ -260,6 +278,106 @@ TEST_F(ManagePasswordsBubbleModelTest, ClickCancelCredential) { |
| 1); |
| } |
| +TEST_F(ManagePasswordsBubbleModelTest, ClickCollectURL) { |
| + base::HistogramTester histogram_tester; |
| + PretendNeedToAskUserToSubmitURL(); |
| + model_->OnCollectURLClicked(); |
| + model_->OnBubbleHidden(); |
| + EXPECT_EQ(model_->dismissal_reason(), |
| + password_manager::metrics_util::CLICKED_COLLECT_URL); |
| + EXPECT_EQ( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE, |
| + model_->state()); |
| + |
| + histogram_tester.ExpectUniqueSample( |
| + kUIDismissalReasonMetric, |
| + password_manager::metrics_util::CLICKED_COLLECT_URL, 1); |
| +} |
| + |
| +TEST_F(ManagePasswordsBubbleModelTest, ClickDoNotCollectURL) { |
| + base::HistogramTester histogram_tester; |
| + PretendNeedToAskUserToSubmitURL(); |
| + model_->OnDoNotCollectURLClicked(); |
| + model_->OnBubbleHidden(); |
| + EXPECT_EQ(model_->dismissal_reason(), |
| + password_manager::metrics_util::CLICKED_DO_NOT_COLLECT_URL); |
| + EXPECT_EQ( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE, |
| + model_->state()); |
| + |
| + histogram_tester.ExpectUniqueSample( |
| + kUIDismissalReasonMetric, |
| + password_manager::metrics_util::CLICKED_DO_NOT_COLLECT_URL, 1); |
| +} |
| + |
| +TEST_F(ManagePasswordsBubbleModelTest, |
| + CollectURLBubbleCloseWithoutInteraction) { |
| + base::HistogramTester histogram_tester; |
| + PretendNeedToAskUserToSubmitURL(); |
| + model_->OnBubbleHidden(); |
| + EXPECT_EQ(model_->dismissal_reason(), |
| + password_manager::metrics_util::NO_DIRECT_INTERACTION); |
| + EXPECT_EQ( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE, |
| + model_->state()); |
| + histogram_tester.ExpectUniqueSample( |
| + kUIDismissalReasonMetric, |
| + password_manager::metrics_util::NO_DIRECT_INTERACTION, 1); |
| +} |
| + |
| +TEST_F(ManagePasswordsBubbleModelTest, ClickCollectURLBeforeNavigation) { |
| + // TODO(melandory) This test case should be removed after solution where |
| + // "Ask to collect URL?" doesn't appear before navigation is implemented |
| + base::HistogramTester histogram_tester; |
| + PretendUserInteractedWithAllowToSubmitBubbleBeforeNavigation(); |
| + model_->OnCollectURLClicked(); |
| + model_->OnBubbleHidden(); |
| + EXPECT_EQ(model_->dismissal_reason(), |
| + password_manager::metrics_util::CLICKED_COLLECT_URL); |
| + EXPECT_EQ( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE, |
| + model_->state()); |
| + |
| + histogram_tester.ExpectUniqueSample( |
| + kUIDismissalReasonMetric, |
| + password_manager::metrics_util::CLICKED_COLLECT_URL, 1); |
| +} |
| + |
| +TEST_F(ManagePasswordsBubbleModelTest, ClickDoNotCollectURLBeforeNavigation) { |
| + // TODO(melandory) This test case should be removed after solution where |
| + // "Ask to collect URL?" doesn't appear before navigation is implemented |
| + base::HistogramTester histogram_tester; |
| + PretendUserInteractedWithAllowToSubmitBubbleBeforeNavigation(); |
| + model_->OnDoNotCollectURLClicked(); |
| + model_->OnBubbleHidden(); |
| + EXPECT_EQ(model_->dismissal_reason(), |
| + password_manager::metrics_util::CLICKED_DO_NOT_COLLECT_URL); |
| + EXPECT_EQ( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE, |
| + model_->state()); |
| + |
| + histogram_tester.ExpectUniqueSample( |
| + kUIDismissalReasonMetric, |
| + password_manager::metrics_util::CLICKED_DO_NOT_COLLECT_URL, 1); |
| +} |
| + |
| +TEST_F(ManagePasswordsBubbleModelTest, |
| + CollectURLBubbleCloseWithoutInteractionBeforeNavigation) { |
| + // TODO(melandory) This test case should be removed after solution where |
| + // "Ask to collect URL?" doesn't appear before navigation is implemented |
| + base::HistogramTester histogram_tester; |
| + PretendUserInteractedWithAllowToSubmitBubbleBeforeNavigation(); |
| + model_->OnBubbleHidden(); |
| + EXPECT_EQ(model_->dismissal_reason(), |
| + password_manager::metrics_util::NO_DIRECT_INTERACTION); |
| + EXPECT_EQ( |
| + password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE, |
| + model_->state()); |
| + histogram_tester.ExpectUniqueSample( |
| + kUIDismissalReasonMetric, |
| + password_manager::metrics_util::NO_DIRECT_INTERACTION, 1); |
| +} |
| + |
| TEST_F(ManagePasswordsBubbleModelTest, DismissCredential) { |
| base::HistogramTester histogram_tester; |
| PretendCredentialsWaiting(); |