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 bool check_date_created) { | |
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); |
210 // We don't check the date created. It varies. | 216 if (check_date_created) { |
217 EXPECT_EQ(expected.date_created, actual.date_created); | |
218 } | |
211 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); | 219 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); |
212 EXPECT_EQ(expected.type, actual.type); | 220 EXPECT_EQ(expected.type, actual.type); |
213 EXPECT_EQ(expected.times_used, actual.times_used); | 221 EXPECT_EQ(expected.times_used, actual.times_used); |
214 EXPECT_EQ(expected.scheme, actual.scheme); | 222 EXPECT_EQ(expected.scheme, actual.scheme); |
215 EXPECT_EQ(expected.date_synced, actual.date_synced); | 223 EXPECT_EQ(expected.date_synced, actual.date_synced); |
216 EXPECT_EQ(expected.display_name, actual.display_name); | 224 EXPECT_EQ(expected.display_name, actual.display_name); |
217 EXPECT_EQ(expected.avatar_url, actual.avatar_url); | 225 EXPECT_EQ(expected.avatar_url, actual.avatar_url); |
218 EXPECT_EQ(expected.federation_url, actual.federation_url); | 226 EXPECT_EQ(expected.federation_url, actual.federation_url); |
219 EXPECT_EQ(expected.is_zero_click, actual.is_zero_click); | 227 EXPECT_EQ(expected.is_zero_click, actual.is_zero_click); |
220 } | 228 } |
221 | 229 |
222 // static | 230 // static |
223 void NativeBackendKWalletTestBase::CheckPasswordChanges( | 231 void NativeBackendKWalletTestBase::CheckPasswordChanges( |
224 const PasswordStoreChangeList& expected, | 232 const PasswordStoreChangeList& expected, |
225 const PasswordStoreChangeList& actual) { | 233 const PasswordStoreChangeList& actual) { |
226 ASSERT_EQ(expected.size(), actual.size()); | 234 ASSERT_EQ(expected.size(), actual.size()); |
227 for (size_t i = 0; i < expected.size(); ++i) { | 235 for (size_t i = 0; i < expected.size(); ++i) { |
228 EXPECT_EQ(expected[i].type(), actual[i].type()); | 236 EXPECT_EQ(expected[i].type(), actual[i].type()); |
229 CheckPasswordForm(expected[i].form(), actual[i].form()); | 237 CheckPasswordForm(expected[i].form(), actual[i].form(), true); |
230 } | 238 } |
231 } | 239 } |
232 | 240 |
233 // static | 241 // static |
234 void NativeBackendKWalletTestBase::CheckPasswordChangesWithResult( | 242 void NativeBackendKWalletTestBase::CheckPasswordChangesWithResult( |
235 const PasswordStoreChangeList* expected, | 243 const PasswordStoreChangeList* expected, |
236 const PasswordStoreChangeList* actual, | 244 const PasswordStoreChangeList* actual, |
237 bool result) { | 245 bool result) { |
238 EXPECT_TRUE(result); | 246 EXPECT_TRUE(result); |
239 CheckPasswordChanges(*expected, *actual); | 247 CheckPasswordChanges(*expected, *actual); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
358 NativeBackendKWalletStub backend(42); | 366 NativeBackendKWalletStub backend(42); |
359 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); | 367 EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
360 | 368 |
361 form_google_.date_synced = base::Time(); | 369 form_google_.date_synced = base::Time(); |
362 form_isc_.date_synced = base::Time(); | 370 form_isc_.date_synced = base::Time(); |
363 form_google_.date_created = base::Time(); | 371 form_google_.date_created = base::Time(); |
364 form_isc_.date_created = base::Time(); | 372 form_isc_.date_created = base::Time(); |
365 base::Time now = base::Time::Now(); | 373 base::Time now = base::Time::Now(); |
366 base::Time next_day = now + base::TimeDelta::FromDays(1); | 374 base::Time next_day = now + base::TimeDelta::FromDays(1); |
367 if (date_to_test == CREATED) { | 375 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; | 376 form_google_.date_created = now; |
371 form_isc_.date_created = next_day; | 377 form_isc_.date_created = next_day; |
372 } else { | 378 } else { |
373 form_google_.date_synced = now; | 379 form_google_.date_synced = now; |
374 form_isc_.date_synced = next_day; | 380 form_isc_.date_synced = next_day; |
375 } | 381 } |
376 | 382 |
377 BrowserThread::PostTask( | 383 BrowserThread::PostTask( |
378 BrowserThread::DB, | 384 BrowserThread::DB, |
379 FROM_HERE, | 385 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) { | 603 for (size_t i = 0; i < entries.size() && i < sorted_expected.size(); ++i) { |
598 EXPECT_EQ(sorted_expected[i].first, entries[i]); | 604 EXPECT_EQ(sorted_expected[i].first, entries[i]); |
599 TestKWallet::Blob value; | 605 TestKWallet::Blob value; |
600 EXPECT_TRUE(wallet_.readEntry(folder, entries[i], &value)); | 606 EXPECT_TRUE(wallet_.readEntry(folder, entries[i], &value)); |
601 Pickle pickle(reinterpret_cast<const char*>(value.data()), value.size()); | 607 Pickle pickle(reinterpret_cast<const char*>(value.data()), value.size()); |
602 ScopedVector<autofill::PasswordForm> forms; | 608 ScopedVector<autofill::PasswordForm> forms; |
603 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle, &forms); | 609 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle, &forms); |
604 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second; | 610 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second; |
605 EXPECT_EQ(expect.size(), forms.size()); | 611 EXPECT_EQ(expect.size(), forms.size()); |
606 for (size_t j = 0; j < forms.size() && j < expect.size(); ++j) | 612 for (size_t j = 0; j < forms.size() && j < expect.size(); ++j) |
607 CheckPasswordForm(*expect[j], *forms[j]); | 613 CheckPasswordForm(*expect[j], *forms[j], true); |
608 } | 614 } |
609 } | 615 } |
610 | 616 |
611 TEST_F(NativeBackendKWalletTest, NotEnabled) { | 617 TEST_F(NativeBackendKWalletTest, NotEnabled) { |
612 NativeBackendKWalletStub kwallet(42); | 618 NativeBackendKWalletStub kwallet(42); |
613 kwallet_enabled_ = false; | 619 kwallet_enabled_ = false; |
614 EXPECT_FALSE(kwallet.InitWithBus(mock_session_bus_)); | 620 EXPECT_FALSE(kwallet.InitWithBus(mock_session_bus_)); |
615 EXPECT_FALSE(klauncher_contacted_); | 621 EXPECT_FALSE(klauncher_contacted_); |
616 } | 622 } |
617 | 623 |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
916 | 922 |
917 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { | 923 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { |
918 TestRemoveLoginsBetween(SYNCED); | 924 TestRemoveLoginsBetween(SYNCED); |
919 } | 925 } |
920 | 926 |
921 // TODO(mdm): add more basic tests here at some point. | 927 // TODO(mdm): add more basic tests here at some point. |
922 // (For example tests for storing >1 password per realm pickle.) | 928 // (For example tests for storing >1 password per realm pickle.) |
923 | 929 |
924 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { | 930 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { |
925 protected: | 931 protected: |
932 void CreateVersion5Pickle(const PasswordForm& form, Pickle* pickle); | |
926 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); | 933 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); |
927 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); | 934 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); |
928 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); | 935 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); |
929 void CreateVersion0Pickle(bool size_32, | 936 void CreateVersion0Pickle(bool size_32, |
930 const PasswordForm& form, | 937 const PasswordForm& form, |
931 Pickle* pickle); | 938 Pickle* pickle); |
939 void CheckVersion5Pickle(); | |
932 void CheckVersion3Pickle(); | 940 void CheckVersion3Pickle(); |
933 void CheckVersion2Pickle(); | 941 void CheckVersion2Pickle(); |
934 void CheckVersion1Pickle(); | 942 void CheckVersion1Pickle(); |
935 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); | 943 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); |
936 | 944 |
937 private: | 945 private: |
938 void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle); | 946 // |size_32| stores size as 32/64 bit integer, should be false for version>0. |
947 // |date_created_internal| store date_created as base::Time's internal value. | |
vabr (Chromium)
2015/02/04 12:23:51
Please make this comment into full sentences, and
dvadym
2015/02/04 14:24:00
Done.
| |
948 void CreatePickle(bool size_32, | |
949 bool date_created_internal, | |
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], true); | |
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], false); |
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], false); |
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], false); |
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], false); |
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 CheckVersion5Pickle(); | |
1162 } | |
OLD | NEW |