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 <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 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
150 protected: | 150 protected: |
151 NativeBackendKWalletTestBase() { | 151 NativeBackendKWalletTestBase() { |
152 old_form_google_.origin = GURL("http://www.google.com/"); | 152 old_form_google_.origin = GURL("http://www.google.com/"); |
153 old_form_google_.action = GURL("http://www.google.com/login"); | 153 old_form_google_.action = GURL("http://www.google.com/login"); |
154 old_form_google_.username_element = UTF8ToUTF16("user"); | 154 old_form_google_.username_element = UTF8ToUTF16("user"); |
155 old_form_google_.username_value = UTF8ToUTF16("joeschmoe"); | 155 old_form_google_.username_value = UTF8ToUTF16("joeschmoe"); |
156 old_form_google_.password_element = UTF8ToUTF16("pass"); | 156 old_form_google_.password_element = UTF8ToUTF16("pass"); |
157 old_form_google_.password_value = UTF8ToUTF16("seekrit"); | 157 old_form_google_.password_value = UTF8ToUTF16("seekrit"); |
158 old_form_google_.submit_element = UTF8ToUTF16("submit"); | 158 old_form_google_.submit_element = UTF8ToUTF16("submit"); |
159 old_form_google_.signon_realm = "Google"; | 159 old_form_google_.signon_realm = "Google"; |
160 old_form_google_.date_created = base::Time::Now(); | |
160 | 161 |
161 form_google_ = old_form_google_; | 162 form_google_ = old_form_google_; |
162 form_google_.times_used = 3; | 163 form_google_.times_used = 3; |
163 form_google_.type = PasswordForm::TYPE_GENERATED; | 164 form_google_.type = PasswordForm::TYPE_GENERATED; |
164 form_google_.form_data.name = UTF8ToUTF16("form_name"); | 165 form_google_.form_data.name = UTF8ToUTF16("form_name"); |
165 form_google_.form_data.user_submitted = true; | 166 form_google_.form_data.user_submitted = true; |
166 form_google_.date_synced = base::Time::Now(); | 167 form_google_.date_synced = base::Time::Now(); |
168 form_google_.date_created = old_form_google_.date_created; | |
167 form_google_.display_name = UTF8ToUTF16("Joe Schmoe"); | 169 form_google_.display_name = UTF8ToUTF16("Joe Schmoe"); |
168 form_google_.avatar_url = GURL("http://www.google.com/avatar"); | 170 form_google_.avatar_url = GURL("http://www.google.com/avatar"); |
169 form_google_.federation_url = GURL("http://www.google.com/federation_url"); | 171 form_google_.federation_url = GURL("http://www.google.com/federation_url"); |
170 form_google_.is_zero_click = true; | 172 form_google_.is_zero_click = true; |
171 | 173 |
172 form_isc_.origin = GURL("http://www.isc.org/"); | 174 form_isc_.origin = GURL("http://www.isc.org/"); |
173 form_isc_.action = GURL("http://www.isc.org/auth"); | 175 form_isc_.action = GURL("http://www.isc.org/auth"); |
174 form_isc_.username_element = UTF8ToUTF16("id"); | 176 form_isc_.username_element = UTF8ToUTF16("id"); |
175 form_isc_.username_value = UTF8ToUTF16("janedoe"); | 177 form_isc_.username_value = UTF8ToUTF16("janedoe"); |
176 form_isc_.password_element = UTF8ToUTF16("passwd"); | 178 form_isc_.password_element = UTF8ToUTF16("passwd"); |
177 form_isc_.password_value = UTF8ToUTF16("ihazabukkit"); | 179 form_isc_.password_value = UTF8ToUTF16("ihazabukkit"); |
178 form_isc_.submit_element = UTF8ToUTF16("login"); | 180 form_isc_.submit_element = UTF8ToUTF16("login"); |
179 form_isc_.signon_realm = "ISC"; | 181 form_isc_.signon_realm = "ISC"; |
180 form_isc_.date_synced = base::Time::Now(); | 182 form_isc_.date_synced = base::Time::Now(); |
183 form_isc_.date_created = base::Time::Now(); | |
181 } | 184 } |
182 | 185 |
183 static void CheckPasswordForm(const PasswordForm& expected, | 186 static void CheckPasswordForm(const PasswordForm& expected, |
184 const PasswordForm& actual); | 187 const PasswordForm& actual, |
188 int version); | |
185 static void CheckPasswordChanges(const PasswordStoreChangeList& expected, | 189 static void CheckPasswordChanges(const PasswordStoreChangeList& expected, |
186 const PasswordStoreChangeList& actual); | 190 const PasswordStoreChangeList& actual); |
187 static void CheckPasswordChangesWithResult( | 191 static void CheckPasswordChangesWithResult( |
188 const PasswordStoreChangeList* expected, | 192 const PasswordStoreChangeList* expected, |
189 const PasswordStoreChangeList* actual, | 193 const PasswordStoreChangeList* actual, |
190 bool result); | 194 bool result); |
191 | 195 |
192 PasswordForm old_form_google_; | 196 PasswordForm old_form_google_; |
193 PasswordForm form_google_; | 197 PasswordForm form_google_; |
194 PasswordForm form_isc_; | 198 PasswordForm form_isc_; |
195 }; | 199 }; |
196 | 200 |
197 // static | 201 // static |
198 void NativeBackendKWalletTestBase::CheckPasswordForm( | 202 void NativeBackendKWalletTestBase::CheckPasswordForm( |
199 const PasswordForm& expected, const PasswordForm& actual) { | 203 const PasswordForm& expected, |
204 const PasswordForm& actual, | |
205 int version) { | |
vabr (Chromium)
2015/02/03 16:06:42
I suggest adding a flag saying whether the date is
dvadym
2015/02/04 10:40:25
Done.
| |
200 EXPECT_EQ(expected.origin, actual.origin); | 206 EXPECT_EQ(expected.origin, actual.origin); |
201 EXPECT_EQ(expected.password_value, actual.password_value); | 207 EXPECT_EQ(expected.password_value, actual.password_value); |
202 EXPECT_EQ(expected.action, actual.action); | 208 EXPECT_EQ(expected.action, actual.action); |
203 EXPECT_EQ(expected.username_element, actual.username_element); | 209 EXPECT_EQ(expected.username_element, actual.username_element); |
204 EXPECT_EQ(expected.username_value, actual.username_value); | 210 EXPECT_EQ(expected.username_value, actual.username_value); |
205 EXPECT_EQ(expected.password_element, actual.password_element); | 211 EXPECT_EQ(expected.password_element, actual.password_element); |
206 EXPECT_EQ(expected.submit_element, actual.submit_element); | 212 EXPECT_EQ(expected.submit_element, actual.submit_element); |
207 EXPECT_EQ(expected.signon_realm, actual.signon_realm); | 213 EXPECT_EQ(expected.signon_realm, actual.signon_realm); |
208 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid); | 214 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid); |
209 EXPECT_EQ(expected.preferred, actual.preferred); | 215 EXPECT_EQ(expected.preferred, actual.preferred); |
216 if (version > 4) { | |
217 EXPECT_EQ(expected.date_created, actual.date_created); | |
218 } else { | |
210 // We don't check the date created. It varies. | 219 // We don't check the date created. It varies. |
220 } | |
211 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); | 221 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); |
212 EXPECT_EQ(expected.type, actual.type); | 222 EXPECT_EQ(expected.type, actual.type); |
213 EXPECT_EQ(expected.times_used, actual.times_used); | 223 EXPECT_EQ(expected.times_used, actual.times_used); |
214 EXPECT_EQ(expected.scheme, actual.scheme); | 224 EXPECT_EQ(expected.scheme, actual.scheme); |
215 EXPECT_EQ(expected.date_synced, actual.date_synced); | 225 EXPECT_EQ(expected.date_synced, actual.date_synced); |
216 EXPECT_EQ(expected.display_name, actual.display_name); | 226 EXPECT_EQ(expected.display_name, actual.display_name); |
217 EXPECT_EQ(expected.avatar_url, actual.avatar_url); | 227 EXPECT_EQ(expected.avatar_url, actual.avatar_url); |
218 EXPECT_EQ(expected.federation_url, actual.federation_url); | 228 EXPECT_EQ(expected.federation_url, actual.federation_url); |
219 EXPECT_EQ(expected.is_zero_click, actual.is_zero_click); | 229 EXPECT_EQ(expected.is_zero_click, actual.is_zero_click); |
220 } | 230 } |
221 | 231 |
222 // static | 232 // static |
223 void NativeBackendKWalletTestBase::CheckPasswordChanges( | 233 void NativeBackendKWalletTestBase::CheckPasswordChanges( |
224 const PasswordStoreChangeList& expected, | 234 const PasswordStoreChangeList& expected, |
225 const PasswordStoreChangeList& actual) { | 235 const PasswordStoreChangeList& actual) { |
226 ASSERT_EQ(expected.size(), actual.size()); | 236 ASSERT_EQ(expected.size(), actual.size()); |
227 for (size_t i = 0; i < expected.size(); ++i) { | 237 for (size_t i = 0; i < expected.size(); ++i) { |
228 EXPECT_EQ(expected[i].type(), actual[i].type()); | 238 EXPECT_EQ(expected[i].type(), actual[i].type()); |
229 CheckPasswordForm(expected[i].form(), actual[i].form()); | 239 CheckPasswordForm(expected[i].form(), actual[i].form(), 5); |
230 } | 240 } |
231 } | 241 } |
232 | 242 |
233 // static | 243 // static |
234 void NativeBackendKWalletTestBase::CheckPasswordChangesWithResult( | 244 void NativeBackendKWalletTestBase::CheckPasswordChangesWithResult( |
235 const PasswordStoreChangeList* expected, | 245 const PasswordStoreChangeList* expected, |
236 const PasswordStoreChangeList* actual, | 246 const PasswordStoreChangeList* actual, |
237 bool result) { | 247 bool result) { |
238 EXPECT_TRUE(result); | 248 EXPECT_TRUE(result); |
239 CheckPasswordChanges(*expected, *actual); | 249 CheckPasswordChanges(*expected, *actual); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
358 NativeBackendKWalletStub backend(42); | 368 NativeBackendKWalletStub backend(42); |
359 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 369 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
360 | 370 |
361 form_google_.date_synced = base::Time(); | 371 form_google_.date_synced = base::Time(); |
362 form_isc_.date_synced = base::Time(); | 372 form_isc_.date_synced = base::Time(); |
363 form_google_.date_created = base::Time(); | 373 form_google_.date_created = base::Time(); |
364 form_isc_.date_created = base::Time(); | 374 form_isc_.date_created = base::Time(); |
365 base::Time now = base::Time::Now(); | 375 base::Time now = base::Time::Now(); |
366 base::Time next_day = now + base::TimeDelta::FromDays(1); | 376 base::Time next_day = now + base::TimeDelta::FromDays(1); |
367 if (date_to_test == CREATED) { | 377 if (date_to_test == CREATED) { |
368 // crbug/374132. Remove the next line once it's fixed. | |
369 next_day = base::Time::FromTimeT(next_day.ToTimeT()); | |
370 form_google_.date_created = now; | 378 form_google_.date_created = now; |
371 form_isc_.date_created = next_day; | 379 form_isc_.date_created = next_day; |
372 } else { | 380 } else { |
373 form_google_.date_synced = now; | 381 form_google_.date_synced = now; |
374 form_isc_.date_synced = next_day; | 382 form_isc_.date_synced = next_day; |
375 } | 383 } |
376 | 384 |
377 BrowserThread::PostTask( | 385 BrowserThread::PostTask( |
378 BrowserThread::DB, | 386 BrowserThread::DB, |
379 FROM_HERE, | 387 FROM_HERE, |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
597 for (size_t i = 0; i < entries.size() && i < sorted_expected.size(); ++i) { | 605 for (size_t i = 0; i < entries.size() && i < sorted_expected.size(); ++i) { |
598 EXPECT_EQ(sorted_expected[i].first, entries[i]); | 606 EXPECT_EQ(sorted_expected[i].first, entries[i]); |
599 TestKWallet::Blob value; | 607 TestKWallet::Blob value; |
600 EXPECT_TRUE(wallet_.readEntry(folder, entries[i], &value)); | 608 EXPECT_TRUE(wallet_.readEntry(folder, entries[i], &value)); |
601 Pickle pickle(reinterpret_cast<const char*>(value.data()), value.size()); | 609 Pickle pickle(reinterpret_cast<const char*>(value.data()), value.size()); |
602 ScopedVector<autofill::PasswordForm> forms; | 610 ScopedVector<autofill::PasswordForm> forms; |
603 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle, &forms); | 611 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle, &forms); |
604 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second; | 612 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second; |
605 EXPECT_EQ(expect.size(), forms.size()); | 613 EXPECT_EQ(expect.size(), forms.size()); |
606 for (size_t j = 0; j < forms.size() && j < expect.size(); ++j) | 614 for (size_t j = 0; j < forms.size() && j < expect.size(); ++j) |
607 CheckPasswordForm(*expect[j], *forms[j]); | 615 CheckPasswordForm(*expect[j], *forms[j], 5); |
608 } | 616 } |
609 } | 617 } |
610 | 618 |
611 TEST_F(NativeBackendKWalletTest, NotEnabled) { | 619 TEST_F(NativeBackendKWalletTest, NotEnabled) { |
612 NativeBackendKWalletStub kwallet(42); | 620 NativeBackendKWalletStub kwallet(42); |
613 kwallet_enabled_ = false; | 621 kwallet_enabled_ = false; |
614 EXPECT_FALSE(kwallet.InitWithBus(mock_session_bus_)); | 622 EXPECT_FALSE(kwallet.InitWithBus(mock_session_bus_)); |
615 EXPECT_FALSE(klauncher_contacted_); | 623 EXPECT_FALSE(klauncher_contacted_); |
616 } | 624 } |
617 | 625 |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
916 | 924 |
917 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { | 925 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { |
918 TestRemoveLoginsBetween(SYNCED); | 926 TestRemoveLoginsBetween(SYNCED); |
919 } | 927 } |
920 | 928 |
921 // TODO(mdm): add more basic tests here at some point. | 929 // TODO(mdm): add more basic tests here at some point. |
922 // (For example tests for storing >1 password per realm pickle.) | 930 // (For example tests for storing >1 password per realm pickle.) |
923 | 931 |
924 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { | 932 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { |
925 protected: | 933 protected: |
934 void CreateVersion5Pickle(const PasswordForm& form, Pickle* pickle); | |
926 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); | 935 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); |
927 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); | 936 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); |
928 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); | 937 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); |
929 void CreateVersion0Pickle(bool size_32, | 938 void CreateVersion0Pickle(bool size_32, |
930 const PasswordForm& form, | 939 const PasswordForm& form, |
931 Pickle* pickle); | 940 Pickle* pickle); |
941 void CheckVersion5Pickle(); | |
932 void CheckVersion3Pickle(); | 942 void CheckVersion3Pickle(); |
933 void CheckVersion2Pickle(); | 943 void CheckVersion2Pickle(); |
934 void CheckVersion1Pickle(); | 944 void CheckVersion1Pickle(); |
935 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); | 945 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); |
936 | 946 |
937 private: | 947 private: |
938 void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle); | 948 void CreatePickle(bool size_32, |
949 bool date_created_internal, | |
vabr (Chromium)
2015/02/03 16:06:42
Please add a comment explaining the arguments, in
dvadym
2015/02/04 10:40:25
Done.
| |
950 const PasswordForm& form, | |
951 Pickle* pickle); | |
939 }; | 952 }; |
940 | 953 |
954 void NativeBackendKWalletPickleTest::CreateVersion5Pickle( | |
955 const PasswordForm& form, | |
956 Pickle* pickle) { | |
957 pickle->WriteInt(5); | |
958 CreatePickle(false, true, form, pickle); | |
959 pickle->WriteInt(form.type); | |
960 pickle->WriteInt(form.times_used); | |
961 autofill::SerializeFormData(form.form_data, pickle); | |
962 pickle->WriteInt64(form.date_synced.ToInternalValue()); | |
963 } | |
964 | |
941 void NativeBackendKWalletPickleTest::CreateVersion3Pickle( | 965 void NativeBackendKWalletPickleTest::CreateVersion3Pickle( |
942 const PasswordForm& form, Pickle* pickle) { | 966 const PasswordForm& form, Pickle* pickle) { |
943 pickle->WriteInt(3); | 967 pickle->WriteInt(3); |
944 CreatePickle(false, form, pickle); | 968 CreatePickle(false, false, form, pickle); |
945 pickle->WriteInt(form.type); | 969 pickle->WriteInt(form.type); |
946 pickle->WriteInt(form.times_used); | 970 pickle->WriteInt(form.times_used); |
947 autofill::SerializeFormData(form.form_data, pickle); | 971 autofill::SerializeFormData(form.form_data, pickle); |
948 pickle->WriteInt64(form.date_synced.ToInternalValue()); | 972 pickle->WriteInt64(form.date_synced.ToInternalValue()); |
949 } | 973 } |
950 | 974 |
951 void NativeBackendKWalletPickleTest::CreateVersion2Pickle( | 975 void NativeBackendKWalletPickleTest::CreateVersion2Pickle( |
952 const PasswordForm& form, Pickle* pickle) { | 976 const PasswordForm& form, Pickle* pickle) { |
953 pickle->WriteInt(2); | 977 pickle->WriteInt(2); |
954 CreatePickle(false, form, pickle); | 978 CreatePickle(false, false, form, pickle); |
955 pickle->WriteInt(form.type); | 979 pickle->WriteInt(form.type); |
956 pickle->WriteInt(form.times_used); | 980 pickle->WriteInt(form.times_used); |
957 autofill::SerializeFormData(form.form_data, pickle); | 981 autofill::SerializeFormData(form.form_data, pickle); |
958 } | 982 } |
959 | 983 |
960 void NativeBackendKWalletPickleTest::CreateVersion1Pickle( | 984 void NativeBackendKWalletPickleTest::CreateVersion1Pickle( |
961 const PasswordForm& form, Pickle* pickle) { | 985 const PasswordForm& form, Pickle* pickle) { |
962 pickle->WriteInt(1); | 986 pickle->WriteInt(1); |
963 CreatePickle(false, form, pickle); | 987 CreatePickle(false, false, form, pickle); |
964 } | 988 } |
965 | 989 |
966 void NativeBackendKWalletPickleTest::CreateVersion0Pickle( | 990 void NativeBackendKWalletPickleTest::CreateVersion0Pickle( |
967 bool size_32, const PasswordForm& form, Pickle* pickle) { | 991 bool size_32, const PasswordForm& form, Pickle* pickle) { |
968 pickle->WriteInt(0); | 992 pickle->WriteInt(0); |
969 CreatePickle(size_32, form, pickle); | 993 CreatePickle(size_32, false, form, pickle); |
970 } | 994 } |
971 | 995 |
972 void NativeBackendKWalletPickleTest::CreatePickle( | 996 void NativeBackendKWalletPickleTest::CreatePickle(bool size_32, |
973 bool size_32, const PasswordForm& form, Pickle* pickle) { | 997 bool date_created_internal, |
998 const PasswordForm& form, | |
999 Pickle* pickle) { | |
974 if (size_32) | 1000 if (size_32) |
975 pickle->WriteUInt32(1); // Size of form list. 32 bits. | 1001 pickle->WriteUInt32(1); // Size of form list. 32 bits. |
976 else | 1002 else |
977 pickle->WriteSizeT(1); // Size of form list. 64 bits. | 1003 pickle->WriteSizeT(1); // Size of form list. 64 bits. |
978 pickle->WriteInt(form.scheme); | 1004 pickle->WriteInt(form.scheme); |
979 pickle->WriteString(form.origin.spec()); | 1005 pickle->WriteString(form.origin.spec()); |
980 pickle->WriteString(form.action.spec()); | 1006 pickle->WriteString(form.action.spec()); |
981 pickle->WriteString16(form.username_element); | 1007 pickle->WriteString16(form.username_element); |
982 pickle->WriteString16(form.username_value); | 1008 pickle->WriteString16(form.username_value); |
983 pickle->WriteString16(form.password_element); | 1009 pickle->WriteString16(form.password_element); |
984 pickle->WriteString16(form.password_value); | 1010 pickle->WriteString16(form.password_value); |
985 pickle->WriteString16(form.submit_element); | 1011 pickle->WriteString16(form.submit_element); |
986 pickle->WriteBool(form.ssl_valid); | 1012 pickle->WriteBool(form.ssl_valid); |
987 pickle->WriteBool(form.preferred); | 1013 pickle->WriteBool(form.preferred); |
988 pickle->WriteBool(form.blacklisted_by_user); | 1014 pickle->WriteBool(form.blacklisted_by_user); |
989 pickle->WriteInt64(form.date_created.ToTimeT()); | 1015 if (date_created_internal) |
1016 pickle->WriteInt64(form.date_created.ToInternalValue()); | |
1017 else | |
1018 pickle->WriteInt64(form.date_created.ToTimeT()); | |
1019 } | |
1020 | |
1021 void NativeBackendKWalletPickleTest::CheckVersion5Pickle() { | |
1022 Pickle pickle; | |
1023 PasswordForm form = form_google_; | |
1024 CreateVersion5Pickle(form, &pickle); | |
1025 | |
1026 ScopedVector<PasswordForm> form_list; | |
1027 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, | |
1028 &form_list); | |
1029 | |
1030 EXPECT_EQ(1u, form_list.size()); | |
1031 if (form_list.size() > 0) | |
1032 CheckPasswordForm(form, *form_list[0], 5); | |
990 } | 1033 } |
991 | 1034 |
992 void NativeBackendKWalletPickleTest::CheckVersion3Pickle() { | 1035 void NativeBackendKWalletPickleTest::CheckVersion3Pickle() { |
993 Pickle pickle; | 1036 Pickle pickle; |
994 PasswordForm form = form_google_; | 1037 PasswordForm form = form_google_; |
995 // Remove the fields which were not present in version #3. | 1038 // Remove the fields which were not present in version #3. |
996 form.display_name.clear(); | 1039 form.display_name.clear(); |
997 form.avatar_url = GURL(); | 1040 form.avatar_url = GURL(); |
998 form.federation_url = GURL(); | 1041 form.federation_url = GURL(); |
999 form.is_zero_click = false; | 1042 form.is_zero_click = false; |
1000 CreateVersion3Pickle(form, &pickle); | 1043 CreateVersion3Pickle(form, &pickle); |
1001 | 1044 |
1002 ScopedVector<PasswordForm> form_list; | 1045 ScopedVector<PasswordForm> form_list; |
1003 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, | 1046 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, |
1004 &form_list); | 1047 &form_list); |
1005 | 1048 |
1006 EXPECT_EQ(1u, form_list.size()); | 1049 EXPECT_EQ(1u, form_list.size()); |
1007 if (form_list.size() > 0) | 1050 if (form_list.size() > 0) |
1008 CheckPasswordForm(form, *form_list[0]); | 1051 CheckPasswordForm(form, *form_list[0], 3); |
1009 } | 1052 } |
1010 | 1053 |
1011 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() { | 1054 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() { |
1012 Pickle pickle; | 1055 Pickle pickle; |
1013 PasswordForm form = old_form_google_; | 1056 PasswordForm form = old_form_google_; |
1014 form.times_used = form_google_.times_used; | 1057 form.times_used = form_google_.times_used; |
1015 form.type = form_google_.type; | 1058 form.type = form_google_.type; |
1016 form.form_data = form_google_.form_data; | 1059 form.form_data = form_google_.form_data; |
1017 CreateVersion2Pickle(form, &pickle); | 1060 CreateVersion2Pickle(form, &pickle); |
1018 | 1061 |
1019 ScopedVector<PasswordForm> form_list; | 1062 ScopedVector<PasswordForm> form_list; |
1020 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, | 1063 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, |
1021 &form_list); | 1064 &form_list); |
1022 | 1065 |
1023 EXPECT_EQ(1u, form_list.size()); | 1066 EXPECT_EQ(1u, form_list.size()); |
1024 if (form_list.size() > 0) | 1067 if (form_list.size() > 0) |
1025 CheckPasswordForm(form, *form_list[0]); | 1068 CheckPasswordForm(form, *form_list[0], 2); |
1026 } | 1069 } |
1027 | 1070 |
1028 // Make sure that we can still read version 1 pickles. | 1071 // Make sure that we can still read version 1 pickles. |
1029 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() { | 1072 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() { |
1030 Pickle pickle; | 1073 Pickle pickle; |
1031 PasswordForm form = form_google_; | 1074 PasswordForm form = form_google_; |
1032 CreateVersion1Pickle(form, &pickle); | 1075 CreateVersion1Pickle(form, &pickle); |
1033 | 1076 |
1034 ScopedVector<autofill::PasswordForm> form_list; | 1077 ScopedVector<autofill::PasswordForm> form_list; |
1035 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, | 1078 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, |
1036 pickle, &form_list); | 1079 pickle, &form_list); |
1037 | 1080 |
1038 // This will match |old_form_google_| because not all the fields present in | 1081 // This will match |old_form_google_| because not all the fields present in |
1039 // |form_google_| will be deserialized. | 1082 // |form_google_| will be deserialized. |
1040 EXPECT_EQ(1u, form_list.size()); | 1083 EXPECT_EQ(1u, form_list.size()); |
1041 if (form_list.size() > 0) | 1084 if (form_list.size() > 0) |
1042 CheckPasswordForm(old_form_google_, *form_list[0]); | 1085 CheckPasswordForm(old_form_google_, *form_list[0], 1); |
1043 } | 1086 } |
1044 | 1087 |
1045 void NativeBackendKWalletPickleTest::CheckVersion0Pickle( | 1088 void NativeBackendKWalletPickleTest::CheckVersion0Pickle( |
1046 bool size_32, PasswordForm::Scheme scheme) { | 1089 bool size_32, PasswordForm::Scheme scheme) { |
1047 Pickle pickle; | 1090 Pickle pickle; |
1048 PasswordForm form = old_form_google_; | 1091 PasswordForm form = old_form_google_; |
1049 form.scheme = scheme; | 1092 form.scheme = scheme; |
1050 CreateVersion0Pickle(size_32, form, &pickle); | 1093 CreateVersion0Pickle(size_32, form, &pickle); |
1051 ScopedVector<autofill::PasswordForm> form_list; | 1094 ScopedVector<autofill::PasswordForm> form_list; |
1052 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, | 1095 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, |
1053 pickle, &form_list); | 1096 pickle, &form_list); |
1054 EXPECT_EQ(1u, form_list.size()); | 1097 EXPECT_EQ(1u, form_list.size()); |
1055 if (form_list.size() > 0) | 1098 if (form_list.size() > 0) |
1056 CheckPasswordForm(form, *form_list[0]); | 1099 CheckPasswordForm(form, *form_list[0], 0); |
1057 } | 1100 } |
1058 | 1101 |
1059 // Check that if KWallet fails to respond, the backend propagates the error. | 1102 // Check that if KWallet fails to respond, the backend propagates the error. |
1060 TEST_F(NativeBackendKWalletTest, GetAllLoginsErrorHandling) { | 1103 TEST_F(NativeBackendKWalletTest, GetAllLoginsErrorHandling) { |
1061 NativeBackendKWalletStub backend(42); | 1104 NativeBackendKWalletStub backend(42); |
1062 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 1105 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
1063 // Make KWallet fail on calling readEntry. | 1106 // Make KWallet fail on calling readEntry. |
1064 failing_methods_.insert("readEntry"); | 1107 failing_methods_.insert("readEntry"); |
1065 | 1108 |
1066 // Store some non-blacklisted logins to be potentially returned. | 1109 // Store some non-blacklisted logins to be potentially returned. |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1106 CheckVersion1Pickle(); | 1149 CheckVersion1Pickle(); |
1107 } | 1150 } |
1108 | 1151 |
1109 TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) { | 1152 TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) { |
1110 CheckVersion2Pickle(); | 1153 CheckVersion2Pickle(); |
1111 } | 1154 } |
1112 | 1155 |
1113 TEST_F(NativeBackendKWalletPickleTest, CheckVersion3Pickle) { | 1156 TEST_F(NativeBackendKWalletPickleTest, CheckVersion3Pickle) { |
1114 CheckVersion3Pickle(); | 1157 CheckVersion3Pickle(); |
1115 } | 1158 } |
1159 | |
1160 TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) { | |
1161 CheckVersion3Pickle(); | |
vabr (Chromium)
2015/02/03 16:06:42
3->5
dvadym
2015/02/04 10:40:25
Done.
| |
1162 } | |
OLD | NEW |