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/core/browser/password_form_manager.h" | 8 #include "components/password_manager/core/browser/password_form_manager.h" |
9 #include "components/password_manager/core/browser/stub_password_manager_client.
h" | 9 #include "components/password_manager/core/browser/stub_password_manager_client.
h" |
10 #include "components/password_manager/core/common/credential_manager_types.h" | 10 #include "components/password_manager/core/common/credential_manager_types.h" |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 EXPECT_THAT(passwords_data().GetCurrentForms(), | 317 EXPECT_THAT(passwords_data().GetCurrentForms(), |
318 ElementsAre(Pointee(test_local_form()))); | 318 ElementsAre(Pointee(test_local_form()))); |
319 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 319 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
320 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 320 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
321 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 321 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
322 TestAllUpdates(); | 322 TestAllUpdates(); |
323 } | 323 } |
324 | 324 |
325 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) { | 325 TEST_F(ManagePasswordsStateTest, PasswordAutofilled) { |
326 autofill::PasswordFormMap password_form_map; | 326 autofill::PasswordFormMap password_form_map; |
327 password_form_map[test_local_form().username_value] = &test_local_form(); | 327 password_form_map.insert( |
| 328 test_local_form().username_value, |
| 329 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
328 passwords_data().OnPasswordAutofilled(password_form_map); | 330 passwords_data().OnPasswordAutofilled(password_form_map); |
329 | 331 |
330 EXPECT_THAT(passwords_data().GetCurrentForms(), | 332 EXPECT_THAT(passwords_data().GetCurrentForms(), |
331 ElementsAre(Pointee(test_local_form()))); | 333 ElementsAre(Pointee(test_local_form()))); |
332 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 334 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
333 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 335 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
334 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 336 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
335 | 337 |
336 // |passwords_data| should hold a separate copy of test_local_form(). | 338 // |passwords_data| should hold a separate copy of test_local_form(). |
337 EXPECT_THAT(passwords_data().GetCurrentForms(), | 339 EXPECT_THAT(passwords_data().GetCurrentForms(), |
338 Not(Contains(&test_local_form()))); | 340 Not(Contains(&test_local_form()))); |
339 TestAllUpdates(); | 341 TestAllUpdates(); |
340 } | 342 } |
341 | 343 |
342 TEST_F(ManagePasswordsStateTest, InactiveOnPSLMatched) { | 344 TEST_F(ManagePasswordsStateTest, InactiveOnPSLMatched) { |
343 autofill::PasswordForm psl_matched_test_form = test_local_form(); | 345 autofill::PasswordForm psl_matched_test_form = test_local_form(); |
344 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com"; | 346 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com"; |
345 autofill::PasswordFormMap password_form_map; | 347 autofill::PasswordFormMap password_form_map; |
346 password_form_map[psl_matched_test_form.username_value] = | 348 password_form_map.insert( |
347 &psl_matched_test_form; | 349 psl_matched_test_form.username_value, |
| 350 make_scoped_ptr(new autofill::PasswordForm(psl_matched_test_form))); |
348 passwords_data().OnPasswordAutofilled(password_form_map); | 351 passwords_data().OnPasswordAutofilled(password_form_map); |
349 | 352 |
350 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); | 353 EXPECT_THAT(passwords_data().GetCurrentForms(), IsEmpty()); |
351 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 354 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
352 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); | 355 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, passwords_data().state()); |
353 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); | 356 EXPECT_EQ(GURL::EmptyGURL(), passwords_data().origin()); |
354 EXPECT_FALSE(passwords_data().form_manager()); | 357 EXPECT_FALSE(passwords_data().form_manager()); |
355 } | 358 } |
356 | 359 |
357 TEST_F(ManagePasswordsStateTest, BlacklistBlockedAutofill) { | 360 TEST_F(ManagePasswordsStateTest, BlacklistBlockedAutofill) { |
358 autofill::PasswordForm blacklisted; | 361 scoped_ptr<autofill::PasswordForm> blacklisted(new autofill::PasswordForm); |
359 blacklisted.blacklisted_by_user = true; | 362 autofill::PasswordForm& blacklisted_ref = *blacklisted; |
360 blacklisted.origin = GURL("http://example.com/bad"); | 363 blacklisted_ref.blacklisted_by_user = true; |
| 364 blacklisted_ref.origin = GURL("http://example.com/bad"); |
361 autofill::PasswordFormMap password_form_map; | 365 autofill::PasswordFormMap password_form_map; |
362 password_form_map[blacklisted.username_value] = &blacklisted; | 366 password_form_map.insert(blacklisted_ref.username_value, blacklisted.Pass()); |
363 password_form_map[test_local_form().username_value] = &test_local_form(); | 367 scoped_ptr<autofill::PasswordForm> test_form( |
| 368 new autofill::PasswordForm(test_local_form())); |
| 369 autofill::PasswordForm* test_form_ptr = test_form.get(); |
| 370 password_form_map.insert(test_form_ptr->username_value, test_form.Pass()); |
364 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 371 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
365 | 372 |
366 EXPECT_THAT(passwords_data().GetCurrentForms(), | 373 EXPECT_THAT( |
367 ElementsAre(Pointee(blacklisted), Pointee(test_local_form()))); | 374 passwords_data().GetCurrentForms(), |
| 375 ElementsAre(Pointee(blacklisted_ref), Pointee(*test_form_ptr))); |
368 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 376 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
369 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 377 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
370 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 378 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
371 | 379 |
372 // |passwords_data| should hold a separate copy of test_local_form(). | 380 // |passwords_data| should hold a separate copy of test_form. |
373 EXPECT_THAT(passwords_data().GetCurrentForms(), | 381 EXPECT_THAT(passwords_data().GetCurrentForms(), Not(Contains(test_form_ptr))); |
374 Not(Contains(&test_local_form()))); | |
375 TestAllUpdates(); | 382 TestAllUpdates(); |
376 } | 383 } |
377 | 384 |
378 TEST_F(ManagePasswordsStateTest, Unblacklist) { | 385 TEST_F(ManagePasswordsStateTest, Unblacklist) { |
379 autofill::PasswordForm blacklisted; | 386 scoped_ptr<autofill::PasswordForm> blacklisted(new autofill::PasswordForm); |
380 blacklisted.blacklisted_by_user = true; | 387 autofill::PasswordForm& blacklisted_ref = *blacklisted; |
381 blacklisted.origin = test_local_form().origin; | 388 blacklisted_ref.blacklisted_by_user = true; |
| 389 blacklisted_ref.origin = test_local_form().origin; |
382 autofill::PasswordFormMap password_form_map; | 390 autofill::PasswordFormMap password_form_map; |
383 password_form_map[blacklisted.username_value] = &blacklisted; | 391 password_form_map.insert(blacklisted_ref.username_value, blacklisted.Pass()); |
384 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 392 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
385 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 393 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
386 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); | 394 passwords_data().TransitionToState(password_manager::ui::MANAGE_STATE); |
387 | 395 |
388 EXPECT_THAT(passwords_data().GetCurrentForms(), | 396 EXPECT_THAT(passwords_data().GetCurrentForms(), |
389 ElementsAre(Pointee(blacklisted))); | 397 ElementsAre(Pointee(blacklisted_ref))); |
390 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 398 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
391 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 399 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
392 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 400 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
393 TestAllUpdates(); | 401 TestAllUpdates(); |
394 } | 402 } |
395 | 403 |
396 TEST_F(ManagePasswordsStateTest, OnInactive) { | 404 TEST_F(ManagePasswordsStateTest, OnInactive) { |
397 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 405 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
398 CreateFormManager()); | 406 CreateFormManager()); |
399 test_form_manager->ProvisionallySave( | 407 test_form_manager->ProvisionallySave( |
400 test_submitted_form(), | 408 test_submitted_form(), |
401 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 409 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
402 passwords_data().OnPendingPassword(test_form_manager.Pass()); | 410 passwords_data().OnPendingPassword(test_form_manager.Pass()); |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 EXPECT_THAT(passwords_data().GetCurrentForms(), | 558 EXPECT_THAT(passwords_data().GetCurrentForms(), |
551 UnorderedElementsAre(Pointee(test_local_form()), | 559 UnorderedElementsAre(Pointee(test_local_form()), |
552 Pointee(test_submitted_form()))); | 560 Pointee(test_submitted_form()))); |
553 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 561 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
554 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 562 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
555 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); | 563 EXPECT_EQ(test_submitted_form().origin, passwords_data().origin()); |
556 } | 564 } |
557 | 565 |
558 TEST_F(ManagePasswordsStateTest, BackgroundAutofilledToBlacklisted) { | 566 TEST_F(ManagePasswordsStateTest, BackgroundAutofilledToBlacklisted) { |
559 autofill::PasswordFormMap password_form_map; | 567 autofill::PasswordFormMap password_form_map; |
560 password_form_map[test_local_form().username_value] = &test_local_form(); | 568 password_form_map.insert( |
| 569 test_local_form().username_value, |
| 570 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
561 passwords_data().OnPasswordAutofilled(password_form_map); | 571 passwords_data().OnPasswordAutofilled(password_form_map); |
562 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 572 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
563 | 573 |
564 // Process the blacklisted form. | 574 // Process the blacklisted form. |
565 autofill::PasswordForm blacklisted = test_local_form(); | 575 autofill::PasswordForm blacklisted = test_local_form(); |
566 blacklisted.blacklisted_by_user = true; | 576 blacklisted.blacklisted_by_user = true; |
567 blacklisted.username_value = base::string16(); | 577 blacklisted.username_value = base::string16(); |
568 password_manager::PasswordStoreChange change( | 578 password_manager::PasswordStoreChange change( |
569 password_manager::PasswordStoreChange::ADD, blacklisted); | 579 password_manager::PasswordStoreChange::ADD, blacklisted); |
570 password_manager::PasswordStoreChangeList list(1, change); | 580 password_manager::PasswordStoreChangeList list(1, change); |
(...skipping 10 matching lines...) Expand all Loading... |
581 passwords_data().ProcessLoginsChanged(list); | 591 passwords_data().ProcessLoginsChanged(list); |
582 EXPECT_THAT(passwords_data().GetCurrentForms(), | 592 EXPECT_THAT(passwords_data().GetCurrentForms(), |
583 ElementsAre(Pointee(test_local_form()))); | 593 ElementsAre(Pointee(test_local_form()))); |
584 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 594 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
585 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 595 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
586 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); | 596 EXPECT_EQ(test_local_form().origin, passwords_data().origin()); |
587 } | 597 } |
588 | 598 |
589 TEST_F(ManagePasswordsStateTest, BlacklistedToAutofilled) { | 599 TEST_F(ManagePasswordsStateTest, BlacklistedToAutofilled) { |
590 autofill::PasswordFormMap password_form_map; | 600 autofill::PasswordFormMap password_form_map; |
591 password_form_map[test_local_form().username_value] = &test_local_form(); | 601 password_form_map.insert( |
592 autofill::PasswordForm blacklisted; | 602 test_local_form().username_value, |
593 blacklisted.blacklisted_by_user = true; | 603 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
594 blacklisted.origin = GURL("http://example.com/bad"); | 604 scoped_ptr<autofill::PasswordForm> blacklisted(new autofill::PasswordForm); |
595 password_form_map[blacklisted.username_value] = &blacklisted; | 605 autofill::PasswordForm& blacklisted_ref = *blacklisted; |
| 606 blacklisted_ref.blacklisted_by_user = true; |
| 607 blacklisted_ref.origin = GURL("http://example.com/bad"); |
| 608 password_form_map.insert(blacklisted_ref.username_value, blacklisted.Pass()); |
596 passwords_data().OnBlacklistBlockedAutofill(password_form_map); | 609 passwords_data().OnBlacklistBlockedAutofill(password_form_map); |
597 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); | 610 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, passwords_data().state()); |
598 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 611 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
599 | 612 |
600 // Delete the blacklisted form. | 613 // Delete the blacklisted form. |
601 password_manager::PasswordStoreChangeList list; | 614 password_manager::PasswordStoreChangeList list; |
602 list.push_back(password_manager::PasswordStoreChange( | 615 list.push_back(password_manager::PasswordStoreChange( |
603 password_manager::PasswordStoreChange::REMOVE, blacklisted)); | 616 password_manager::PasswordStoreChange::REMOVE, blacklisted_ref)); |
604 passwords_data().ProcessLoginsChanged(list); | 617 passwords_data().ProcessLoginsChanged(list); |
605 EXPECT_THAT(passwords_data().GetCurrentForms(), | 618 EXPECT_THAT(passwords_data().GetCurrentForms(), |
606 ElementsAre(Pointee(test_local_form()))); | 619 ElementsAre(Pointee(test_local_form()))); |
607 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); | 620 EXPECT_THAT(passwords_data().federated_credentials_forms(), IsEmpty()); |
608 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); | 621 EXPECT_EQ(password_manager::ui::MANAGE_STATE, passwords_data().state()); |
609 EXPECT_EQ(blacklisted.origin, passwords_data().origin()); | 622 EXPECT_EQ(blacklisted_ref.origin, passwords_data().origin()); |
610 } | 623 } |
611 | 624 |
612 } // namespace | 625 } // namespace |
OLD | NEW |