OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stdarg.h> | 5 #include <stdarg.h> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 const base::string16 kNewPassword(UTF8ToUTF16("new_b")); | 549 const base::string16 kNewPassword(UTF8ToUTF16("new_b")); |
550 EXPECT_NE(kOldPassword, kNewPassword); | 550 EXPECT_NE(kOldPassword, kNewPassword); |
551 new_facebook.password_value = kNewPassword; | 551 new_facebook.password_value = kNewPassword; |
552 switch (update_type) { | 552 switch (update_type) { |
553 case UPDATE_BY_UPDATELOGIN: | 553 case UPDATE_BY_UPDATELOGIN: |
554 BrowserThread::PostTask( | 554 BrowserThread::PostTask( |
555 BrowserThread::DB, | 555 BrowserThread::DB, |
556 FROM_HERE, | 556 FROM_HERE, |
557 base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), | 557 base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), |
558 base::Unretained(&backend), | 558 base::Unretained(&backend), |
559 new_facebook)); | 559 new_facebook, |
| 560 base::Owned(new PasswordStoreChangeList))); |
560 break; | 561 break; |
561 case UPDATE_BY_ADDLOGIN: | 562 case UPDATE_BY_ADDLOGIN: |
562 BrowserThread::PostTask( | 563 BrowserThread::PostTask( |
563 BrowserThread::DB, | 564 BrowserThread::DB, |
564 FROM_HERE, | 565 FROM_HERE, |
565 base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin), | 566 base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin), |
566 base::Unretained(&backend), | 567 base::Unretained(&backend), |
567 new_facebook)); | 568 new_facebook)); |
568 break; | 569 break; |
569 } | 570 } |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
746 | 747 |
747 PasswordForm new_form_google(form_google_); | 748 PasswordForm new_form_google(form_google_); |
748 new_form_google.times_used = 1; | 749 new_form_google.times_used = 1; |
749 new_form_google.action = GURL("http://www.google.com/different/login"); | 750 new_form_google.action = GURL("http://www.google.com/different/login"); |
750 | 751 |
751 EXPECT_EQ(1u, mock_keyring_items.size()); | 752 EXPECT_EQ(1u, mock_keyring_items.size()); |
752 if (mock_keyring_items.size() > 0) | 753 if (mock_keyring_items.size() > 0) |
753 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); | 754 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
754 | 755 |
755 // Update login | 756 // Update login |
| 757 PasswordStoreChangeList changes; |
756 BrowserThread::PostTask( | 758 BrowserThread::PostTask( |
757 BrowserThread::DB, FROM_HERE, | 759 BrowserThread::DB, FROM_HERE, |
758 base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), | 760 base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), |
759 base::Unretained(&backend), new_form_google)); | 761 base::Unretained(&backend), |
| 762 new_form_google, |
| 763 base::Unretained(&changes))); |
760 | 764 |
761 RunBothThreads(); | 765 RunBothThreads(); |
762 | 766 |
| 767 ASSERT_EQ(1u, changes.size()); |
| 768 EXPECT_EQ(PasswordStoreChange::UPDATE, changes.front().type()); |
| 769 EXPECT_EQ(new_form_google, changes.front().form()); |
763 EXPECT_EQ(1u, mock_keyring_items.size()); | 770 EXPECT_EQ(1u, mock_keyring_items.size()); |
764 if (mock_keyring_items.size() > 0) | 771 if (mock_keyring_items.size() > 0) |
765 CheckMockKeyringItem(&mock_keyring_items[0], new_form_google, "chrome-42"); | 772 CheckMockKeyringItem(&mock_keyring_items[0], new_form_google, "chrome-42"); |
766 } | 773 } |
767 | 774 |
768 TEST_F(NativeBackendGnomeTest, BasicRemoveLogin) { | 775 TEST_F(NativeBackendGnomeTest, BasicRemoveLogin) { |
769 NativeBackendGnome backend(42); | 776 NativeBackendGnome backend(42); |
770 backend.Init(); | 777 backend.Init(); |
771 | 778 |
772 BrowserThread::PostTask( | 779 BrowserThread::PostTask( |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 | 831 |
825 // Quick check that we got something back. | 832 // Quick check that we got something back. |
826 EXPECT_EQ(1u, form_list.size()); | 833 EXPECT_EQ(1u, form_list.size()); |
827 STLDeleteElements(&form_list); | 834 STLDeleteElements(&form_list); |
828 | 835 |
829 EXPECT_EQ(1u, mock_keyring_items.size()); | 836 EXPECT_EQ(1u, mock_keyring_items.size()); |
830 if (mock_keyring_items.size() > 0) | 837 if (mock_keyring_items.size() > 0) |
831 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); | 838 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
832 } | 839 } |
833 | 840 |
| 841 TEST_F(NativeBackendGnomeTest, UpdateNonexistentLogin) { |
| 842 NativeBackendGnome backend(42); |
| 843 backend.Init(); |
| 844 |
| 845 // First add an unrelated login. |
| 846 BrowserThread::PostTask( |
| 847 BrowserThread::DB, FROM_HERE, |
| 848 base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin), |
| 849 base::Unretained(&backend), form_google_)); |
| 850 |
| 851 RunBothThreads(); |
| 852 |
| 853 EXPECT_EQ(1u, mock_keyring_items.size()); |
| 854 if (mock_keyring_items.size() > 0) |
| 855 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
| 856 |
| 857 // Attempt to update a login that doesn't exist. |
| 858 PasswordStoreChangeList changes; |
| 859 BrowserThread::PostTask( |
| 860 BrowserThread::DB, FROM_HERE, |
| 861 base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), |
| 862 base::Unretained(&backend), |
| 863 form_isc_, |
| 864 base::Unretained(&changes))); |
| 865 |
| 866 RunBothThreads(); |
| 867 |
| 868 EXPECT_EQ(PasswordStoreChangeList(), changes); |
| 869 EXPECT_EQ(1u, mock_keyring_items.size()); |
| 870 if (mock_keyring_items.size() > 0) |
| 871 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
| 872 } |
| 873 |
834 TEST_F(NativeBackendGnomeTest, AddDuplicateLogin) { | 874 TEST_F(NativeBackendGnomeTest, AddDuplicateLogin) { |
835 NativeBackendGnome backend(42); | 875 NativeBackendGnome backend(42); |
836 backend.Init(); | 876 backend.Init(); |
837 | 877 |
838 PasswordStoreChangeList changes; | 878 PasswordStoreChangeList changes; |
839 changes.push_back(PasswordStoreChange(PasswordStoreChange::ADD, | 879 changes.push_back(PasswordStoreChange(PasswordStoreChange::ADD, |
840 form_google_)); | 880 form_google_)); |
841 BrowserThread::PostTaskAndReplyWithResult( | 881 BrowserThread::PostTaskAndReplyWithResult( |
842 BrowserThread::DB, FROM_HERE, | 882 BrowserThread::DB, FROM_HERE, |
843 base::Bind(&NativeBackendGnome::AddLogin, | 883 base::Bind(&NativeBackendGnome::AddLogin, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 // Quick check that we got two results back. | 931 // Quick check that we got two results back. |
892 EXPECT_EQ(2u, form_list.size()); | 932 EXPECT_EQ(2u, form_list.size()); |
893 STLDeleteElements(&form_list); | 933 STLDeleteElements(&form_list); |
894 | 934 |
895 EXPECT_EQ(1u, mock_keyring_items.size()); | 935 EXPECT_EQ(1u, mock_keyring_items.size()); |
896 if (mock_keyring_items.size() > 0) | 936 if (mock_keyring_items.size() > 0) |
897 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); | 937 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
898 } | 938 } |
899 | 939 |
900 // TODO(mdm): add more basic tests here at some point. | 940 // TODO(mdm): add more basic tests here at some point. |
OLD | NEW |