| 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..0c839107e792182cb8798427585caa88a7f6aa2f 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_STATE);
|
| + model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC);
|
| + controller()->SetState(
|
| + password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE);
|
| + }
|
| +
|
| + void PretendUserInteractedWithAllowToSubmitBubbleBeforeNavigation() {
|
| + // TODO(melandory) This method should be removed after solution where
|
| + // "Ask to collect URL?" doesn't appear before navigation is implemented.
|
| + model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC);
|
| + model_->set_state(
|
| + password_manager::ui::
|
| + ASK_USER_REPORT_URL_BUBBLE_SHOWN_BEFORE_TRANSITION_STATE);
|
| + controller()->SetState(
|
| + password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE);
|
| + }
|
| +
|
| void PretendPasswordWaiting() {
|
| model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE);
|
| model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC);
|
| @@ -260,6 +278,100 @@ 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_REPORT_URL_BUBBLE_SHOWN_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_REPORT_URL_BUBBLE_SHOWN_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_REPORT_URL_BUBBLE_SHOWN_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_REPORT_URL_BUBBLE_SHOWN_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_REPORT_URL_BUBBLE_SHOWN_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_REPORT_URL_BUBBLE_SHOWN_STATE,
|
| + model_->state());
|
| + histogram_tester.ExpectUniqueSample(
|
| + kUIDismissalReasonMetric,
|
| + password_manager::metrics_util::NO_DIRECT_INTERACTION, 1);
|
| +}
|
| +
|
| TEST_F(ManagePasswordsBubbleModelTest, DismissCredential) {
|
| base::HistogramTester histogram_tester;
|
| PretendCredentialsWaiting();
|
|
|