| 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 17 matching lines...) Expand all Loading... |
| 28 void SetUp() override { | 28 void SetUp() override { |
| 29 // Create the test UIController here so that it's bound to | 29 // Create the test UIController here so that it's bound to |
| 30 // |test_web_contents_| and therefore accessible to the model. | 30 // |test_web_contents_| and therefore accessible to the model. |
| 31 new ManagePasswordsUIControllerMock(test_web_contents_.get()); | 31 new ManagePasswordsUIControllerMock(test_web_contents_.get()); |
| 32 | 32 |
| 33 model_.reset(new ManagePasswordsBubbleModel(test_web_contents_.get())); | 33 model_.reset(new ManagePasswordsBubbleModel(test_web_contents_.get())); |
| 34 } | 34 } |
| 35 | 35 |
| 36 void TearDown() override { model_.reset(); } | 36 void TearDown() override { model_.reset(); } |
| 37 | 37 |
| 38 void PretendNeedToAskUserToSubmitURL() { |
| 39 model_->set_state( |
| 40 password_manager::ui::ASK_USER_TO_REPORT_URL_AND_BUBBLE_STATE); |
| 41 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
| 42 controller()->SetState( |
| 43 password_manager::ui::ASK_USER_TO_REPORT_URL_AND_BUBBLE_STATE); |
| 44 } |
| 45 |
| 38 void PretendPasswordWaiting() { | 46 void PretendPasswordWaiting() { |
| 39 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 47 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
| 40 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); | 48 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
| 41 controller()->SetState( | 49 controller()->SetState( |
| 42 password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 50 password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
| 43 } | 51 } |
| 44 | 52 |
| 45 void PretendCredentialsWaiting() { | 53 void PretendCredentialsWaiting() { |
| 46 model_->set_state(password_manager::ui::CREDENTIAL_REQUEST_STATE); | 54 model_->set_state(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
| 47 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); | 55 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC); |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 EXPECT_FALSE(controller()->saved_password()); | 261 EXPECT_FALSE(controller()->saved_password()); |
| 254 EXPECT_FALSE(controller()->never_saved_password()); | 262 EXPECT_FALSE(controller()->never_saved_password()); |
| 255 EXPECT_TRUE(controller()->choose_credential()); | 263 EXPECT_TRUE(controller()->choose_credential()); |
| 256 | 264 |
| 257 histogram_tester.ExpectUniqueSample( | 265 histogram_tester.ExpectUniqueSample( |
| 258 kUIDismissalReasonMetric, | 266 kUIDismissalReasonMetric, |
| 259 password_manager::metrics_util::CLICKED_NOPE, | 267 password_manager::metrics_util::CLICKED_NOPE, |
| 260 1); | 268 1); |
| 261 } | 269 } |
| 262 | 270 |
| 271 TEST_F(ManagePasswordsBubbleModelTest, ClickCollectURL) { |
| 272 base::HistogramTester histogram_tester; |
| 273 PretendNeedToAskUserToSubmitURL(); |
| 274 model_->OnCollectURLClicked(); |
| 275 model_->OnBubbleHidden(); |
| 276 EXPECT_EQ(model_->dismissal_reason(), |
| 277 password_manager::metrics_util::CLICKED_COLLECT_URL); |
| 278 EXPECT_EQ(password_manager::ui::ASK_USER_TO_REPORT_URL_AND_BUBBLE_STATE, |
| 279 model_->state()); |
| 280 |
| 281 histogram_tester.ExpectUniqueSample( |
| 282 kUIDismissalReasonMetric, |
| 283 password_manager::metrics_util::CLICKED_COLLECT_URL, 1); |
| 284 } |
| 285 |
| 286 TEST_F(ManagePasswordsBubbleModelTest, ClickDoNotCollectURL) { |
| 287 base::HistogramTester histogram_tester; |
| 288 PretendNeedToAskUserToSubmitURL(); |
| 289 model_->OnDoNotCollectURLClicked(); |
| 290 model_->OnBubbleHidden(); |
| 291 EXPECT_EQ(model_->dismissal_reason(), |
| 292 password_manager::metrics_util::CLICKED_DO_NOT_COLLECT_URL); |
| 293 EXPECT_EQ(password_manager::ui::ASK_USER_TO_REPORT_URL_AND_BUBBLE_STATE, |
| 294 model_->state()); |
| 295 |
| 296 histogram_tester.ExpectUniqueSample( |
| 297 kUIDismissalReasonMetric, |
| 298 password_manager::metrics_util::CLICKED_DO_NOT_COLLECT_URL, 1); |
| 299 } |
| 300 |
| 263 TEST_F(ManagePasswordsBubbleModelTest, DismissCredential) { | 301 TEST_F(ManagePasswordsBubbleModelTest, DismissCredential) { |
| 264 base::HistogramTester histogram_tester; | 302 base::HistogramTester histogram_tester; |
| 265 PretendCredentialsWaiting(); | 303 PretendCredentialsWaiting(); |
| 266 EXPECT_FALSE(controller()->choose_credential()); | 304 EXPECT_FALSE(controller()->choose_credential()); |
| 267 model_->OnBubbleHidden(); | 305 model_->OnBubbleHidden(); |
| 268 EXPECT_EQ(model_->dismissal_reason(), | 306 EXPECT_EQ(model_->dismissal_reason(), |
| 269 password_manager::metrics_util::NO_DIRECT_INTERACTION); | 307 password_manager::metrics_util::NO_DIRECT_INTERACTION); |
| 270 EXPECT_FALSE(controller()->saved_password()); | 308 EXPECT_FALSE(controller()->saved_password()); |
| 271 EXPECT_FALSE(controller()->never_saved_password()); | 309 EXPECT_FALSE(controller()->never_saved_password()); |
| 272 EXPECT_TRUE(controller()->choose_credential()); | 310 EXPECT_TRUE(controller()->choose_credential()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 285 model_->set_state(password_manager::ui::MANAGE_STATE); | 323 model_->set_state(password_manager::ui::MANAGE_STATE); |
| 286 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | 324 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); |
| 287 model_->set_state(password_manager::ui::BLACKLIST_STATE); | 325 model_->set_state(password_manager::ui::BLACKLIST_STATE); |
| 288 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); | 326 EXPECT_FALSE(password_manager::ui::IsPendingState(model_->state())); |
| 289 | 327 |
| 290 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); | 328 model_->set_state(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE); |
| 291 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); | 329 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); |
| 292 model_->set_state(password_manager::ui::PENDING_PASSWORD_STATE); | 330 model_->set_state(password_manager::ui::PENDING_PASSWORD_STATE); |
| 293 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); | 331 EXPECT_TRUE(password_manager::ui::IsPendingState(model_->state())); |
| 294 } | 332 } |
| OLD | NEW |