Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(811)

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_bubble_model_unittest.cc

Issue 232753002: Password bubble: Deplatformify ManagePasswordsBubbleView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Feedback. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/metrics/histogram_samples.h"
6 #include "base/prefs/pref_service.h"
7 #include "base/test/statistics_delta_reader.h"
8 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h"
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller_mock .h"
11 #include "chrome/test/base/testing_profile.h"
12 #include "components/password_manager/core/browser/password_manager_metrics_util .h"
13 #include "content/public/test/test_browser_thread_bundle.h"
14 #include "content/public/test/web_contents_tester.h"
15 #include "testing/gtest/include/gtest/gtest.h"
16
17 const char kUIDismissalReasonMetric[] = "PasswordManager.UIDismissalReason";
18
19 class ManagePasswordsBubbleModelTest : public testing::Test {
20 public:
21 ManagePasswordsBubbleModelTest()
22 : test_web_contents_(
23 content::WebContentsTester::CreateTestWebContents(&profile_,
24 NULL)) {}
25
26 virtual void SetUp() OVERRIDE {
27 // Create the test UIController here so that it's bound to
28 // |test_web_contents_| and therefore accessible to the model.
29 new ManagePasswordsBubbleUIControllerMock(test_web_contents_.get());
30
31 model_.reset(new ManagePasswordsBubbleModel(test_web_contents_.get()));
32 }
33
34 virtual void TearDown() OVERRIDE { model_.reset(); }
35
36 void PretendPasswordWaiting() {
37 model_->set_manage_passwords_bubble_state(
38 ManagePasswordsBubbleModel::PASSWORD_TO_BE_SAVED);
39 model_->OnBubbleShown(ManagePasswordsBubble::AUTOMATIC);
40 }
41
42 void PretendManagingPasswords() {
43 model_->set_manage_passwords_bubble_state(
44 ManagePasswordsBubbleModel::MANAGE_PASSWORDS);
45 model_->OnBubbleShown(ManagePasswordsBubble::USER_ACTION);
46 }
47
48 ManagePasswordsBubbleUIControllerMock* controller() {
49 return reinterpret_cast<ManagePasswordsBubbleUIControllerMock*>(
50 ManagePasswordsBubbleUIController::FromWebContents(
51 test_web_contents_.get()));
52 }
53
54 protected:
55 scoped_ptr<ManagePasswordsBubbleModel> model_;
56
57 private:
58 content::TestBrowserThreadBundle thread_bundle_;
59 TestingProfile profile_;
60 scoped_ptr<content::WebContents> test_web_contents_;
61 };
62
63 TEST_F(ManagePasswordsBubbleModelTest, DefaultValues) {
64 EXPECT_EQ(model_->display_disposition(),
65 password_manager::metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING);
66 EXPECT_EQ(model_->dismissal_reason(),
67 password_manager::metrics_util::NOT_DISPLAYED);
68 EXPECT_FALSE(controller()->saved_password());
69 EXPECT_FALSE(controller()->never_saved_password());
70 }
71
72 TEST_F(ManagePasswordsBubbleModelTest, CloseWithoutLogging) {
73 base::StatisticsDeltaReader statistics_delta_reader;
74 model_->OnCloseWithoutLogging();
75 model_->OnBubbleHidden();
76 EXPECT_EQ(model_->dismissal_reason(),
77 password_manager::metrics_util::NOT_DISPLAYED);
78 EXPECT_FALSE(controller()->saved_password());
79 EXPECT_FALSE(controller()->never_saved_password());
80
81 scoped_ptr<base::HistogramSamples> samples(
82 statistics_delta_reader.GetHistogramSamplesSinceCreation(
83 kUIDismissalReasonMetric));
84 EXPECT_EQ(NULL, samples.get());
85 }
86
87 TEST_F(ManagePasswordsBubbleModelTest, CloseWithoutInteraction) {
88 base::StatisticsDeltaReader statistics_delta_reader;
89 PretendPasswordWaiting();
90 model_->OnBubbleHidden();
91 EXPECT_EQ(model_->dismissal_reason(),
92 password_manager::metrics_util::NO_DIRECT_INTERACTION);
93 EXPECT_FALSE(controller()->saved_password());
94 EXPECT_FALSE(controller()->never_saved_password());
95
96 scoped_ptr<base::HistogramSamples> samples(
97 statistics_delta_reader.GetHistogramSamplesSinceCreation(
98 kUIDismissalReasonMetric));
99 EXPECT_EQ(
100 1,
101 samples->GetCount(password_manager::metrics_util::NO_DIRECT_INTERACTION));
102 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_SAVE));
103 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_NOPE));
104 EXPECT_EQ(0,
105 samples->GetCount(password_manager::metrics_util::CLICKED_NEVER));
106 EXPECT_EQ(0,
107 samples->GetCount(password_manager::metrics_util::CLICKED_MANAGE));
108 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_DONE));
109 }
110
111 TEST_F(ManagePasswordsBubbleModelTest, ClickSave) {
112 base::StatisticsDeltaReader statistics_delta_reader;
113 PretendPasswordWaiting();
114 model_->OnSaveClicked();
115 model_->OnBubbleHidden();
116 EXPECT_EQ(model_->dismissal_reason(),
117 password_manager::metrics_util::CLICKED_SAVE);
118 EXPECT_TRUE(controller()->saved_password());
119 EXPECT_FALSE(controller()->never_saved_password());
120
121 scoped_ptr<base::HistogramSamples> samples(
122 statistics_delta_reader.GetHistogramSamplesSinceCreation(
123 kUIDismissalReasonMetric));
124 EXPECT_EQ(
125 0,
126 samples->GetCount(password_manager::metrics_util::NO_DIRECT_INTERACTION));
127 EXPECT_EQ(1, samples->GetCount(password_manager::metrics_util::CLICKED_SAVE));
128 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_NOPE));
129 EXPECT_EQ(0,
130 samples->GetCount(password_manager::metrics_util::CLICKED_NEVER));
131 EXPECT_EQ(0,
132 samples->GetCount(password_manager::metrics_util::CLICKED_MANAGE));
133 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_DONE));
134 }
135
136 TEST_F(ManagePasswordsBubbleModelTest, ClickNope) {
137 base::StatisticsDeltaReader statistics_delta_reader;
138 PretendPasswordWaiting();
139 model_->OnNopeClicked();
140 model_->OnBubbleHidden();
141 EXPECT_EQ(model_->dismissal_reason(),
142 password_manager::metrics_util::CLICKED_NOPE);
143 EXPECT_FALSE(controller()->saved_password());
144 EXPECT_FALSE(controller()->never_saved_password());
145
146 scoped_ptr<base::HistogramSamples> samples(
147 statistics_delta_reader.GetHistogramSamplesSinceCreation(
148 kUIDismissalReasonMetric));
149 EXPECT_EQ(
150 0,
151 samples->GetCount(password_manager::metrics_util::NO_DIRECT_INTERACTION));
152 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_SAVE));
153 EXPECT_EQ(1, samples->GetCount(password_manager::metrics_util::CLICKED_NOPE));
154 EXPECT_EQ(0,
155 samples->GetCount(password_manager::metrics_util::CLICKED_NEVER));
156 EXPECT_EQ(0,
157 samples->GetCount(password_manager::metrics_util::CLICKED_MANAGE));
158 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_DONE));
159 }
160
161 TEST_F(ManagePasswordsBubbleModelTest, ClickNever) {
162 base::StatisticsDeltaReader statistics_delta_reader;
163 PretendPasswordWaiting();
164 model_->OnNeverForThisSiteClicked();
165 model_->OnBubbleHidden();
166 EXPECT_EQ(model_->dismissal_reason(),
167 password_manager::metrics_util::CLICKED_NEVER);
168 EXPECT_FALSE(controller()->saved_password());
169 EXPECT_TRUE(controller()->never_saved_password());
170
171 scoped_ptr<base::HistogramSamples> samples(
172 statistics_delta_reader.GetHistogramSamplesSinceCreation(
173 kUIDismissalReasonMetric));
174 EXPECT_EQ(
175 0,
176 samples->GetCount(password_manager::metrics_util::NO_DIRECT_INTERACTION));
177 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_SAVE));
178 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_NOPE));
179 EXPECT_EQ(1,
180 samples->GetCount(password_manager::metrics_util::CLICKED_NEVER));
181 EXPECT_EQ(0,
182 samples->GetCount(password_manager::metrics_util::CLICKED_MANAGE));
183 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_DONE));
184 }
185
186 TEST_F(ManagePasswordsBubbleModelTest, ClickManage) {
187 base::StatisticsDeltaReader statistics_delta_reader;
188 PretendManagingPasswords();
189 model_->OnManageLinkClicked();
190 model_->OnBubbleHidden();
191 EXPECT_EQ(model_->dismissal_reason(),
192 password_manager::metrics_util::CLICKED_MANAGE);
193 EXPECT_FALSE(controller()->saved_password());
194 EXPECT_FALSE(controller()->never_saved_password());
195
196 scoped_ptr<base::HistogramSamples> samples(
197 statistics_delta_reader.GetHistogramSamplesSinceCreation(
198 kUIDismissalReasonMetric));
199 EXPECT_EQ(
200 0,
201 samples->GetCount(password_manager::metrics_util::NO_DIRECT_INTERACTION));
202 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_SAVE));
203 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_NOPE));
204 EXPECT_EQ(0,
205 samples->GetCount(password_manager::metrics_util::CLICKED_NEVER));
206 EXPECT_EQ(1,
207 samples->GetCount(password_manager::metrics_util::CLICKED_MANAGE));
208 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_DONE));
209 }
210
211 TEST_F(ManagePasswordsBubbleModelTest, ClickDone) {
212 base::StatisticsDeltaReader statistics_delta_reader;
213 PretendManagingPasswords();
214 model_->OnDoneClicked();
215 model_->OnBubbleHidden();
216 EXPECT_EQ(model_->dismissal_reason(),
217 password_manager::metrics_util::CLICKED_DONE);
218 EXPECT_FALSE(controller()->saved_password());
219 EXPECT_FALSE(controller()->never_saved_password());
220
221 scoped_ptr<base::HistogramSamples> samples(
222 statistics_delta_reader.GetHistogramSamplesSinceCreation(
223 kUIDismissalReasonMetric));
224 EXPECT_EQ(
225 0,
226 samples->GetCount(password_manager::metrics_util::NO_DIRECT_INTERACTION));
227 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_SAVE));
228 EXPECT_EQ(0, samples->GetCount(password_manager::metrics_util::CLICKED_NOPE));
229 EXPECT_EQ(0,
230 samples->GetCount(password_manager::metrics_util::CLICKED_NEVER));
231 EXPECT_EQ(0,
232 samples->GetCount(password_manager::metrics_util::CLICKED_MANAGE));
233 EXPECT_EQ(1, samples->GetCount(password_manager::metrics_util::CLICKED_DONE));
234 }
235
236 TEST_F(ManagePasswordsBubbleModelTest, WaitingToSavePassword) {
237 EXPECT_FALSE(model_->WaitingToSavePassword());
238
239 model_->set_manage_passwords_bubble_state(
240 ManagePasswordsBubbleModel::PASSWORD_TO_BE_SAVED);
241 EXPECT_TRUE(model_->WaitingToSavePassword());
242 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698