Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(666)

Unified Diff: chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc

Issue 765073004: Adding skeleton code for showing Bubble, asking user to submit URL when Password Manager fails (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on master Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698