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

Side by Side Diff: chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc

Issue 906973007: PasswordStore: Clean up expectations about rewriting vectors of forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Just rebased Created 5 years, 9 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
OLDNEW
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 <algorithm> 5 #include <algorithm>
6 #include <map> 6 #include <map>
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 EXPECT_TRUE(wallet_.hasFolder(folder)); 599 EXPECT_TRUE(wallet_.hasFolder(folder));
600 std::vector<std::string> entries; 600 std::vector<std::string> entries;
601 EXPECT_TRUE(wallet_.entryList(folder, &entries)); 601 EXPECT_TRUE(wallet_.entryList(folder, &entries));
602 EXPECT_EQ(sorted_expected.size(), entries.size()); 602 EXPECT_EQ(sorted_expected.size(), entries.size());
603 std::sort(entries.begin(), entries.end()); 603 std::sort(entries.begin(), entries.end());
604 for (size_t i = 0; i < entries.size() && i < sorted_expected.size(); ++i) { 604 for (size_t i = 0; i < entries.size() && i < sorted_expected.size(); ++i) {
605 EXPECT_EQ(sorted_expected[i].first, entries[i]); 605 EXPECT_EQ(sorted_expected[i].first, entries[i]);
606 TestKWallet::Blob value; 606 TestKWallet::Blob value;
607 EXPECT_TRUE(wallet_.readEntry(folder, entries[i], &value)); 607 EXPECT_TRUE(wallet_.readEntry(folder, entries[i], &value));
608 Pickle pickle(reinterpret_cast<const char*>(value.data()), value.size()); 608 Pickle pickle(reinterpret_cast<const char*>(value.data()), value.size());
609 ScopedVector<autofill::PasswordForm> forms; 609 ScopedVector<autofill::PasswordForm> forms =
610 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle, &forms); 610 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle);
611 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second; 611 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second;
612 EXPECT_EQ(expect.size(), forms.size()); 612 EXPECT_EQ(expect.size(), forms.size());
613 for (size_t j = 0; j < forms.size() && j < expect.size(); ++j) 613 for (size_t j = 0; j < forms.size() && j < expect.size(); ++j)
614 CheckPasswordForm(*expect[j], *forms[j], true); 614 CheckPasswordForm(*expect[j], *forms[j], true);
615 } 615 }
616 } 616 }
617 617
618 TEST_F(NativeBackendKWalletTest, NotEnabled) { 618 TEST_F(NativeBackendKWalletTest, NotEnabled) {
619 NativeBackendKWalletStub kwallet(42); 619 NativeBackendKWalletStub kwallet(42);
620 kwallet_enabled_ = false; 620 kwallet_enabled_ = false;
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 874
875 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data")); 875 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data"));
876 876
877 std::vector<const PasswordForm*> forms; 877 std::vector<const PasswordForm*> forms;
878 forms.push_back(&form_google_); 878 forms.push_back(&form_google_);
879 ExpectationArray expected; 879 ExpectationArray expected;
880 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); 880 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms));
881 CheckPasswordForms("Chrome Form Data (42)", expected); 881 CheckPasswordForms("Chrome Form Data (42)", expected);
882 } 882 }
883 883
884 TEST_F(NativeBackendKWalletTest, ListLoginsAppends) {
885 NativeBackendKWalletStub backend(42);
886 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_));
887
888 BrowserThread::PostTask(
889 BrowserThread::DB, FROM_HERE,
890 base::Bind(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin),
891 base::Unretained(&backend), form_google_));
892
893 // Send the same request twice with the same list both times.
894 ScopedVector<autofill::PasswordForm> form_list;
895 BrowserThread::PostTask(
896 BrowserThread::DB, FROM_HERE,
897 base::Bind(
898 base::IgnoreResult(&NativeBackendKWalletStub::GetAutofillableLogins),
899 base::Unretained(&backend), &form_list));
900 BrowserThread::PostTask(
901 BrowserThread::DB, FROM_HERE,
902 base::Bind(
903 base::IgnoreResult(&NativeBackendKWalletStub::GetAutofillableLogins),
904 base::Unretained(&backend), &form_list));
905
906 RunDBThread();
907
908 // Quick check that we got two results back.
909 EXPECT_EQ(2u, form_list.size());
910
911 EXPECT_FALSE(wallet_.hasFolder("Chrome Form Data"));
912
913 std::vector<const PasswordForm*> forms;
914 forms.push_back(&form_google_);
915 ExpectationArray expected;
916 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms));
917 CheckPasswordForms("Chrome Form Data (42)", expected);
918 }
919
920 TEST_F(NativeBackendKWalletTest, AndroidCredentials) { 884 TEST_F(NativeBackendKWalletTest, AndroidCredentials) {
921 NativeBackendKWalletStub backend(42); 885 NativeBackendKWalletStub backend(42);
922 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); 886 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_));
923 887
924 PasswordForm observed_android_form; 888 PasswordForm observed_android_form;
925 observed_android_form.scheme = PasswordForm::SCHEME_HTML; 889 observed_android_form.scheme = PasswordForm::SCHEME_HTML;
926 observed_android_form.signon_realm = 890 observed_android_form.signon_realm =
927 "android://7x7IDboo8u9YKraUsbmVkuf1-@net.rateflix.app/"; 891 "android://7x7IDboo8u9YKraUsbmVkuf1-@net.rateflix.app/";
928 PasswordForm saved_android_form = observed_android_form; 892 PasswordForm saved_android_form = observed_android_form;
929 saved_android_form.username_value = base::UTF8ToUTF16("randomusername"); 893 saved_android_form.username_value = base::UTF8ToUTF16("randomusername");
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 else 1042 else
1079 pickle->WriteInt64(form.date_created.ToTimeT()); 1043 pickle->WriteInt64(form.date_created.ToTimeT());
1080 } 1044 }
1081 1045
1082 void NativeBackendKWalletPickleTest::CheckVersion6Pickle() { 1046 void NativeBackendKWalletPickleTest::CheckVersion6Pickle() {
1083 Pickle pickle; 1047 Pickle pickle;
1084 PasswordForm form = form_google_; 1048 PasswordForm form = form_google_;
1085 form.generation_upload_status = PasswordForm::NEGATIVE_SIGNAL_SENT; 1049 form.generation_upload_status = PasswordForm::NEGATIVE_SIGNAL_SENT;
1086 CreateVersion6Pickle(form, &pickle); 1050 CreateVersion6Pickle(form, &pickle);
1087 1051
1088 ScopedVector<PasswordForm> form_list; 1052 ScopedVector<PasswordForm> form_list =
1089 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, 1053 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1090 &form_list);
1091 1054
1092 EXPECT_EQ(1u, form_list.size()); 1055 EXPECT_EQ(1u, form_list.size());
1093 if (form_list.size() > 0) 1056 if (form_list.size() > 0)
1094 CheckPasswordForm(form, *form_list[0], true); 1057 CheckPasswordForm(form, *form_list[0], true);
1095 1058
1096 } 1059 }
1097 1060
1098 void NativeBackendKWalletPickleTest::CheckVersion5Pickle() { 1061 void NativeBackendKWalletPickleTest::CheckVersion5Pickle() {
1099 Pickle pickle; 1062 Pickle pickle;
1100 PasswordForm form = form_google_; 1063 PasswordForm form = form_google_;
1101 CreateVersion5Pickle(form, &pickle); 1064 CreateVersion5Pickle(form, &pickle);
1102 1065
1103 ScopedVector<PasswordForm> form_list; 1066 ScopedVector<PasswordForm> form_list =
1104 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, 1067 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1105 &form_list);
1106 1068
1107 EXPECT_EQ(1u, form_list.size()); 1069 EXPECT_EQ(1u, form_list.size());
1108 if (form_list.size() > 0) 1070 if (form_list.size() > 0)
1109 CheckPasswordForm(form, *form_list[0], true); 1071 CheckPasswordForm(form, *form_list[0], true);
1110 } 1072 }
1111 1073
1112 void NativeBackendKWalletPickleTest::CheckVersion3Pickle() { 1074 void NativeBackendKWalletPickleTest::CheckVersion3Pickle() {
1113 Pickle pickle; 1075 Pickle pickle;
1114 PasswordForm form = form_google_; 1076 PasswordForm form = form_google_;
1115 // Remove the fields which were not present in version #3. 1077 // Remove the fields which were not present in version #3.
1116 form.display_name.clear(); 1078 form.display_name.clear();
1117 form.avatar_url = GURL(); 1079 form.avatar_url = GURL();
1118 form.federation_url = GURL(); 1080 form.federation_url = GURL();
1119 form.skip_zero_click = false; 1081 form.skip_zero_click = false;
1120 CreateVersion3Pickle(form, &pickle); 1082 CreateVersion3Pickle(form, &pickle);
1121 1083
1122 ScopedVector<PasswordForm> form_list; 1084 ScopedVector<PasswordForm> form_list =
1123 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, 1085 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1124 &form_list);
1125 1086
1126 EXPECT_EQ(1u, form_list.size()); 1087 EXPECT_EQ(1u, form_list.size());
1127 if (form_list.size() > 0) 1088 if (form_list.size() > 0)
1128 CheckPasswordForm(form, *form_list[0], false); 1089 CheckPasswordForm(form, *form_list[0], false);
1129 } 1090 }
1130 1091
1131 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() { 1092 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() {
1132 Pickle pickle; 1093 Pickle pickle;
1133 PasswordForm form = old_form_google_; 1094 PasswordForm form = old_form_google_;
1134 form.times_used = form_google_.times_used; 1095 form.times_used = form_google_.times_used;
1135 form.type = form_google_.type; 1096 form.type = form_google_.type;
1136 form.form_data = form_google_.form_data; 1097 form.form_data = form_google_.form_data;
1137 CreateVersion2Pickle(form, &pickle); 1098 CreateVersion2Pickle(form, &pickle);
1138 1099
1139 ScopedVector<PasswordForm> form_list; 1100 ScopedVector<PasswordForm> form_list =
1140 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, 1101 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1141 &form_list);
1142 1102
1143 EXPECT_EQ(1u, form_list.size()); 1103 EXPECT_EQ(1u, form_list.size());
1144 if (form_list.size() > 0) 1104 if (form_list.size() > 0)
1145 CheckPasswordForm(form, *form_list[0], false); 1105 CheckPasswordForm(form, *form_list[0], false);
1146 } 1106 }
1147 1107
1148 // Make sure that we can still read version 1 pickles. 1108 // Make sure that we can still read version 1 pickles.
1149 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() { 1109 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() {
1150 Pickle pickle; 1110 Pickle pickle;
1151 PasswordForm form = form_google_; 1111 PasswordForm form = form_google_;
1152 CreateVersion1Pickle(form, &pickle); 1112 CreateVersion1Pickle(form, &pickle);
1153 1113
1154 ScopedVector<autofill::PasswordForm> form_list; 1114 ScopedVector<autofill::PasswordForm> form_list =
1155 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, 1115 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1156 pickle, &form_list);
1157 1116
1158 // This will match |old_form_google_| because not all the fields present in 1117 // This will match |old_form_google_| because not all the fields present in
1159 // |form_google_| will be deserialized. 1118 // |form_google_| will be deserialized.
1160 EXPECT_EQ(1u, form_list.size()); 1119 EXPECT_EQ(1u, form_list.size());
1161 if (form_list.size() > 0) 1120 if (form_list.size() > 0)
1162 CheckPasswordForm(old_form_google_, *form_list[0], false); 1121 CheckPasswordForm(old_form_google_, *form_list[0], false);
1163 } 1122 }
1164 1123
1165 void NativeBackendKWalletPickleTest::CheckVersion0Pickle( 1124 void NativeBackendKWalletPickleTest::CheckVersion0Pickle(
1166 bool size_32, PasswordForm::Scheme scheme) { 1125 bool size_32, PasswordForm::Scheme scheme) {
1167 Pickle pickle; 1126 Pickle pickle;
1168 PasswordForm form = old_form_google_; 1127 PasswordForm form = old_form_google_;
1169 form.scheme = scheme; 1128 form.scheme = scheme;
1170 CreateVersion0Pickle(size_32, form, &pickle); 1129 CreateVersion0Pickle(size_32, form, &pickle);
1171 ScopedVector<autofill::PasswordForm> form_list; 1130 ScopedVector<autofill::PasswordForm> form_list =
1172 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, 1131 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1173 pickle, &form_list);
1174 EXPECT_EQ(1u, form_list.size()); 1132 EXPECT_EQ(1u, form_list.size());
1175 if (form_list.size() > 0) 1133 if (form_list.size() > 0)
1176 CheckPasswordForm(form, *form_list[0], false); 1134 CheckPasswordForm(form, *form_list[0], false);
1177 } 1135 }
1178 1136
1179 // Check that if KWallet fails to respond, the backend propagates the error. 1137 // Check that if KWallet fails to respond, the backend propagates the error.
1180 TEST_F(NativeBackendKWalletTest, GetAllLoginsErrorHandling) { 1138 TEST_F(NativeBackendKWalletTest, GetAllLoginsErrorHandling) {
1181 NativeBackendKWalletStub backend(42); 1139 NativeBackendKWalletStub backend(42);
1182 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); 1140 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_));
1183 // Make KWallet fail on calling readEntry. 1141 // Make KWallet fail on calling readEntry.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 CheckVersion3Pickle(); 1192 CheckVersion3Pickle();
1235 } 1193 }
1236 1194
1237 TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) { 1195 TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) {
1238 CheckVersion5Pickle(); 1196 CheckVersion5Pickle();
1239 } 1197 }
1240 1198
1241 TEST_F(NativeBackendKWalletPickleTest, CheckVersion6Pickle) { 1199 TEST_F(NativeBackendKWalletPickleTest, CheckVersion6Pickle) {
1242 CheckVersion6Pickle(); 1200 CheckVersion6Pickle();
1243 } 1201 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698