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

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

Issue 1445383003: Introduce PasswordsModelDelegate as an abstraction between ManagePasswordsBubbleModel and ManagePas… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 1 month 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
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/bind.h" 5 #include "base/bind.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/time/time.h" 8 #include "base/time/time.h"
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h" 10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 OnBubbleShown(); 107 OnBubbleShown();
108 } 108 }
109 109
110 void TestManagePasswordsUIController:: 110 void TestManagePasswordsUIController::
111 UpdateAndroidAccountChooserInfoBarVisibility() { 111 UpdateAndroidAccountChooserInfoBarVisibility() {
112 OnBubbleShown(); 112 OnBubbleShown();
113 } 113 }
114 114
115 void TestManagePasswordsUIController::NeverSavePasswordInternal() { 115 void TestManagePasswordsUIController::NeverSavePasswordInternal() {
116 autofill::PasswordForm blacklisted; 116 autofill::PasswordForm blacklisted;
117 blacklisted.origin = this->origin(); 117 blacklisted.origin = this->GetOrigin();
118 blacklisted.signon_realm = blacklisted.origin.spec(); 118 blacklisted.signon_realm = blacklisted.origin.spec();
119 blacklisted.blacklisted_by_user = true; 119 blacklisted.blacklisted_by_user = true;
120 password_manager::PasswordStoreChange change( 120 password_manager::PasswordStoreChange change(
121 password_manager::PasswordStoreChange::ADD, blacklisted); 121 password_manager::PasswordStoreChange::ADD, blacklisted);
122 password_manager::PasswordStoreChangeList list(1, change); 122 password_manager::PasswordStoreChangeList list(1, change);
123 OnLoginsChanged(list); 123 OnLoginsChanged(list);
124 } 124 }
125 125
126 } // namespace 126 } // namespace
127 127
(...skipping 26 matching lines...) Expand all
154 // No op on Android, where there is no icon. 154 // No op on Android, where there is no icon.
155 #if !defined(OS_ANDROID) 155 #if !defined(OS_ANDROID)
156 TestManagePasswordsIconView view; 156 TestManagePasswordsIconView view;
157 controller()->UpdateIconAndBubbleState(&view); 157 controller()->UpdateIconAndBubbleState(&view);
158 EXPECT_EQ(state, view.state()); 158 EXPECT_EQ(state, view.state());
159 #endif 159 #endif
160 } 160 }
161 161
162 void ExpectIconAndControllerStateIs(password_manager::ui::State state) { 162 void ExpectIconAndControllerStateIs(password_manager::ui::State state) {
163 ExpectIconStateIs(state); 163 ExpectIconStateIs(state);
164 EXPECT_EQ(state, controller()->state()); 164 EXPECT_EQ(state, controller()->GetState());
165 } 165 }
166 166
167 autofill::PasswordForm& test_local_form() { return test_local_form_; } 167 autofill::PasswordForm& test_local_form() { return test_local_form_; }
168 autofill::PasswordForm& test_federated_form() { return test_federated_form_; } 168 autofill::PasswordForm& test_federated_form() { return test_federated_form_; }
169 password_manager::CredentialInfo* credential_info() const { 169 password_manager::CredentialInfo* credential_info() const {
170 return credential_info_.get(); 170 return credential_info_.get();
171 } 171 }
172 172
173 TestManagePasswordsUIController* controller() { 173 TestManagePasswordsUIController* controller() {
174 return static_cast<TestManagePasswordsUIController*>( 174 return static_cast<TestManagePasswordsUIController*>(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 211
212 scoped_ptr<password_manager::PasswordFormManager> 212 scoped_ptr<password_manager::PasswordFormManager>
213 ManagePasswordsUIControllerTest::CreateFormManager() { 213 ManagePasswordsUIControllerTest::CreateFormManager() {
214 ScopedVector<autofill::PasswordForm> stored_forms; 214 ScopedVector<autofill::PasswordForm> stored_forms;
215 stored_forms.push_back(new autofill::PasswordForm(test_local_form())); 215 stored_forms.push_back(new autofill::PasswordForm(test_local_form()));
216 return CreateFormManagerWithBestMatches(test_local_form(), 216 return CreateFormManagerWithBestMatches(test_local_form(),
217 stored_forms.Pass()); 217 stored_forms.Pass());
218 } 218 }
219 219
220 TEST_F(ManagePasswordsUIControllerTest, DefaultState) { 220 TEST_F(ManagePasswordsUIControllerTest, DefaultState) {
221 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 221 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
222 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 222 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin());
223 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin());
224 223
225 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 224 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
226 } 225 }
227 226
228 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { 227 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) {
229 scoped_ptr<autofill::PasswordForm> test_form( 228 scoped_ptr<autofill::PasswordForm> test_form(
230 new autofill::PasswordForm(test_local_form())); 229 new autofill::PasswordForm(test_local_form()));
231 autofill::PasswordForm* test_form_ptr = test_form.get(); 230 autofill::PasswordForm* test_form_ptr = test_form.get();
232 base::string16 kTestUsername = test_form->username_value; 231 base::string16 kTestUsername = test_form->username_value;
233 autofill::PasswordFormMap map; 232 autofill::PasswordFormMap map;
234 map.insert(kTestUsername, test_form.Pass()); 233 map.insert(kTestUsername, test_form.Pass());
235 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); 234 controller()->OnPasswordAutofilled(map, map.begin()->second->origin);
236 235
237 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); 236 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
238 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 237 EXPECT_EQ(test_form_ptr->origin, controller()->GetOrigin());
239 EXPECT_EQ(test_form_ptr->origin, controller()->origin());
240 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); 238 ASSERT_EQ(1u, controller()->GetCurrentForms().size());
241 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); 239 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value);
242 240
243 // Controller should store a separate copy of the form as it doesn't own it. 241 // Controller should store a separate copy of the form as it doesn't own it.
244 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); 242 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]);
245 243
246 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 244 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
247 } 245 }
248 246
249 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { 247 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) {
250 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 248 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
251 CreateFormManager()); 249 CreateFormManager());
252 controller()->OnPasswordSubmitted(test_form_manager.Pass()); 250 controller()->OnPasswordSubmitted(test_form_manager.Pass());
253 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 251 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
254 controller()->state()); 252 controller()->GetState());
255 EXPECT_TRUE(controller()->PasswordPendingUserDecision());
256 EXPECT_TRUE(controller()->opened_bubble()); 253 EXPECT_TRUE(controller()->opened_bubble());
257 254
258 // TODO(mkwst): This should be the value of test_local_form().origin, but 255 // TODO(mkwst): This should be the value of test_local_form().origin, but
259 // it's being masked by the stub implementation of 256 // it's being masked by the stub implementation of
260 // ManagePasswordsUIControllerMock::PendingCredentials. 257 // ManagePasswordsUIControllerMock::PendingCredentials.
261 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); 258 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin());
262 259
263 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 260 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
264 } 261 }
265 262
266 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) { 263 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) {
267 autofill::PasswordForm blacklisted; 264 autofill::PasswordForm blacklisted;
268 blacklisted.origin = test_local_form().origin; 265 blacklisted.origin = test_local_form().origin;
269 blacklisted.signon_realm = blacklisted.origin.spec(); 266 blacklisted.signon_realm = blacklisted.origin.spec();
270 blacklisted.blacklisted_by_user = true; 267 blacklisted.blacklisted_by_user = true;
271 ScopedVector<autofill::PasswordForm> stored_forms; 268 ScopedVector<autofill::PasswordForm> stored_forms;
272 stored_forms.push_back(new autofill::PasswordForm(blacklisted)); 269 stored_forms.push_back(new autofill::PasswordForm(blacklisted));
273 scoped_ptr<password_manager::PasswordFormManager> test_form_manager = 270 scoped_ptr<password_manager::PasswordFormManager> test_form_manager =
274 CreateFormManagerWithBestMatches(test_local_form(), stored_forms.Pass()); 271 CreateFormManagerWithBestMatches(test_local_form(), stored_forms.Pass());
275 272
276 controller()->OnPasswordSubmitted(test_form_manager.Pass()); 273 controller()->OnPasswordSubmitted(test_form_manager.Pass());
277 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 274 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
278 controller()->state()); 275 controller()->GetState());
279 EXPECT_TRUE(controller()->PasswordPendingUserDecision());
280 EXPECT_FALSE(controller()->opened_bubble()); 276 EXPECT_FALSE(controller()->opened_bubble());
281 277
282 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 278 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
283 } 279 }
284 280
285 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) { 281 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) {
286 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 282 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
287 CreateFormManager()); 283 CreateFormManager());
288 password_manager::InteractionsStats stats; 284 password_manager::InteractionsStats stats;
289 stats.origin_domain = test_local_form().origin.GetOrigin(); 285 stats.origin_domain = test_local_form().origin.GetOrigin();
290 stats.username_value = test_local_form().username_value; 286 stats.username_value = test_local_form().username_value;
291 stats.dismissal_count = kGreatDissmisalCount; 287 stats.dismissal_count = kGreatDissmisalCount;
292 ScopedVector<password_manager::InteractionsStats> interactions; 288 ScopedVector<password_manager::InteractionsStats> interactions;
293 interactions.push_back(new password_manager::InteractionsStats(stats)); 289 interactions.push_back(new password_manager::InteractionsStats(stats));
294 test_form_manager->OnGetSiteStatistics(interactions.Pass()); 290 test_form_manager->OnGetSiteStatistics(interactions.Pass());
295 test_form_manager->ProvisionallySave( 291 test_form_manager->ProvisionallySave(
296 test_local_form(), 292 test_local_form(),
297 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 293 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
298 controller()->OnPasswordSubmitted(test_form_manager.Pass()); 294 controller()->OnPasswordSubmitted(test_form_manager.Pass());
299 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 295 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
300 controller()->state()); 296 controller()->GetState());
301 EXPECT_FALSE(controller()->opened_bubble()); 297 EXPECT_FALSE(controller()->opened_bubble());
302 ASSERT_TRUE(controller()->GetCurrentInteractionStats()); 298 ASSERT_TRUE(controller()->GetCurrentInteractionStats());
303 EXPECT_EQ(stats, *controller()->GetCurrentInteractionStats()); 299 EXPECT_EQ(stats, *controller()->GetCurrentInteractionStats());
304 300
305 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 301 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
306 } 302 }
307 303
308 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) { 304 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) {
309 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 305 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
310 CreateFormManager()); 306 CreateFormManager());
311 password_manager::InteractionsStats stats; 307 password_manager::InteractionsStats stats;
312 stats.origin_domain = test_local_form().origin.GetOrigin(); 308 stats.origin_domain = test_local_form().origin.GetOrigin();
313 stats.username_value = base::ASCIIToUTF16("not my username"); 309 stats.username_value = base::ASCIIToUTF16("not my username");
314 stats.dismissal_count = kGreatDissmisalCount; 310 stats.dismissal_count = kGreatDissmisalCount;
315 ScopedVector<password_manager::InteractionsStats> interactions; 311 ScopedVector<password_manager::InteractionsStats> interactions;
316 interactions.push_back(new password_manager::InteractionsStats(stats)); 312 interactions.push_back(new password_manager::InteractionsStats(stats));
317 test_form_manager->OnGetSiteStatistics(interactions.Pass()); 313 test_form_manager->OnGetSiteStatistics(interactions.Pass());
318 test_form_manager->ProvisionallySave( 314 test_form_manager->ProvisionallySave(
319 test_local_form(), 315 test_local_form(),
320 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 316 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
321 controller()->OnPasswordSubmitted(test_form_manager.Pass()); 317 controller()->OnPasswordSubmitted(test_form_manager.Pass());
322 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, 318 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
323 controller()->state()); 319 controller()->GetState());
324 EXPECT_TRUE(controller()->opened_bubble()); 320 EXPECT_TRUE(controller()->opened_bubble());
325 EXPECT_FALSE(controller()->GetCurrentInteractionStats()); 321 EXPECT_FALSE(controller()->GetCurrentInteractionStats());
326 322
327 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); 323 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE);
328 } 324 }
329 325
330 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) { 326 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) {
331 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 327 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
332 CreateFormManager()); 328 CreateFormManager());
333 test_form_manager->ProvisionallySave( 329 test_form_manager->ProvisionallySave(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 } 382 }
387 383
388 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { 384 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) {
389 // Navigate to a non-webby URL, then see what happens! 385 // Navigate to a non-webby URL, then see what happens!
390 content::WebContentsTester::For(web_contents()) 386 content::WebContentsTester::For(web_contents())
391 ->NavigateAndCommit(GURL("chrome://sign-in")); 387 ->NavigateAndCommit(GURL("chrome://sign-in"));
392 388
393 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 389 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
394 CreateFormManager()); 390 CreateFormManager());
395 controller()->OnPasswordSubmitted(test_form_manager.Pass()); 391 controller()->OnPasswordSubmitted(test_form_manager.Pass());
396 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 392 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
397 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
398 393
399 // TODO(mkwst): This should be the value of test_local_form().origin, but 394 // TODO(mkwst): This should be the value of test_local_form().origin, but
400 // it's being masked by the stub implementation of 395 // it's being masked by the stub implementation of
401 // ManagePasswordsUIControllerMock::PendingCredentials. 396 // ManagePasswordsUIControllerMock::PendingCredentials.
402 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); 397 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin());
403 398
404 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); 399 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE);
405 } 400 }
406 401
407 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { 402 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) {
408 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 403 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
409 autofill::PasswordFormMap map; 404 autofill::PasswordFormMap map;
410 map.insert(kTestUsername, 405 map.insert(kTestUsername,
411 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); 406 make_scoped_ptr(new autofill::PasswordForm(test_local_form())));
412 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); 407 controller()->OnPasswordAutofilled(map, map.begin()->second->origin);
413 408
414 test_local_form().blacklisted_by_user = true; 409 test_local_form().blacklisted_by_user = true;
415 password_manager::PasswordStoreChange change( 410 password_manager::PasswordStoreChange change(
416 password_manager::PasswordStoreChange::ADD, test_local_form()); 411 password_manager::PasswordStoreChange::ADD, test_local_form());
417 password_manager::PasswordStoreChangeList list(1, change); 412 password_manager::PasswordStoreChangeList list(1, change);
418 controller()->OnLoginsChanged(list); 413 controller()->OnLoginsChanged(list);
419 414
420 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); 415 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
421 EXPECT_EQ(test_local_form().origin, controller()->origin()); 416 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin());
422 417
423 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 418 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
424 } 419 }
425 420
426 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) { 421 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) {
427 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 422 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
428 CreateFormManager()); 423 CreateFormManager());
429 424
430 controller()->OnAutomaticPasswordSave(test_form_manager.Pass()); 425 controller()->OnAutomaticPasswordSave(test_form_manager.Pass());
431 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state()); 426 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState());
432 427
433 controller()->OnBubbleHidden(); 428 controller()->OnBubbleHidden();
434 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 429 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
435 } 430 }
436 431
437 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { 432 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) {
438 ScopedVector<autofill::PasswordForm> local_credentials; 433 ScopedVector<autofill::PasswordForm> local_credentials;
439 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 434 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
440 ScopedVector<autofill::PasswordForm> federated_credentials; 435 ScopedVector<autofill::PasswordForm> federated_credentials;
441 GURL origin("http://example.com"); 436 GURL origin("http://example.com");
442 EXPECT_TRUE(controller()->OnChooseCredentials( 437 EXPECT_TRUE(controller()->OnChooseCredentials(
443 local_credentials.Pass(), federated_credentials.Pass(), origin, 438 local_credentials.Pass(), federated_credentials.Pass(), origin,
444 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 439 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
445 base::Unretained(this)))); 440 base::Unretained(this))));
446 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 441 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
447 controller()->state()); 442 controller()->GetState());
448 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 443 EXPECT_EQ(origin, controller()->GetOrigin());
449 EXPECT_EQ(origin, controller()->origin());
450 EXPECT_THAT(controller()->GetCurrentForms(), 444 EXPECT_THAT(controller()->GetCurrentForms(),
451 ElementsAre(Pointee(test_local_form()))); 445 ElementsAre(Pointee(test_local_form())));
452 446
453 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); 447 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE);
454 448
455 controller()->ManagePasswordsUIController::ChooseCredential( 449 controller()->ManagePasswordsUIController::ChooseCredential(
456 test_local_form(), 450 test_local_form(),
457 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); 451 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD);
458 controller()->OnBubbleHidden(); 452 controller()->OnBubbleHidden();
459 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); 453 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
460 ASSERT_TRUE(credential_info()); 454 ASSERT_TRUE(credential_info());
461 EXPECT_EQ(test_local_form().username_value, credential_info()->id); 455 EXPECT_EQ(test_local_form().username_value, credential_info()->id);
462 EXPECT_EQ(test_local_form().password_value, credential_info()->password); 456 EXPECT_EQ(test_local_form().password_value, credential_info()->password);
463 EXPECT_TRUE(credential_info()->federation.is_empty()); 457 EXPECT_TRUE(credential_info()->federation.is_empty());
464 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD, 458 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD,
465 credential_info()->type); 459 credential_info()->type);
466 } 460 }
467 461
468 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) { 462 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) {
469 ScopedVector<autofill::PasswordForm> local_credentials; 463 ScopedVector<autofill::PasswordForm> local_credentials;
470 local_credentials.push_back( 464 local_credentials.push_back(
471 new autofill::PasswordForm(test_federated_form())); 465 new autofill::PasswordForm(test_federated_form()));
472 ScopedVector<autofill::PasswordForm> federated_credentials; 466 ScopedVector<autofill::PasswordForm> federated_credentials;
473 GURL origin("http://example.com"); 467 GURL origin("http://example.com");
474 EXPECT_TRUE(controller()->OnChooseCredentials( 468 EXPECT_TRUE(controller()->OnChooseCredentials(
475 local_credentials.Pass(), federated_credentials.Pass(), origin, 469 local_credentials.Pass(), federated_credentials.Pass(), origin,
476 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 470 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
477 base::Unretained(this)))); 471 base::Unretained(this))));
478 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 472 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
479 controller()->state()); 473 controller()->GetState());
480 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); 474 EXPECT_EQ(origin, controller()->GetOrigin());
481 EXPECT_EQ(origin, controller()->origin());
482 EXPECT_THAT(controller()->GetCurrentForms(), 475 EXPECT_THAT(controller()->GetCurrentForms(),
483 ElementsAre(Pointee(test_federated_form()))); 476 ElementsAre(Pointee(test_federated_form())));
484 477
485 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); 478 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE);
486 479
487 controller()->ManagePasswordsUIController::ChooseCredential( 480 controller()->ManagePasswordsUIController::ChooseCredential(
488 test_federated_form(), 481 test_federated_form(),
489 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); 482 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD);
490 controller()->OnBubbleHidden(); 483 controller()->OnBubbleHidden();
491 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); 484 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
492 ASSERT_TRUE(credential_info()); 485 ASSERT_TRUE(credential_info());
493 EXPECT_EQ(test_federated_form().username_value, credential_info()->id); 486 EXPECT_EQ(test_federated_form().username_value, credential_info()->id);
494 EXPECT_EQ(test_federated_form().federation_url, 487 EXPECT_EQ(test_federated_form().federation_url,
495 credential_info()->federation); 488 credential_info()->federation);
496 EXPECT_TRUE(credential_info()->password.empty()); 489 EXPECT_TRUE(credential_info()->password.empty());
497 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, 490 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED,
498 credential_info()->type); 491 credential_info()->type);
499 } 492 }
500 493
501 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) { 494 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) {
502 ScopedVector<autofill::PasswordForm> local_credentials; 495 ScopedVector<autofill::PasswordForm> local_credentials;
503 ScopedVector<autofill::PasswordForm> federated_credentials; 496 ScopedVector<autofill::PasswordForm> federated_credentials;
504 federated_credentials.push_back( 497 federated_credentials.push_back(
505 new autofill::PasswordForm(test_local_form())); 498 new autofill::PasswordForm(test_local_form()));
506 GURL origin("http://example.com"); 499 GURL origin("http://example.com");
507 EXPECT_TRUE(controller()->OnChooseCredentials( 500 EXPECT_TRUE(controller()->OnChooseCredentials(
508 local_credentials.Pass(), federated_credentials.Pass(), origin, 501 local_credentials.Pass(), federated_credentials.Pass(), origin,
509 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 502 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
510 base::Unretained(this)))); 503 base::Unretained(this))));
511 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 504 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
512 controller()->state()); 505 controller()->GetState());
513 EXPECT_FALSE(controller()->PasswordPendingUserDecision());
514 EXPECT_EQ(0u, controller()->GetCurrentForms().size()); 506 EXPECT_EQ(0u, controller()->GetCurrentForms().size());
515 EXPECT_EQ(origin, controller()->origin()); 507 EXPECT_EQ(origin, controller()->GetOrigin());
516 508
517 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); 509 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE);
518 510
519 controller()->ManagePasswordsUIController::ChooseCredential( 511 controller()->ManagePasswordsUIController::ChooseCredential(
520 test_local_form(), 512 test_local_form(),
521 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); 513 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED);
522 controller()->OnBubbleHidden(); 514 controller()->OnBubbleHidden();
523 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); 515 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
524 ASSERT_TRUE(credential_info()); 516 ASSERT_TRUE(credential_info());
525 EXPECT_EQ(test_local_form().username_value, credential_info()->id); 517 EXPECT_EQ(test_local_form().username_value, credential_info()->id);
526 EXPECT_TRUE(credential_info()->password.empty()); 518 EXPECT_TRUE(credential_info()->password.empty());
527 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, 519 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED,
528 credential_info()->type); 520 credential_info()->type);
529 } 521 }
530 522
531 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { 523 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) {
532 ScopedVector<autofill::PasswordForm> local_credentials; 524 ScopedVector<autofill::PasswordForm> local_credentials;
533 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 525 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
534 ScopedVector<autofill::PasswordForm> federated_credentials; 526 ScopedVector<autofill::PasswordForm> federated_credentials;
535 GURL origin("http://example.com"); 527 GURL origin("http://example.com");
536 EXPECT_TRUE(controller()->OnChooseCredentials( 528 EXPECT_TRUE(controller()->OnChooseCredentials(
537 local_credentials.Pass(), federated_credentials.Pass(), origin, 529 local_credentials.Pass(), federated_credentials.Pass(), origin,
538 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 530 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
539 base::Unretained(this)))); 531 base::Unretained(this))));
540 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, 532 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
541 controller()->state()); 533 controller()->GetState());
542 EXPECT_EQ(origin, controller()->origin()); 534 EXPECT_EQ(origin, controller()->GetOrigin());
543 controller()->ManagePasswordsUIController::ChooseCredential( 535 controller()->ManagePasswordsUIController::ChooseCredential(
544 test_local_form(), 536 test_local_form(),
545 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY); 537 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY);
546 controller()->OnBubbleHidden(); 538 controller()->OnBubbleHidden();
547 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); 539 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
548 ASSERT_TRUE(credential_info()); 540 ASSERT_TRUE(credential_info());
549 EXPECT_TRUE(credential_info()->federation.is_empty()); 541 EXPECT_TRUE(credential_info()->federation.is_empty());
550 EXPECT_TRUE(credential_info()->password.empty()); 542 EXPECT_TRUE(credential_info()->password.empty());
551 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, 543 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY,
552 credential_info()->type); 544 credential_info()->type);
553 } 545 }
554 546
555 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) { 547 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) {
556 ScopedVector<autofill::PasswordForm> local_credentials; 548 ScopedVector<autofill::PasswordForm> local_credentials;
557 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 549 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
558 controller()->OnAutoSignin(local_credentials.Pass()); 550 controller()->OnAutoSignin(local_credentials.Pass());
559 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->state()); 551 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState());
560 EXPECT_EQ(test_local_form().origin, controller()->origin()); 552 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin());
561 ASSERT_FALSE(controller()->GetCurrentForms().empty()); 553 ASSERT_FALSE(controller()->GetCurrentForms().empty());
562 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]); 554 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]);
563 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE); 555 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE);
564 controller()->OnBubbleHidden(); 556 controller()->OnBubbleHidden();
565 ExpectIconAndControllerStateIs(password_manager::ui::MANAGE_STATE); 557 ExpectIconAndControllerStateIs(password_manager::ui::MANAGE_STATE);
566 } 558 }
567 559
568 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { 560 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) {
569 ScopedVector<autofill::PasswordForm> local_credentials; 561 ScopedVector<autofill::PasswordForm> local_credentials;
570 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 562 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
(...skipping 11 matching lines...) Expand all
582 574
583 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { 575 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) {
584 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); 576 base::string16 kTestUsername = base::ASCIIToUTF16("test_username");
585 autofill::PasswordFormMap map; 577 autofill::PasswordFormMap map;
586 scoped_ptr<autofill::PasswordForm> psl_matched_test_form( 578 scoped_ptr<autofill::PasswordForm> psl_matched_test_form(
587 new autofill::PasswordForm(test_local_form())); 579 new autofill::PasswordForm(test_local_form()));
588 psl_matched_test_form->is_public_suffix_match = true; 580 psl_matched_test_form->is_public_suffix_match = true;
589 map.insert(kTestUsername, psl_matched_test_form.Pass()); 581 map.insert(kTestUsername, psl_matched_test_form.Pass());
590 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); 582 controller()->OnPasswordAutofilled(map, map.begin()->second->origin);
591 583
592 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 584 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
593 } 585 }
594 586
595 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { 587 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) {
596 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 588 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
597 CreateFormManager()); 589 CreateFormManager());
598 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); 590 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass());
599 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, 591 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE,
600 controller()->state()); 592 controller()->GetState());
601 593
602 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); 594 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE);
603 } 595 }
604 596
605 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { 597 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) {
606 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 598 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
607 CreateFormManager()); 599 CreateFormManager());
608 test_form_manager->ProvisionallySave( 600 test_form_manager->ProvisionallySave(
609 test_local_form(), 601 test_local_form(),
610 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); 602 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
611 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); 603 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass());
612 604
613 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); 605 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE);
614 controller()->UpdatePassword(autofill::PasswordForm()); 606 controller()->UpdatePassword(autofill::PasswordForm());
615 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 607 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
616 } 608 }
617 609
618 TEST_F(ManagePasswordsUIControllerTest, NavigationWhenUpdateBubbleActive) { 610 TEST_F(ManagePasswordsUIControllerTest, NavigationWhenUpdateBubbleActive) {
619 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 611 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
620 CreateFormManager()); 612 CreateFormManager());
621 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); 613 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass());
622 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, 614 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE,
623 controller()->state()); 615 controller()->GetState());
624 // Fake-navigate after 5 seconds. We expect the bubble's state to be reset 616 // Fake-navigate after 5 seconds. We expect the bubble's state to be reset
625 // if a navigation occurs after this limit. 617 // if a navigation occurs after this limit.
626 controller()->SetElapsed( 618 controller()->SetElapsed(
627 base::TimeDelta::FromMilliseconds(kSlowNavigationDelayInMS)); 619 base::TimeDelta::FromMilliseconds(kSlowNavigationDelayInMS));
628 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), 620 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(),
629 content::FrameNavigateParams()); 621 content::FrameNavigateParams());
630 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); 622 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
631 // The following line shouldn't crash browser. 623 // The following line shouldn't crash browser.
632 controller()->OnNoInteractionOnUpdate(); 624 controller()->OnNoInteractionOnUpdate();
633 } 625 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698