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 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 } | 218 } |
219 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); | 219 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); |
220 EXPECT_EQ(expected.type, actual.type); | 220 EXPECT_EQ(expected.type, actual.type); |
221 EXPECT_EQ(expected.times_used, actual.times_used); | 221 EXPECT_EQ(expected.times_used, actual.times_used); |
222 EXPECT_EQ(expected.scheme, actual.scheme); | 222 EXPECT_EQ(expected.scheme, actual.scheme); |
223 EXPECT_EQ(expected.date_synced, actual.date_synced); | 223 EXPECT_EQ(expected.date_synced, actual.date_synced); |
224 EXPECT_EQ(expected.display_name, actual.display_name); | 224 EXPECT_EQ(expected.display_name, actual.display_name); |
225 EXPECT_EQ(expected.avatar_url, actual.avatar_url); | 225 EXPECT_EQ(expected.avatar_url, actual.avatar_url); |
226 EXPECT_EQ(expected.federation_url, actual.federation_url); | 226 EXPECT_EQ(expected.federation_url, actual.federation_url); |
227 EXPECT_EQ(expected.skip_zero_click, actual.skip_zero_click); | 227 EXPECT_EQ(expected.skip_zero_click, actual.skip_zero_click); |
| 228 EXPECT_EQ(expected.generation_upload_status, actual.generation_upload_status); |
228 } | 229 } |
229 | 230 |
230 // static | 231 // static |
231 void NativeBackendKWalletTestBase::CheckPasswordChanges( | 232 void NativeBackendKWalletTestBase::CheckPasswordChanges( |
232 const PasswordStoreChangeList& expected, | 233 const PasswordStoreChangeList& expected, |
233 const PasswordStoreChangeList& actual) { | 234 const PasswordStoreChangeList& actual) { |
234 ASSERT_EQ(expected.size(), actual.size()); | 235 ASSERT_EQ(expected.size(), actual.size()); |
235 for (size_t i = 0; i < expected.size(); ++i) { | 236 for (size_t i = 0; i < expected.size(); ++i) { |
236 EXPECT_EQ(expected[i].type(), actual[i].type()); | 237 EXPECT_EQ(expected[i].type(), actual[i].type()); |
237 CheckPasswordForm(expected[i].form(), actual[i].form(), true); | 238 CheckPasswordForm(expected[i].form(), actual[i].form(), true); |
(...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
958 | 959 |
959 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { | 960 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { |
960 TestRemoveLoginsBetween(SYNCED); | 961 TestRemoveLoginsBetween(SYNCED); |
961 } | 962 } |
962 | 963 |
963 // TODO(mdm): add more basic tests here at some point. | 964 // TODO(mdm): add more basic tests here at some point. |
964 // (For example tests for storing >1 password per realm pickle.) | 965 // (For example tests for storing >1 password per realm pickle.) |
965 | 966 |
966 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { | 967 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { |
967 protected: | 968 protected: |
| 969 void CreateVersion6Pickle(const PasswordForm& form, Pickle* pickle); |
968 void CreateVersion5Pickle(const PasswordForm& form, Pickle* pickle); | 970 void CreateVersion5Pickle(const PasswordForm& form, Pickle* pickle); |
969 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); | 971 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); |
970 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); | 972 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); |
971 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); | 973 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); |
972 void CreateVersion0Pickle(bool size_32, | 974 void CreateVersion0Pickle(bool size_32, |
973 const PasswordForm& form, | 975 const PasswordForm& form, |
974 Pickle* pickle); | 976 Pickle* pickle); |
| 977 void CheckVersion6Pickle(); |
975 void CheckVersion5Pickle(); | 978 void CheckVersion5Pickle(); |
976 void CheckVersion3Pickle(); | 979 void CheckVersion3Pickle(); |
977 void CheckVersion2Pickle(); | 980 void CheckVersion2Pickle(); |
978 void CheckVersion1Pickle(); | 981 void CheckVersion1Pickle(); |
979 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); | 982 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); |
980 | 983 |
981 private: | 984 private: |
982 // Creates a Pickle from |form|. If |size_32| is true, stores the number of | 985 // Creates a Pickle from |form|. If |size_32| is true, stores the number of |
983 // forms in the pickle as a 32bit uint, otherwise as 64 bit size_t. The latter | 986 // forms in the pickle as a 32bit uint, otherwise as 64 bit size_t. The latter |
984 // should be the case for versions > 0. If |date_created_internal| is true, | 987 // should be the case for versions > 0. If |date_created_internal| is true, |
985 // stores |date_created| as base::Time's internal value, otherwise as time_t. | 988 // stores |date_created| as base::Time's internal value, otherwise as time_t. |
986 void CreatePickle(bool size_32, | 989 void CreatePickle(bool size_32, |
987 bool date_created_internal, | 990 bool date_created_internal, |
988 const PasswordForm& form, | 991 const PasswordForm& form, |
989 Pickle* pickle); | 992 Pickle* pickle); |
990 }; | 993 }; |
991 | 994 |
| 995 void NativeBackendKWalletPickleTest::CreateVersion6Pickle( |
| 996 const PasswordForm& form, |
| 997 Pickle* pickle) { |
| 998 pickle->WriteInt(6); |
| 999 CreatePickle(false, true, form, pickle); |
| 1000 pickle->WriteInt(form.type); |
| 1001 pickle->WriteInt(form.times_used); |
| 1002 autofill::SerializeFormData(form.form_data, pickle); |
| 1003 pickle->WriteInt64(form.date_synced.ToInternalValue()); |
| 1004 pickle->WriteString16(form.display_name); |
| 1005 pickle->WriteString(form.avatar_url.spec()); |
| 1006 pickle->WriteString(form.federation_url.spec()); |
| 1007 pickle->WriteBool(form.skip_zero_click); |
| 1008 pickle->WriteInt(form.generation_upload_status); |
| 1009 } |
| 1010 |
992 void NativeBackendKWalletPickleTest::CreateVersion5Pickle( | 1011 void NativeBackendKWalletPickleTest::CreateVersion5Pickle( |
993 const PasswordForm& form, | 1012 const PasswordForm& form, |
994 Pickle* pickle) { | 1013 Pickle* pickle) { |
995 pickle->WriteInt(5); | 1014 pickle->WriteInt(5); |
996 CreatePickle(false, true, form, pickle); | 1015 CreatePickle(false, true, form, pickle); |
997 pickle->WriteInt(form.type); | 1016 pickle->WriteInt(form.type); |
998 pickle->WriteInt(form.times_used); | 1017 pickle->WriteInt(form.times_used); |
999 autofill::SerializeFormData(form.form_data, pickle); | 1018 autofill::SerializeFormData(form.form_data, pickle); |
1000 pickle->WriteInt64(form.date_synced.ToInternalValue()); | 1019 pickle->WriteInt64(form.date_synced.ToInternalValue()); |
1001 pickle->WriteString16(form.display_name); | 1020 pickle->WriteString16(form.display_name); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1053 pickle->WriteString16(form.submit_element); | 1072 pickle->WriteString16(form.submit_element); |
1054 pickle->WriteBool(form.ssl_valid); | 1073 pickle->WriteBool(form.ssl_valid); |
1055 pickle->WriteBool(form.preferred); | 1074 pickle->WriteBool(form.preferred); |
1056 pickle->WriteBool(form.blacklisted_by_user); | 1075 pickle->WriteBool(form.blacklisted_by_user); |
1057 if (date_created_internal) | 1076 if (date_created_internal) |
1058 pickle->WriteInt64(form.date_created.ToInternalValue()); | 1077 pickle->WriteInt64(form.date_created.ToInternalValue()); |
1059 else | 1078 else |
1060 pickle->WriteInt64(form.date_created.ToTimeT()); | 1079 pickle->WriteInt64(form.date_created.ToTimeT()); |
1061 } | 1080 } |
1062 | 1081 |
| 1082 void NativeBackendKWalletPickleTest::CheckVersion6Pickle() { |
| 1083 Pickle pickle; |
| 1084 PasswordForm form = form_google_; |
| 1085 form.generation_upload_status = PasswordForm::NEGATIVE_SIGNAL_SENT; |
| 1086 CreateVersion6Pickle(form, &pickle); |
| 1087 |
| 1088 ScopedVector<PasswordForm> form_list; |
| 1089 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, |
| 1090 &form_list); |
| 1091 |
| 1092 EXPECT_EQ(1u, form_list.size()); |
| 1093 if (form_list.size() > 0) |
| 1094 CheckPasswordForm(form, *form_list[0], true); |
| 1095 |
| 1096 } |
| 1097 |
1063 void NativeBackendKWalletPickleTest::CheckVersion5Pickle() { | 1098 void NativeBackendKWalletPickleTest::CheckVersion5Pickle() { |
1064 Pickle pickle; | 1099 Pickle pickle; |
1065 PasswordForm form = form_google_; | 1100 PasswordForm form = form_google_; |
1066 CreateVersion5Pickle(form, &pickle); | 1101 CreateVersion5Pickle(form, &pickle); |
1067 | 1102 |
1068 ScopedVector<PasswordForm> form_list; | 1103 ScopedVector<PasswordForm> form_list; |
1069 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, | 1104 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, |
1070 &form_list); | 1105 &form_list); |
1071 | 1106 |
1072 EXPECT_EQ(1u, form_list.size()); | 1107 EXPECT_EQ(1u, form_list.size()); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1195 CheckVersion2Pickle(); | 1230 CheckVersion2Pickle(); |
1196 } | 1231 } |
1197 | 1232 |
1198 TEST_F(NativeBackendKWalletPickleTest, CheckVersion3Pickle) { | 1233 TEST_F(NativeBackendKWalletPickleTest, CheckVersion3Pickle) { |
1199 CheckVersion3Pickle(); | 1234 CheckVersion3Pickle(); |
1200 } | 1235 } |
1201 | 1236 |
1202 TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) { | 1237 TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) { |
1203 CheckVersion5Pickle(); | 1238 CheckVersion5Pickle(); |
1204 } | 1239 } |
| 1240 |
| 1241 TEST_F(NativeBackendKWalletPickleTest, CheckVersion6Pickle) { |
| 1242 CheckVersion6Pickle(); |
| 1243 } |
OLD | NEW |