| 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 |