OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/metrics/histogram_samples.h" | 5 #include "base/metrics/histogram_samples.h" |
6 #include "base/prefs/pref_service.h" | 6 #include "base/prefs/pref_service.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "base/test/histogram_tester.h" | 8 #include "base/test/histogram_tester.h" |
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h" | 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h" |
10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" | 10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 new ManagePasswordsUIControllerMock(test_web_contents_.get()); | 37 new ManagePasswordsUIControllerMock(test_web_contents_.get()); |
38 | 38 |
39 model_.reset(new ManagePasswordsBubbleModel(test_web_contents_.get())); | 39 model_.reset(new ManagePasswordsBubbleModel(test_web_contents_.get())); |
40 } | 40 } |
41 | 41 |
42 void TearDown() override { model_.reset(); } | 42 void TearDown() override { model_.reset(); } |
43 | 43 |
44 PrefService* prefs() { return profile_.GetPrefs(); } | 44 PrefService* prefs() { return profile_.GetPrefs(); } |
45 | 45 |
46 void PretendNeedToAskUserToSubmitURL() { | 46 void PretendNeedToAskUserToSubmitURL() { |
47 model_->set_state(password_manager::ui::ASK_USER_REPORT_URL_STATE); | 47 model_->set_state(password_manager::ui:: |
| 48 ASK_USER_REPORT_URL_BUBBLE_SHOWN_BEFORE_TRANSITION_STATE); |
48 EXPECT_FALSE(prefs()->GetBoolean( | 49 EXPECT_FALSE(prefs()->GetBoolean( |
49 password_manager::prefs::kAllowToCollectURLBubbleWasShown)); | 50 password_manager::prefs::kAllowToCollectURLBubbleWasShown)); |
50 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); | 51 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
51 EXPECT_TRUE(prefs()->GetBoolean( | 52 EXPECT_TRUE(prefs()->GetBoolean( |
52 password_manager::prefs::kAllowToCollectURLBubbleWasShown)); | 53 password_manager::prefs::kAllowToCollectURLBubbleWasShown)); |
53 controller()->SetState( | 54 controller()->SetState( |
54 password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE); | 55 password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE); |
55 } | 56 } |
56 | 57 |
57 void PretendUserInteractedWithAllowToSubmitBubbleBeforeNavigation() { | 58 void PretendUserInteractedWithAllowToSubmitBubbleBeforeNavigation() { |
58 // TODO(melandory) This method should be removed after solution where | 59 // TODO(melandory) This method should be removed after solution where |
59 // "Ask to collect URL?" doesn't appear before navigation is implemented. | 60 // "Ask to collect URL?" doesn't appear before navigation is implemented. |
60 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); | 61 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
61 model_->set_state( | 62 model_->set_state( |
62 password_manager::ui:: | 63 password_manager::ui:: |
63 ASK_USER_REPORT_URL_BUBBLE_SHOWN_BEFORE_TRANSITION_STATE); | 64 ASK_USER_REPORT_URL_BUBBLE_SHOWN_BEFORE_TRANSITION_STATE); |
64 controller()->SetState( | 65 controller()->SetState( |
65 password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE); | 66 password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE); |
66 } | 67 } |
67 | 68 |
68 void PretendPasswordWaiting() { | 69 void PretendPasswordWaiting() { |
69 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 70 model_->set_state(password_manager::ui::PENDING_PASSWORD_STATE); |
70 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); | 71 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
71 controller()->SetState( | 72 controller()->SetState( |
72 password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 73 password_manager::ui::PENDING_PASSWORD_STATE); |
73 } | 74 } |
74 | 75 |
75 void PretendCredentialsWaiting() { | 76 void PretendCredentialsWaiting() { |
76 model_->set_state(password_manager::ui::CREDENTIAL_REQUEST_STATE); | 77 model_->set_state(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
77 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); | 78 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
78 controller()->SetState(password_manager::ui::CREDENTIAL_REQUEST_STATE); | 79 controller()->SetState(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
79 } | 80 } |
80 | 81 |
81 void PretendManagingPasswords() { | 82 void PretendManagingPasswords() { |
82 model_->set_state(password_manager::ui::MANAGE_STATE); | 83 model_->set_state(password_manager::ui::MANAGE_STATE); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 kUIDismissalReasonMetric)); | 134 kUIDismissalReasonMetric)); |
134 EXPECT_EQ(NULL, samples.get()); | 135 EXPECT_EQ(NULL, samples.get()); |
135 } | 136 } |
136 | 137 |
137 TEST_F(ManagePasswordsBubbleModelTest, CloseWithoutInteraction) { | 138 TEST_F(ManagePasswordsBubbleModelTest, CloseWithoutInteraction) { |
138 base::HistogramTester histogram_tester; | 139 base::HistogramTester histogram_tester; |
139 PretendPasswordWaiting(); | 140 PretendPasswordWaiting(); |
140 model_->OnBubbleHidden(); | 141 model_->OnBubbleHidden(); |
141 EXPECT_EQ(model_->dismissal_reason(), | 142 EXPECT_EQ(model_->dismissal_reason(), |
142 password_manager::metrics_util::NO_DIRECT_INTERACTION); | 143 password_manager::metrics_util::NO_DIRECT_INTERACTION); |
143 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE, | 144 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
144 model_->state()); | 145 model_->state()); |
145 EXPECT_FALSE(controller()->saved_password()); | 146 EXPECT_FALSE(controller()->saved_password()); |
146 EXPECT_FALSE(controller()->never_saved_password()); | 147 EXPECT_FALSE(controller()->never_saved_password()); |
147 | 148 |
148 histogram_tester.ExpectUniqueSample( | 149 histogram_tester.ExpectUniqueSample( |
149 kUIDismissalReasonMetric, | 150 kUIDismissalReasonMetric, |
150 password_manager::metrics_util::NO_DIRECT_INTERACTION, | 151 password_manager::metrics_util::NO_DIRECT_INTERACTION, |
151 1); | 152 1); |
152 } | 153 } |
153 | 154 |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 password_manager::metrics_util::NO_DIRECT_INTERACTION); | 395 password_manager::metrics_util::NO_DIRECT_INTERACTION); |
395 EXPECT_FALSE(controller()->saved_password()); | 396 EXPECT_FALSE(controller()->saved_password()); |
396 EXPECT_FALSE(controller()->never_saved_password()); | 397 EXPECT_FALSE(controller()->never_saved_password()); |
397 EXPECT_TRUE(controller()->choose_credential()); | 398 EXPECT_TRUE(controller()->choose_credential()); |
398 | 399 |
399 histogram_tester.ExpectUniqueSample( | 400 histogram_tester.ExpectUniqueSample( |
400 kUIDismissalReasonMetric, | 401 kUIDismissalReasonMetric, |
401 password_manager::metrics_util::NO_DIRECT_INTERACTION, | 402 password_manager::metrics_util::NO_DIRECT_INTERACTION, |
402 1); | 403 1); |
403 } | 404 } |
404 | |
405 TEST_F(ManagePasswordsBubbleModelTest, PasswordPendingUserDecision) { | |
406 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | |
407 | |
408 model_->set_state(password_manager::ui::INACTIVE_STATE); | |
409 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | |
410 model_->set_state(password_manager::ui::MANAGE_STATE); | |
411 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | |
412 model_->set_state(password_manager::ui::BLACKLIST_STATE); | |
413 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | |
414 | |
415 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | |
416 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); | |
417 model_->set_state(password_manager::ui::PENDING_PASSWORD_STATE); | |
418 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); | |
419 } | |
OLD | NEW |