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

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

Issue 399573002: [Password Generation] Trigger confirmation bubble when a password is saved (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
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/statistics_delta_reader.h" 8 #include "base/test/statistics_delta_reader.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h" 10 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 controller()->state()); 110 controller()->state());
111 EXPECT_TRUE(controller()->PasswordPendingUserDecision()); 111 EXPECT_TRUE(controller()->PasswordPendingUserDecision());
112 112
113 // TODO(mkwst): This should be the value of test_form().origin, but 113 // TODO(mkwst): This should be the value of test_form().origin, but
114 // it's being masked by the stub implementation of 114 // it's being masked by the stub implementation of
115 // ManagePasswordsUIControllerMock::PendingCredentials. 115 // ManagePasswordsUIControllerMock::PendingCredentials.
116 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); 116 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin());
117 117
118 ManagePasswordsIconMock mock; 118 ManagePasswordsIconMock mock;
119 controller()->UpdateIconAndBubbleState(&mock); 119 controller()->UpdateIconAndBubbleState(&mock);
120 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); 120 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE,
121 mock.state());
121 } 122 }
122 123
123 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) { 124 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) {
124 password_manager::StubPasswordManagerClient client; 125 password_manager::StubPasswordManagerClient client;
125 password_manager::StubPasswordManagerDriver driver; 126 password_manager::StubPasswordManagerDriver driver;
126 password_manager::PasswordFormManager* test_form_manager = 127 password_manager::PasswordFormManager* test_form_manager =
127 new password_manager::PasswordFormManager( 128 new password_manager::PasswordFormManager(
128 NULL, &client, &driver, test_form(), false); 129 NULL, &client, &driver, test_form(), false);
129 controller()->OnPasswordSubmitted(test_form_manager); 130 controller()->OnPasswordSubmitted(test_form_manager);
130 131
(...skipping 21 matching lines...) Expand all
152 153
153 TEST_F(ManagePasswordsUIControllerTest, QuickNavigations) { 154 TEST_F(ManagePasswordsUIControllerTest, QuickNavigations) {
154 password_manager::StubPasswordManagerClient client; 155 password_manager::StubPasswordManagerClient client;
155 password_manager::StubPasswordManagerDriver driver; 156 password_manager::StubPasswordManagerDriver driver;
156 password_manager::PasswordFormManager* test_form_manager = 157 password_manager::PasswordFormManager* test_form_manager =
157 new password_manager::PasswordFormManager( 158 new password_manager::PasswordFormManager(
158 NULL, &client, &driver, test_form(), false); 159 NULL, &client, &driver, test_form(), false);
159 controller()->OnPasswordSubmitted(test_form_manager); 160 controller()->OnPasswordSubmitted(test_form_manager);
160 ManagePasswordsIconMock mock; 161 ManagePasswordsIconMock mock;
161 controller()->UpdateIconAndBubbleState(&mock); 162 controller()->UpdateIconAndBubbleState(&mock);
162 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); 163 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE,
164 mock.state());
163 165
164 // Fake-navigate within a second. We expect the bubble's state to persist 166 // Fake-navigate within a second. We expect the bubble's state to persist
165 // if a navigation occurs too quickly for a user to reasonably have been 167 // if a navigation occurs too quickly for a user to reasonably have been
166 // able to interact with the bubble. This happens on `accounts.google.com`, 168 // able to interact with the bubble. This happens on `accounts.google.com`,
167 // for instance. 169 // for instance.
168 scoped_ptr<MockElapsedTimer> timer(new MockElapsedTimer()); 170 scoped_ptr<MockElapsedTimer> timer(new MockElapsedTimer());
169 timer->Advance(kQuickNavigationDelayInMS); 171 timer->Advance(kQuickNavigationDelayInMS);
170 controller()->SetTimer(timer.release()); 172 controller()->SetTimer(timer.release());
171 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), 173 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(),
172 content::FrameNavigateParams()); 174 content::FrameNavigateParams());
173 controller()->UpdateIconAndBubbleState(&mock); 175 controller()->UpdateIconAndBubbleState(&mock);
174 176
175 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); 177 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE,
178 mock.state());
176 } 179 }
177 180
178 TEST_F(ManagePasswordsUIControllerTest, SlowNavigations) { 181 TEST_F(ManagePasswordsUIControllerTest, SlowNavigations) {
179 password_manager::StubPasswordManagerClient client; 182 password_manager::StubPasswordManagerClient client;
180 password_manager::StubPasswordManagerDriver driver; 183 password_manager::StubPasswordManagerDriver driver;
181 password_manager::PasswordFormManager* test_form_manager = 184 password_manager::PasswordFormManager* test_form_manager =
182 new password_manager::PasswordFormManager( 185 new password_manager::PasswordFormManager(
183 NULL, &client, &driver, test_form(), false); 186 NULL, &client, &driver, test_form(), false);
184 controller()->OnPasswordSubmitted(test_form_manager); 187 controller()->OnPasswordSubmitted(test_form_manager);
185 ManagePasswordsIconMock mock; 188 ManagePasswordsIconMock mock;
186 controller()->UpdateIconAndBubbleState(&mock); 189 controller()->UpdateIconAndBubbleState(&mock);
187 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, mock.state()); 190 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE,
191 mock.state());
188 192
189 // Fake-navigate after a second. We expect the bubble's state to be reset 193 // Fake-navigate after a second. We expect the bubble's state to be reset
190 // if a navigation occurs after this limit. 194 // if a navigation occurs after this limit.
191 scoped_ptr<MockElapsedTimer> timer(new MockElapsedTimer()); 195 scoped_ptr<MockElapsedTimer> timer(new MockElapsedTimer());
192 timer->Advance(kSlowNavigationDelayInMS); 196 timer->Advance(kSlowNavigationDelayInMS);
193 controller()->SetTimer(timer.release()); 197 controller()->SetTimer(timer.release());
194 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), 198 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(),
195 content::FrameNavigateParams()); 199 content::FrameNavigateParams());
196 controller()->UpdateIconAndBubbleState(&mock); 200 controller()->UpdateIconAndBubbleState(&mock);
197 201
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 controller()->OnLoginsChanged(list); 292 controller()->OnLoginsChanged(list);
289 293
290 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state()); 294 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state());
291 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 295 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
292 EXPECT_EQ(test_form().origin, controller()->origin()); 296 EXPECT_EQ(test_form().origin, controller()->origin());
293 297
294 ManagePasswordsIconMock mock; 298 ManagePasswordsIconMock mock;
295 controller()->UpdateIconAndBubbleState(&mock); 299 controller()->UpdateIconAndBubbleState(&mock);
296 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state()); 300 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state());
297 } 301 }
302
303 TEST_F(ManagePasswordsUIControllerTest, ShowSaveConfirmation) {
304 password_manager::StubPasswordManagerClient client;
305 password_manager::StubPasswordManagerDriver driver;
306 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
307 new password_manager::PasswordFormManager(
308 NULL, &client, &driver, test_form(), false));
309
310 controller()->ShowSaveConfirmation(test_form_manager.Pass());
311 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state());
312 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698