| 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 |