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 |