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

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

Issue 1154283003: Change most uses of Pickle to base::Pickle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 const std::string& folder, const ExpectationArray& sorted_expected) { 598 const std::string& folder, const ExpectationArray& sorted_expected) {
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 base::Pickle pickle(reinterpret_cast<const char*>(value.data()),
609 value.size());
609 ScopedVector<autofill::PasswordForm> forms = 610 ScopedVector<autofill::PasswordForm> forms =
610 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle); 611 NativeBackendKWalletStub::DeserializeValue(entries[i], pickle);
611 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second; 612 const std::vector<const PasswordForm*>& expect = sorted_expected[i].second;
612 EXPECT_EQ(expect.size(), forms.size()); 613 EXPECT_EQ(expect.size(), forms.size());
613 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)
614 CheckPasswordForm(*expect[j], *forms[j], true); 615 CheckPasswordForm(*expect[j], *forms[j], true);
615 } 616 }
616 } 617 }
617 618
618 TEST_F(NativeBackendKWalletTest, NotEnabled) { 619 TEST_F(NativeBackendKWalletTest, NotEnabled) {
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 924
924 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { 925 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) {
925 TestRemoveLoginsBetween(SYNCED); 926 TestRemoveLoginsBetween(SYNCED);
926 } 927 }
927 928
928 // TODO(mdm): add more basic tests here at some point. 929 // TODO(mdm): add more basic tests here at some point.
929 // (For example tests for storing >1 password per realm pickle.) 930 // (For example tests for storing >1 password per realm pickle.)
930 931
931 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { 932 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase {
932 protected: 933 protected:
933 void CreateVersion6Pickle(const PasswordForm& form, Pickle* pickle); 934 void CreateVersion6Pickle(const PasswordForm& form, base::Pickle* pickle);
934 void CreateVersion5Pickle(const PasswordForm& form, Pickle* pickle); 935 void CreateVersion5Pickle(const PasswordForm& form, base::Pickle* pickle);
935 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); 936 void CreateVersion3Pickle(const PasswordForm& form, base::Pickle* pickle);
936 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); 937 void CreateVersion2Pickle(const PasswordForm& form, base::Pickle* pickle);
937 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); 938 void CreateVersion1Pickle(const PasswordForm& form, base::Pickle* pickle);
938 void CreateVersion0Pickle(bool size_32, 939 void CreateVersion0Pickle(bool size_32,
939 const PasswordForm& form, 940 const PasswordForm& form,
940 Pickle* pickle); 941 base::Pickle* pickle);
941 void CheckVersion6Pickle(); 942 void CheckVersion6Pickle();
942 void CheckVersion5Pickle(); 943 void CheckVersion5Pickle();
943 void CheckVersion3Pickle(); 944 void CheckVersion3Pickle();
944 void CheckVersion2Pickle(); 945 void CheckVersion2Pickle();
945 void CheckVersion1Pickle(); 946 void CheckVersion1Pickle();
946 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); 947 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme);
947 948
948 private: 949 private:
949 // Creates a Pickle from |form|. If |size_32| is true, stores the number of 950 // Creates a Pickle from |form|. If |size_32| is true, stores the number of
950 // forms in the pickle as a 32bit uint, otherwise as 64 bit size_t. The latter 951 // forms in the pickle as a 32bit uint, otherwise as 64 bit size_t. The latter
951 // should be the case for versions > 0. If |date_created_internal| is true, 952 // should be the case for versions > 0. If |date_created_internal| is true,
952 // stores |date_created| as base::Time's internal value, otherwise as time_t. 953 // stores |date_created| as base::Time's internal value, otherwise as time_t.
953 void CreatePickle(bool size_32, 954 void CreatePickle(bool size_32,
954 bool date_created_internal, 955 bool date_created_internal,
955 const PasswordForm& form, 956 const PasswordForm& form,
956 Pickle* pickle); 957 base::Pickle* pickle);
957 }; 958 };
958 959
959 void NativeBackendKWalletPickleTest::CreateVersion6Pickle( 960 void NativeBackendKWalletPickleTest::CreateVersion6Pickle(
960 const PasswordForm& form, 961 const PasswordForm& form,
961 Pickle* pickle) { 962 base::Pickle* pickle) {
962 pickle->WriteInt(6); 963 pickle->WriteInt(6);
963 CreatePickle(false, true, form, pickle); 964 CreatePickle(false, true, form, pickle);
964 pickle->WriteInt(form.type); 965 pickle->WriteInt(form.type);
965 pickle->WriteInt(form.times_used); 966 pickle->WriteInt(form.times_used);
966 autofill::SerializeFormData(form.form_data, pickle); 967 autofill::SerializeFormData(form.form_data, pickle);
967 pickle->WriteInt64(form.date_synced.ToInternalValue()); 968 pickle->WriteInt64(form.date_synced.ToInternalValue());
968 pickle->WriteString16(form.display_name); 969 pickle->WriteString16(form.display_name);
969 pickle->WriteString(form.avatar_url.spec()); 970 pickle->WriteString(form.avatar_url.spec());
970 pickle->WriteString(form.federation_url.spec()); 971 pickle->WriteString(form.federation_url.spec());
971 pickle->WriteBool(form.skip_zero_click); 972 pickle->WriteBool(form.skip_zero_click);
972 pickle->WriteInt(form.generation_upload_status); 973 pickle->WriteInt(form.generation_upload_status);
973 } 974 }
974 975
975 void NativeBackendKWalletPickleTest::CreateVersion5Pickle( 976 void NativeBackendKWalletPickleTest::CreateVersion5Pickle(
976 const PasswordForm& form, 977 const PasswordForm& form,
977 Pickle* pickle) { 978 base::Pickle* pickle) {
978 pickle->WriteInt(5); 979 pickle->WriteInt(5);
979 CreatePickle(false, true, form, pickle); 980 CreatePickle(false, true, form, pickle);
980 pickle->WriteInt(form.type); 981 pickle->WriteInt(form.type);
981 pickle->WriteInt(form.times_used); 982 pickle->WriteInt(form.times_used);
982 autofill::SerializeFormData(form.form_data, pickle); 983 autofill::SerializeFormData(form.form_data, pickle);
983 pickle->WriteInt64(form.date_synced.ToInternalValue()); 984 pickle->WriteInt64(form.date_synced.ToInternalValue());
984 pickle->WriteString16(form.display_name); 985 pickle->WriteString16(form.display_name);
985 pickle->WriteString(form.avatar_url.spec()); 986 pickle->WriteString(form.avatar_url.spec());
986 pickle->WriteString(form.federation_url.spec()); 987 pickle->WriteString(form.federation_url.spec());
987 pickle->WriteBool(form.skip_zero_click); 988 pickle->WriteBool(form.skip_zero_click);
988 } 989 }
989 990
990 void NativeBackendKWalletPickleTest::CreateVersion3Pickle( 991 void NativeBackendKWalletPickleTest::CreateVersion3Pickle(
991 const PasswordForm& form, Pickle* pickle) { 992 const PasswordForm& form,
993 base::Pickle* pickle) {
992 pickle->WriteInt(3); 994 pickle->WriteInt(3);
993 CreatePickle(false, false, form, pickle); 995 CreatePickle(false, false, form, pickle);
994 pickle->WriteInt(form.type); 996 pickle->WriteInt(form.type);
995 pickle->WriteInt(form.times_used); 997 pickle->WriteInt(form.times_used);
996 autofill::SerializeFormData(form.form_data, pickle); 998 autofill::SerializeFormData(form.form_data, pickle);
997 pickle->WriteInt64(form.date_synced.ToInternalValue()); 999 pickle->WriteInt64(form.date_synced.ToInternalValue());
998 } 1000 }
999 1001
1000 void NativeBackendKWalletPickleTest::CreateVersion2Pickle( 1002 void NativeBackendKWalletPickleTest::CreateVersion2Pickle(
1001 const PasswordForm& form, Pickle* pickle) { 1003 const PasswordForm& form,
1004 base::Pickle* pickle) {
1002 pickle->WriteInt(2); 1005 pickle->WriteInt(2);
1003 CreatePickle(false, false, form, pickle); 1006 CreatePickle(false, false, form, pickle);
1004 pickle->WriteInt(form.type); 1007 pickle->WriteInt(form.type);
1005 pickle->WriteInt(form.times_used); 1008 pickle->WriteInt(form.times_used);
1006 autofill::SerializeFormData(form.form_data, pickle); 1009 autofill::SerializeFormData(form.form_data, pickle);
1007 } 1010 }
1008 1011
1009 void NativeBackendKWalletPickleTest::CreateVersion1Pickle( 1012 void NativeBackendKWalletPickleTest::CreateVersion1Pickle(
1010 const PasswordForm& form, Pickle* pickle) { 1013 const PasswordForm& form,
1014 base::Pickle* pickle) {
1011 pickle->WriteInt(1); 1015 pickle->WriteInt(1);
1012 CreatePickle(false, false, form, pickle); 1016 CreatePickle(false, false, form, pickle);
1013 } 1017 }
1014 1018
1015 void NativeBackendKWalletPickleTest::CreateVersion0Pickle( 1019 void NativeBackendKWalletPickleTest::CreateVersion0Pickle(
1016 bool size_32, const PasswordForm& form, Pickle* pickle) { 1020 bool size_32,
1021 const PasswordForm& form,
1022 base::Pickle* pickle) {
1017 pickle->WriteInt(0); 1023 pickle->WriteInt(0);
1018 CreatePickle(size_32, false, form, pickle); 1024 CreatePickle(size_32, false, form, pickle);
1019 } 1025 }
1020 1026
1021 void NativeBackendKWalletPickleTest::CreatePickle(bool size_32, 1027 void NativeBackendKWalletPickleTest::CreatePickle(bool size_32,
1022 bool date_created_internal, 1028 bool date_created_internal,
1023 const PasswordForm& form, 1029 const PasswordForm& form,
1024 Pickle* pickle) { 1030 base::Pickle* pickle) {
1025 if (size_32) 1031 if (size_32)
1026 pickle->WriteUInt32(1); // Size of form list. 32 bits. 1032 pickle->WriteUInt32(1); // Size of form list. 32 bits.
1027 else 1033 else
1028 pickle->WriteSizeT(1); // Size of form list. 64 bits. 1034 pickle->WriteSizeT(1); // Size of form list. 64 bits.
1029 pickle->WriteInt(form.scheme); 1035 pickle->WriteInt(form.scheme);
1030 pickle->WriteString(form.origin.spec()); 1036 pickle->WriteString(form.origin.spec());
1031 pickle->WriteString(form.action.spec()); 1037 pickle->WriteString(form.action.spec());
1032 pickle->WriteString16(form.username_element); 1038 pickle->WriteString16(form.username_element);
1033 pickle->WriteString16(form.username_value); 1039 pickle->WriteString16(form.username_value);
1034 pickle->WriteString16(form.password_element); 1040 pickle->WriteString16(form.password_element);
1035 pickle->WriteString16(form.password_value); 1041 pickle->WriteString16(form.password_value);
1036 pickle->WriteString16(form.submit_element); 1042 pickle->WriteString16(form.submit_element);
1037 pickle->WriteBool(form.ssl_valid); 1043 pickle->WriteBool(form.ssl_valid);
1038 pickle->WriteBool(form.preferred); 1044 pickle->WriteBool(form.preferred);
1039 pickle->WriteBool(form.blacklisted_by_user); 1045 pickle->WriteBool(form.blacklisted_by_user);
1040 if (date_created_internal) 1046 if (date_created_internal)
1041 pickle->WriteInt64(form.date_created.ToInternalValue()); 1047 pickle->WriteInt64(form.date_created.ToInternalValue());
1042 else 1048 else
1043 pickle->WriteInt64(form.date_created.ToTimeT()); 1049 pickle->WriteInt64(form.date_created.ToTimeT());
1044 } 1050 }
1045 1051
1046 void NativeBackendKWalletPickleTest::CheckVersion6Pickle() { 1052 void NativeBackendKWalletPickleTest::CheckVersion6Pickle() {
1047 Pickle pickle; 1053 base::Pickle pickle;
1048 PasswordForm form = form_google_; 1054 PasswordForm form = form_google_;
1049 form.generation_upload_status = PasswordForm::NEGATIVE_SIGNAL_SENT; 1055 form.generation_upload_status = PasswordForm::NEGATIVE_SIGNAL_SENT;
1050 CreateVersion6Pickle(form, &pickle); 1056 CreateVersion6Pickle(form, &pickle);
1051 1057
1052 ScopedVector<PasswordForm> form_list = 1058 ScopedVector<PasswordForm> form_list =
1053 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle); 1059 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1054 1060
1055 EXPECT_EQ(1u, form_list.size()); 1061 EXPECT_EQ(1u, form_list.size());
1056 if (form_list.size() > 0) 1062 if (form_list.size() > 0)
1057 CheckPasswordForm(form, *form_list[0], true); 1063 CheckPasswordForm(form, *form_list[0], true);
1058 1064
1059 } 1065 }
1060 1066
1061 void NativeBackendKWalletPickleTest::CheckVersion5Pickle() { 1067 void NativeBackendKWalletPickleTest::CheckVersion5Pickle() {
1062 Pickle pickle; 1068 base::Pickle pickle;
1063 PasswordForm form = form_google_; 1069 PasswordForm form = form_google_;
1064 CreateVersion5Pickle(form, &pickle); 1070 CreateVersion5Pickle(form, &pickle);
1065 1071
1066 ScopedVector<PasswordForm> form_list = 1072 ScopedVector<PasswordForm> form_list =
1067 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle); 1073 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1068 1074
1069 EXPECT_EQ(1u, form_list.size()); 1075 EXPECT_EQ(1u, form_list.size());
1070 if (form_list.size() > 0) 1076 if (form_list.size() > 0)
1071 CheckPasswordForm(form, *form_list[0], true); 1077 CheckPasswordForm(form, *form_list[0], true);
1072 } 1078 }
1073 1079
1074 void NativeBackendKWalletPickleTest::CheckVersion3Pickle() { 1080 void NativeBackendKWalletPickleTest::CheckVersion3Pickle() {
1075 Pickle pickle; 1081 base::Pickle pickle;
1076 PasswordForm form = form_google_; 1082 PasswordForm form = form_google_;
1077 // Remove the fields which were not present in version #3. 1083 // Remove the fields which were not present in version #3.
1078 form.display_name.clear(); 1084 form.display_name.clear();
1079 form.avatar_url = GURL(); 1085 form.avatar_url = GURL();
1080 form.federation_url = GURL(); 1086 form.federation_url = GURL();
1081 form.skip_zero_click = false; 1087 form.skip_zero_click = false;
1082 CreateVersion3Pickle(form, &pickle); 1088 CreateVersion3Pickle(form, &pickle);
1083 1089
1084 ScopedVector<PasswordForm> form_list = 1090 ScopedVector<PasswordForm> form_list =
1085 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle); 1091 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1086 1092
1087 EXPECT_EQ(1u, form_list.size()); 1093 EXPECT_EQ(1u, form_list.size());
1088 if (form_list.size() > 0) 1094 if (form_list.size() > 0)
1089 CheckPasswordForm(form, *form_list[0], false); 1095 CheckPasswordForm(form, *form_list[0], false);
1090 } 1096 }
1091 1097
1092 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() { 1098 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() {
1093 Pickle pickle; 1099 base::Pickle pickle;
1094 PasswordForm form = old_form_google_; 1100 PasswordForm form = old_form_google_;
1095 form.times_used = form_google_.times_used; 1101 form.times_used = form_google_.times_used;
1096 form.type = form_google_.type; 1102 form.type = form_google_.type;
1097 form.form_data = form_google_.form_data; 1103 form.form_data = form_google_.form_data;
1098 CreateVersion2Pickle(form, &pickle); 1104 CreateVersion2Pickle(form, &pickle);
1099 1105
1100 ScopedVector<PasswordForm> form_list = 1106 ScopedVector<PasswordForm> form_list =
1101 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle); 1107 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1102 1108
1103 EXPECT_EQ(1u, form_list.size()); 1109 EXPECT_EQ(1u, form_list.size());
1104 if (form_list.size() > 0) 1110 if (form_list.size() > 0)
1105 CheckPasswordForm(form, *form_list[0], false); 1111 CheckPasswordForm(form, *form_list[0], false);
1106 } 1112 }
1107 1113
1108 // Make sure that we can still read version 1 pickles. 1114 // Make sure that we can still read version 1 pickles.
1109 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() { 1115 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() {
1110 Pickle pickle; 1116 base::Pickle pickle;
1111 PasswordForm form = form_google_; 1117 PasswordForm form = form_google_;
1112 CreateVersion1Pickle(form, &pickle); 1118 CreateVersion1Pickle(form, &pickle);
1113 1119
1114 ScopedVector<autofill::PasswordForm> form_list = 1120 ScopedVector<autofill::PasswordForm> form_list =
1115 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle); 1121 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1116 1122
1117 // This will match |old_form_google_| because not all the fields present in 1123 // This will match |old_form_google_| because not all the fields present in
1118 // |form_google_| will be deserialized. 1124 // |form_google_| will be deserialized.
1119 EXPECT_EQ(1u, form_list.size()); 1125 EXPECT_EQ(1u, form_list.size());
1120 if (form_list.size() > 0) 1126 if (form_list.size() > 0)
1121 CheckPasswordForm(old_form_google_, *form_list[0], false); 1127 CheckPasswordForm(old_form_google_, *form_list[0], false);
1122 } 1128 }
1123 1129
1124 void NativeBackendKWalletPickleTest::CheckVersion0Pickle( 1130 void NativeBackendKWalletPickleTest::CheckVersion0Pickle(
1125 bool size_32, PasswordForm::Scheme scheme) { 1131 bool size_32, PasswordForm::Scheme scheme) {
1126 Pickle pickle; 1132 base::Pickle pickle;
1127 PasswordForm form = old_form_google_; 1133 PasswordForm form = old_form_google_;
1128 form.scheme = scheme; 1134 form.scheme = scheme;
1129 CreateVersion0Pickle(size_32, form, &pickle); 1135 CreateVersion0Pickle(size_32, form, &pickle);
1130 ScopedVector<autofill::PasswordForm> form_list = 1136 ScopedVector<autofill::PasswordForm> form_list =
1131 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle); 1137 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle);
1132 EXPECT_EQ(1u, form_list.size()); 1138 EXPECT_EQ(1u, form_list.size());
1133 if (form_list.size() > 0) 1139 if (form_list.size() > 0)
1134 CheckPasswordForm(form, *form_list[0], false); 1140 CheckPasswordForm(form, *form_list[0], false);
1135 } 1141 }
1136 1142
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1192 CheckVersion3Pickle(); 1198 CheckVersion3Pickle();
1193 } 1199 }
1194 1200
1195 TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) { 1201 TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) {
1196 CheckVersion5Pickle(); 1202 CheckVersion5Pickle();
1197 } 1203 }
1198 1204
1199 TEST_F(NativeBackendKWalletPickleTest, CheckVersion6Pickle) { 1205 TEST_F(NativeBackendKWalletPickleTest, CheckVersion6Pickle) {
1200 CheckVersion6Pickle(); 1206 CheckVersion6Pickle();
1201 } 1207 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698