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 24 matching lines...) Expand all Loading... |
35 | 35 |
36 void TearDown() override { model_.reset(); } | 36 void TearDown() override { model_.reset(); } |
37 | 37 |
38 void PretendPasswordWaiting() { | 38 void PretendPasswordWaiting() { |
39 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 39 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
40 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); | 40 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
41 controller()->SetState( | 41 controller()->SetState( |
42 password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 42 password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
43 } | 43 } |
44 | 44 |
| 45 void PretendCredentialsWaiting() { |
| 46 model_->set_state(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
| 47 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
| 48 controller()->SetState(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
| 49 } |
| 50 |
45 void PretendManagingPasswords() { | 51 void PretendManagingPasswords() { |
46 model_->set_state(password_manager::ui::MANAGE_STATE); | 52 model_->set_state(password_manager::ui::MANAGE_STATE); |
47 model_->OnBubbleShown(ManagePasswordsBubble::USER_ACTION); | 53 model_->OnBubbleShown(ManagePasswordsBubble::USER_ACTION); |
48 controller()->SetState(password_manager::ui::MANAGE_STATE); | 54 controller()->SetState(password_manager::ui::MANAGE_STATE); |
49 } | 55 } |
50 | 56 |
51 void PretendBlacklisted() { | 57 void PretendBlacklisted() { |
52 model_->set_state(password_manager::ui::BLACKLIST_STATE); | 58 model_->set_state(password_manager::ui::BLACKLIST_STATE); |
53 model_->OnBubbleShown(ManagePasswordsBubble::USER_ACTION); | 59 model_->OnBubbleShown(ManagePasswordsBubble::USER_ACTION); |
54 | 60 |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 EXPECT_EQ(password_manager::ui::MANAGE_STATE, model_->state()); | 216 EXPECT_EQ(password_manager::ui::MANAGE_STATE, model_->state()); |
211 EXPECT_FALSE(controller()->saved_password()); | 217 EXPECT_FALSE(controller()->saved_password()); |
212 EXPECT_FALSE(controller()->never_saved_password()); | 218 EXPECT_FALSE(controller()->never_saved_password()); |
213 | 219 |
214 histogram_tester.ExpectUniqueSample( | 220 histogram_tester.ExpectUniqueSample( |
215 kUIDismissalReasonMetric, | 221 kUIDismissalReasonMetric, |
216 password_manager::metrics_util::CLICKED_UNBLACKLIST, | 222 password_manager::metrics_util::CLICKED_UNBLACKLIST, |
217 1); | 223 1); |
218 } | 224 } |
219 | 225 |
| 226 TEST_F(ManagePasswordsBubbleModelTest, ClickCredential) { |
| 227 base::HistogramTester histogram_tester; |
| 228 PretendCredentialsWaiting(); |
| 229 EXPECT_FALSE(controller()->choose_credential()); |
| 230 autofill::PasswordForm form; |
| 231 model_->OnChooseCredentials(form); |
| 232 model_->OnBubbleHidden(); |
| 233 EXPECT_EQ(model_->dismissal_reason(), |
| 234 password_manager::metrics_util::CLICKED_CREDENTIAL); |
| 235 EXPECT_FALSE(controller()->saved_password()); |
| 236 EXPECT_FALSE(controller()->never_saved_password()); |
| 237 EXPECT_TRUE(controller()->choose_credential()); |
| 238 |
| 239 histogram_tester.ExpectUniqueSample( |
| 240 kUIDismissalReasonMetric, |
| 241 password_manager::metrics_util::CLICKED_CREDENTIAL, |
| 242 1); |
| 243 } |
| 244 |
| 245 TEST_F(ManagePasswordsBubbleModelTest, ClickCancelCredential) { |
| 246 base::HistogramTester histogram_tester; |
| 247 PretendCredentialsWaiting(); |
| 248 EXPECT_FALSE(controller()->choose_credential()); |
| 249 model_->OnNopeClicked(); |
| 250 model_->OnBubbleHidden(); |
| 251 EXPECT_EQ(model_->dismissal_reason(), |
| 252 password_manager::metrics_util::CLICKED_NOPE); |
| 253 EXPECT_FALSE(controller()->saved_password()); |
| 254 EXPECT_FALSE(controller()->never_saved_password()); |
| 255 EXPECT_TRUE(controller()->choose_credential()); |
| 256 |
| 257 histogram_tester.ExpectUniqueSample( |
| 258 kUIDismissalReasonMetric, |
| 259 password_manager::metrics_util::CLICKED_NOPE, |
| 260 1); |
| 261 } |
| 262 |
| 263 TEST_F(ManagePasswordsBubbleModelTest, DismissCredential) { |
| 264 base::HistogramTester histogram_tester; |
| 265 PretendCredentialsWaiting(); |
| 266 EXPECT_FALSE(controller()->choose_credential()); |
| 267 model_->OnBubbleHidden(); |
| 268 EXPECT_EQ(model_->dismissal_reason(), |
| 269 password_manager::metrics_util::NO_DIRECT_INTERACTION); |
| 270 EXPECT_FALSE(controller()->saved_password()); |
| 271 EXPECT_FALSE(controller()->never_saved_password()); |
| 272 EXPECT_TRUE(controller()->choose_credential()); |
| 273 |
| 274 histogram_tester.ExpectUniqueSample( |
| 275 kUIDismissalReasonMetric, |
| 276 password_manager::metrics_util::NO_DIRECT_INTERACTION, |
| 277 1); |
| 278 } |
| 279 |
220 TEST_F(ManagePasswordsBubbleModelTest, PasswordPendingUserDecision) { | 280 TEST_F(ManagePasswordsBubbleModelTest, PasswordPendingUserDecision) { |
221 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | 281 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); |
222 | 282 |
223 model_->set_state(password_manager::ui::INACTIVE_STATE); | 283 model_->set_state(password_manager::ui::INACTIVE_STATE); |
224 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | 284 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); |
225 model_->set_state(password_manager::ui::MANAGE_STATE); | 285 model_->set_state(password_manager::ui::MANAGE_STATE); |
226 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | 286 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); |
227 model_->set_state(password_manager::ui::BLACKLIST_STATE); | 287 model_->set_state(password_manager::ui::BLACKLIST_STATE); |
228 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | 288 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); |
229 | 289 |
230 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 290 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
231 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); | 291 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); |
232 model_->set_state(password_manager::ui::PENDING_PASSWORD_STATE); | 292 model_->set_state(password_manager::ui::PENDING_PASSWORD_STATE); |
233 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); | 293 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); |
234 } | 294 } |
OLD | NEW |