OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/ui/passwords/manage_passwords_state.h" | 5 #include "chrome/browser/ui/passwords/manage_passwords_state.h" |
6 | 6 |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "components/password_manager/content/common/credential_manager_types.h" | 8 #include "components/password_manager/content/common/credential_manager_types.h" |
9 #include "components/password_manager/core/browser/password_form_manager.h" | 9 #include "components/password_manager/core/browser/password_form_manager.h" |
10 #include "components/password_manager/core/browser/stub_password_manager_client.
h" | 10 #include "components/password_manager/core/browser/stub_password_manager_client.
h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 test_local_form_.origin = GURL("http://example.com"); | 29 test_local_form_.origin = GURL("http://example.com"); |
30 test_local_form_.username_value = base::ASCIIToUTF16("username"); | 30 test_local_form_.username_value = base::ASCIIToUTF16("username"); |
31 test_local_form_.password_value = base::ASCIIToUTF16("12345"); | 31 test_local_form_.password_value = base::ASCIIToUTF16("12345"); |
32 | 32 |
33 test_submitted_form_ = test_local_form_; | 33 test_submitted_form_ = test_local_form_; |
34 test_submitted_form_.username_value = base::ASCIIToUTF16("new one"); | 34 test_submitted_form_.username_value = base::ASCIIToUTF16("new one"); |
35 test_submitted_form_.password_value = base::ASCIIToUTF16("asdfjkl;"); | 35 test_submitted_form_.password_value = base::ASCIIToUTF16("asdfjkl;"); |
36 | 36 |
37 test_federated_form_.origin = GURL("https://idp.com"); | 37 test_federated_form_.origin = GURL("https://idp.com"); |
38 test_federated_form_.username_value = base::ASCIIToUTF16("username"); | 38 test_federated_form_.username_value = base::ASCIIToUTF16("username"); |
| 39 |
| 40 passwords_data_.set_client(&client_); |
39 } | 41 } |
40 | 42 |
41 autofill::PasswordForm& test_local_form() { return test_local_form_; } | 43 autofill::PasswordForm& test_local_form() { return test_local_form_; } |
42 autofill::PasswordForm& test_submitted_form() { return test_submitted_form_; } | 44 autofill::PasswordForm& test_submitted_form() { return test_submitted_form_; } |
43 autofill::PasswordForm& test_federated_form() { return test_federated_form_; } | 45 autofill::PasswordForm& test_federated_form() { return test_federated_form_; } |
44 ManagePasswordsState& passwords_data() { return passwords_data_; } | 46 ManagePasswordsState& passwords_data() { return passwords_data_; } |
45 | 47 |
46 // Returns a PasswordFormManager containing test_local_form() as a best match. | 48 // Returns a PasswordFormManager containing test_local_form() as a best match. |
47 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager(); | 49 scoped_ptr<password_manager::PasswordFormManager> CreateFormManager(); |
48 | 50 |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 test_local_form(), | 248 test_local_form(), |
247 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); | 249 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); |
248 EXPECT_CALL(*this, OnChooseCredential(_)) | 250 EXPECT_CALL(*this, OnChooseCredential(_)) |
249 .WillOnce(testing::SaveArg<0>(&credential_info)); | 251 .WillOnce(testing::SaveArg<0>(&credential_info)); |
250 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); | 252 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); |
251 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, | 253 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, |
252 credential_info.type); | 254 credential_info.type); |
253 EXPECT_TRUE(passwords_data().credentials_callback().is_null()); | 255 EXPECT_TRUE(passwords_data().credentials_callback().is_null()); |
254 EXPECT_THAT(passwords_data().GetCurrentForms(), | 256 EXPECT_THAT(passwords_data().GetCurrentForms(), |
255 ElementsAre(Pointee(test_local_form()))); | 257 ElementsAre(Pointee(test_local_form()))); |
256 EXPECT_THAT(passwords_data().federated_credentials_forms(), | 258 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
257 ElementsAre(Pointee(test_federated_form()))); | |
258 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 259 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
259 EXPECT_EQ(origin, passwords_data().origin()); | 260 EXPECT_EQ(origin, passwords_data().origin()); |
260 TestAllUpdates(); | 261 TestAllUpdates(); |
261 } | 262 } |
262 | 263 |
263 TEST_F(ManagePasswordsStateTest, AutoSignin) { | 264 TEST_F(ManagePasswordsStateTest, AutoSignin) { |
264 ScopedVector<autofill::PasswordForm> local_credentials; | 265 ScopedVector<autofill::PasswordForm> local_credentials; |
265 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 266 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
266 passwords_data().OnAutoSignin(local_credentials.Pass()); | 267 passwords_data().OnAutoSignin(local_credentials.Pass()); |
267 EXPECT_THAT(passwords_data().GetCurrentForms(), | 268 EXPECT_THAT(passwords_data().GetCurrentForms(), |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 passwords_data().OnPasswordAutofilled(password_form_map); | 348 passwords_data().OnPasswordAutofilled(password_form_map); |
348 | 349 |
349 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); | 350 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); |
350 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 351 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
351 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); | 352 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); |
352 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); | 353 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); |
353 EXPECT_FALSE(passwords_data().form_manager()); | 354 EXPECT_FALSE(passwords_data().form_manager()); |
354 } | 355 } |
355 | 356 |
356 TEST_F(ManagePasswordsStateTest, BlacklistBlockedAutofill) { | 357 TEST_F(ManagePasswordsStateTest, BlacklistBlockedAutofill) { |
357 test_local_form().blacklisted_by_user = true; | 358 autofill::PasswordForm blacklisted; |
| 359 blacklisted.blacklisted_by_user = true; |
| 360 blacklisted.origin = GURL("http://example.com/bad"); |
358 autofill::PasswordFormMap password_form_map; | 361 autofill::PasswordFormMap password_form_map; |
| 362 password_form_map[blacklisted.username_value] = &blacklisted; |
359 password_form_map[test_local_form().username_value] = &test_local_form(); | 363 password_form_map[test_local_form().username_value] = &test_local_form(); |
360 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 364 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
361 | 365 |
362 EXPECT_THAT(passwords_data().GetCurrentForms(), | 366 EXPECT_THAT(passwords_data().GetCurrentForms(), |
363 ElementsAre(Pointee(test_local_form()))); | 367 ElementsAre(Pointee(blacklisted), Pointee(test_local_form()))); |
364 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 368 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
365 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 369 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
366 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 370 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); |
367 | 371 |
368 // |passwords_data| should hold a separate copy of test_local_form(). | 372 // |passwords_data| should hold a separate copy of test_local_form(). |
369 EXPECT_THAT(passwords_data().GetCurrentForms(), | 373 EXPECT_THAT(passwords_data().GetCurrentForms(), |
370 Not(Contains(&test_local_form()))); | 374 Not(Contains(&test_local_form()))); |
371 TestAllUpdates(); | 375 TestAllUpdates(); |
372 } | 376 } |
373 | 377 |
374 TEST_F(ManagePasswordsStateTest, Unblacklist) { | 378 TEST_F(ManagePasswordsStateTest, Unblacklist) { |
| 379 autofill::PasswordForm blacklisted; |
| 380 blacklisted.blacklisted_by_user = true; |
| 381 blacklisted.origin = test_local_form().origin; |
375 autofill::PasswordFormMap password_form_map; | 382 autofill::PasswordFormMap password_form_map; |
376 password_form_map[test_local_form().username_value] = &test_local_form(); | 383 password_form_map[blacklisted.username_value] = &blacklisted; |
377 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 384 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
378 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 385 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
379 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); | 386 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); |
380 | 387 |
381 EXPECT_THAT(passwords_data().GetCurrentForms(), | 388 EXPECT_THAT(passwords_data().GetCurrentForms(), |
382 ElementsAre(Pointee(test_local_form()))); | 389 ElementsAre(Pointee(blacklisted))); |
383 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 390 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
384 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 391 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
385 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 392 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); |
386 TestAllUpdates(); | 393 TestAllUpdates(); |
387 } | 394 } |
388 | 395 |
389 TEST_F(ManagePasswordsStateTest, OnInactive) { | 396 TEST_F(ManagePasswordsStateTest, OnInactive) { |
390 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 397 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
391 CreateFormManager()); | 398 CreateFormManager()); |
392 test_form_manager->ProvisionallySave( | 399 test_form_manager->ProvisionallySave( |
393 test_submitted_form(), | 400 test_submitted_form(), |
394 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 401 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
395 passwords_data().OnPendingPassword(test_form_manager.Pass()); | 402 passwords_data().OnPendingPassword(test_form_manager.Pass()); |
(...skipping 19 matching lines...) Expand all Loading... |
415 passwords_data().state()); | 422 passwords_data().state()); |
416 | 423 |
417 // Process the blacklisted form. | 424 // Process the blacklisted form. |
418 autofill::PasswordForm blacklisted = test_local_form(); | 425 autofill::PasswordForm blacklisted = test_local_form(); |
419 blacklisted.blacklisted_by_user = true; | 426 blacklisted.blacklisted_by_user = true; |
420 blacklisted.username_value = base::string16(); | 427 blacklisted.username_value = base::string16(); |
421 password_manager::PasswordStoreChangeList list; | 428 password_manager::PasswordStoreChangeList list; |
422 list.push_back(password_manager::PasswordStoreChange( | 429 list.push_back(password_manager::PasswordStoreChange( |
423 password_manager::PasswordStoreChange::ADD, blacklisted)); | 430 password_manager::PasswordStoreChange::ADD, blacklisted)); |
424 passwords_data().ProcessLoginsChanged(list); | 431 passwords_data().ProcessLoginsChanged(list); |
| 432 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 433 ElementsAre(Pointee(blacklisted), Pointee(test_local_form()))); |
425 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 434 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
426 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 435 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
427 | 436 |
428 // Delete the blacklisted form. | 437 // Delete the blacklisted form. |
429 list[0] = password_manager::PasswordStoreChange( | 438 list[0] = password_manager::PasswordStoreChange( |
430 password_manager::PasswordStoreChange::REMOVE, blacklisted); | 439 password_manager::PasswordStoreChange::REMOVE, blacklisted); |
431 passwords_data().ProcessLoginsChanged(list); | 440 passwords_data().ProcessLoginsChanged(list); |
432 EXPECT_THAT(passwords_data().GetCurrentForms(), | 441 EXPECT_THAT(passwords_data().GetCurrentForms(), |
433 ElementsAre(Pointee(test_local_form()))); | 442 ElementsAre(Pointee(test_local_form()))); |
434 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 443 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
(...skipping 22 matching lines...) Expand all Loading... |
457 blacklisted.username_value = base::string16(); | 466 blacklisted.username_value = base::string16(); |
458 password_manager::PasswordStoreChangeList list; | 467 password_manager::PasswordStoreChangeList list; |
459 list.push_back(password_manager::PasswordStoreChange( | 468 list.push_back(password_manager::PasswordStoreChange( |
460 password_manager::PasswordStoreChange::ADD, blacklisted)); | 469 password_manager::PasswordStoreChange::ADD, blacklisted)); |
461 password_manager::CredentialInfo credential_info( | 470 password_manager::CredentialInfo credential_info( |
462 test_local_form(), | 471 test_local_form(), |
463 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); | 472 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); |
464 EXPECT_CALL(*this, OnChooseCredential(_)) | 473 EXPECT_CALL(*this, OnChooseCredential(_)) |
465 .WillOnce(testing::SaveArg<0>(&credential_info)); | 474 .WillOnce(testing::SaveArg<0>(&credential_info)); |
466 passwords_data().ProcessLoginsChanged(list); | 475 passwords_data().ProcessLoginsChanged(list); |
| 476 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 477 ElementsAre(Pointee(blacklisted), Pointee(test_local_form()))); |
467 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 478 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
468 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 479 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
469 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, | 480 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, |
470 credential_info.type); | 481 credential_info.type); |
471 EXPECT_TRUE(passwords_data().credentials_callback().is_null()); | 482 EXPECT_TRUE(passwords_data().credentials_callback().is_null()); |
472 | 483 |
473 // Delete the blacklisted form. | 484 // Delete the blacklisted form. |
474 list[0] = password_manager::PasswordStoreChange( | 485 list[0] = password_manager::PasswordStoreChange( |
475 password_manager::PasswordStoreChange::REMOVE, blacklisted); | 486 password_manager::PasswordStoreChange::REMOVE, blacklisted); |
476 passwords_data().ProcessLoginsChanged(list); | 487 passwords_data().ProcessLoginsChanged(list); |
477 EXPECT_THAT(passwords_data().GetCurrentForms(), | 488 EXPECT_THAT(passwords_data().GetCurrentForms(), |
478 ElementsAre(Pointee(test_local_form()))); | 489 ElementsAre(Pointee(test_local_form()))); |
479 EXPECT_THAT(passwords_data().federated_credentials_forms(), | 490 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
480 ElementsAre(Pointee(test_federated_form()))); | |
481 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 491 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
482 EXPECT_EQ(origin, passwords_data().origin()); | 492 EXPECT_EQ(origin, passwords_data().origin()); |
483 } | 493 } |
484 | 494 |
485 TEST_F(ManagePasswordsStateTest, AutoSigninToBlacklisted) { | 495 TEST_F(ManagePasswordsStateTest, AutoSigninToBlacklisted) { |
486 ScopedVector<autofill::PasswordForm> local_credentials; | 496 ScopedVector<autofill::PasswordForm> local_credentials; |
487 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 497 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
488 passwords_data().OnAutoSignin(local_credentials.Pass()); | 498 passwords_data().OnAutoSignin(local_credentials.Pass()); |
489 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state()); | 499 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, passwords_data().state()); |
490 | 500 |
491 // Process the blacklisted form. | 501 // Process the blacklisted form. |
492 autofill::PasswordForm blacklisted = test_local_form(); | 502 autofill::PasswordForm blacklisted = test_local_form(); |
493 blacklisted.blacklisted_by_user = true; | 503 blacklisted.blacklisted_by_user = true; |
494 blacklisted.username_value = base::string16(); | 504 blacklisted.username_value = base::string16(); |
495 password_manager::PasswordStoreChange change( | 505 password_manager::PasswordStoreChange change( |
496 password_manager::PasswordStoreChange::ADD, blacklisted); | 506 password_manager::PasswordStoreChange::ADD, blacklisted); |
497 password_manager::PasswordStoreChangeList list(1, change); | 507 password_manager::PasswordStoreChangeList list(1, change); |
498 passwords_data().ProcessLoginsChanged(list); | 508 passwords_data().ProcessLoginsChanged(list); |
| 509 EXPECT_THAT(passwords_data().GetCurrentForms(), |
| 510 ElementsAre(Pointee(blacklisted), Pointee(test_local_form()))); |
499 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 511 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
500 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 512 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
501 | 513 |
502 // Delete the blacklisted form. | 514 // Delete the blacklisted form. |
503 list[0] = password_manager::PasswordStoreChange( | 515 list[0] = password_manager::PasswordStoreChange( |
504 password_manager::PasswordStoreChange::REMOVE, blacklisted); | 516 password_manager::PasswordStoreChange::REMOVE, blacklisted); |
505 passwords_data().ProcessLoginsChanged(list); | 517 passwords_data().ProcessLoginsChanged(list); |
506 EXPECT_THAT(passwords_data().GetCurrentForms(), | 518 EXPECT_THAT(passwords_data().GetCurrentForms(), |
507 ElementsAre(Pointee(test_local_form()))); | 519 ElementsAre(Pointee(test_local_form()))); |
508 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 520 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
(...skipping 11 matching lines...) Expand all Loading... |
520 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, passwords_data().state()); | 532 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, passwords_data().state()); |
521 | 533 |
522 // Process the blacklisted form. | 534 // Process the blacklisted form. |
523 autofill::PasswordForm blacklisted = test_local_form(); | 535 autofill::PasswordForm blacklisted = test_local_form(); |
524 blacklisted.blacklisted_by_user = true; | 536 blacklisted.blacklisted_by_user = true; |
525 blacklisted.username_value = base::string16(); | 537 blacklisted.username_value = base::string16(); |
526 password_manager::PasswordStoreChange change( | 538 password_manager::PasswordStoreChange change( |
527 password_manager::PasswordStoreChange::ADD, blacklisted); | 539 password_manager::PasswordStoreChange::ADD, blacklisted); |
528 password_manager::PasswordStoreChangeList list(1, change); | 540 password_manager::PasswordStoreChangeList list(1, change); |
529 passwords_data().ProcessLoginsChanged(list); | 541 passwords_data().ProcessLoginsChanged(list); |
| 542 EXPECT_EQ(*passwords_data().GetCurrentForms()[0], blacklisted); |
530 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 543 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
531 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 544 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
532 | 545 |
533 // Delete the blacklisted form. | 546 // Delete the blacklisted form. |
534 list[0] = password_manager::PasswordStoreChange( | 547 list[0] = password_manager::PasswordStoreChange( |
535 password_manager::PasswordStoreChange::REMOVE, blacklisted); | 548 password_manager::PasswordStoreChange::REMOVE, blacklisted); |
536 passwords_data().ProcessLoginsChanged(list); | 549 passwords_data().ProcessLoginsChanged(list); |
537 EXPECT_THAT(passwords_data().GetCurrentForms(), | 550 EXPECT_THAT(passwords_data().GetCurrentForms(), |
538 UnorderedElementsAre(Pointee(test_local_form()), | 551 UnorderedElementsAre(Pointee(test_local_form()), |
539 Pointee(test_submitted_form()))); | 552 Pointee(test_submitted_form()))); |
(...skipping 10 matching lines...) Expand all Loading... |
550 | 563 |
551 // Process the blacklisted form. | 564 // Process the blacklisted form. |
552 autofill::PasswordForm blacklisted = test_local_form(); | 565 autofill::PasswordForm blacklisted = test_local_form(); |
553 blacklisted.blacklisted_by_user = true; | 566 blacklisted.blacklisted_by_user = true; |
554 blacklisted.username_value = base::string16(); | 567 blacklisted.username_value = base::string16(); |
555 password_manager::PasswordStoreChange change( | 568 password_manager::PasswordStoreChange change( |
556 password_manager::PasswordStoreChange::ADD, blacklisted); | 569 password_manager::PasswordStoreChange::ADD, blacklisted); |
557 password_manager::PasswordStoreChangeList list(1, change); | 570 password_manager::PasswordStoreChangeList list(1, change); |
558 passwords_data().ProcessLoginsChanged(list); | 571 passwords_data().ProcessLoginsChanged(list); |
559 EXPECT_THAT(passwords_data().GetCurrentForms(), | 572 EXPECT_THAT(passwords_data().GetCurrentForms(), |
560 UnorderedElementsAre(Pointee(test_local_form()), | 573 ElementsAre(Pointee(blacklisted), Pointee(test_local_form()))); |
561 Pointee(blacklisted))); | |
562 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 574 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
563 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 575 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
564 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 576 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
565 | 577 |
566 // Delete the blacklisted form. | 578 // Delete the blacklisted form. |
567 list[0] = password_manager::PasswordStoreChange( | 579 list[0] = password_manager::PasswordStoreChange( |
568 password_manager::PasswordStoreChange::REMOVE, blacklisted); | 580 password_manager::PasswordStoreChange::REMOVE, blacklisted); |
569 passwords_data().ProcessLoginsChanged(list); | 581 passwords_data().ProcessLoginsChanged(list); |
570 EXPECT_THAT(passwords_data().GetCurrentForms(), | 582 EXPECT_THAT(passwords_data().GetCurrentForms(), |
571 ElementsAre(Pointee(test_local_form()))); | 583 ElementsAre(Pointee(test_local_form()))); |
572 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 584 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
573 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 585 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
574 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 586 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
575 } | 587 } |
576 | 588 |
577 TEST_F(ManagePasswordsStateTest, BlacklistedToAutofilled) { | 589 TEST_F(ManagePasswordsStateTest, BlacklistedToAutofilled) { |
578 autofill::PasswordFormMap password_form_map; | 590 autofill::PasswordFormMap password_form_map; |
579 password_form_map[test_local_form().username_value] = &test_local_form(); | 591 password_form_map[test_local_form().username_value] = &test_local_form(); |
| 592 autofill::PasswordForm blacklisted; |
| 593 blacklisted.blacklisted_by_user = true; |
| 594 blacklisted.origin = GURL("http://example.com/bad"); |
| 595 password_form_map[blacklisted.username_value] = &blacklisted; |
580 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 596 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
581 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 597 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
582 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 598 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); |
583 | 599 |
584 // Delete the blacklisted form. | 600 // Delete the blacklisted form. |
585 autofill::PasswordForm blacklisted = test_local_form(); | |
586 blacklisted.blacklisted_by_user = true; | |
587 blacklisted.username_value = base::string16(); | |
588 password_manager::PasswordStoreChangeList list; | 601 password_manager::PasswordStoreChangeList list; |
589 list.push_back(password_manager::PasswordStoreChange( | 602 list.push_back(password_manager::PasswordStoreChange( |
590 password_manager::PasswordStoreChange::REMOVE, blacklisted)); | 603 password_manager::PasswordStoreChange::REMOVE, blacklisted)); |
591 passwords_data().ProcessLoginsChanged(list); | 604 passwords_data().ProcessLoginsChanged(list); |
592 EXPECT_THAT(passwords_data().GetCurrentForms(), | 605 EXPECT_THAT(passwords_data().GetCurrentForms(), |
593 ElementsAre(Pointee(test_local_form()))); | 606 ElementsAre(Pointee(test_local_form()))); |
594 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 607 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
595 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 608 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
596 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 609 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); |
597 } | 610 } |
598 | 611 |
599 } // namespace | 612 } // namespace |
OLD | NEW |