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