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

Side by Side Diff: components/autofill/core/browser/autofill_profile_unittest.cc

Issue 1931123002: [Autofill] Make PersonalDataManager::OverwriteWith case sensitive. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/autofill/core/browser/autofill_profile.h" 5 #include "components/autofill/core/browser/autofill_profile.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 884 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 AutofillProfile a; 895 AutofillProfile a;
896 SetupTestProfile(a); 896 SetupTestProfile(a);
897 897
898 AutofillProfile b = a; 898 AutofillProfile b = a;
899 b.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Aquarium St.")); 899 b.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Aquarium St."));
900 EXPECT_TRUE(a.OverwriteWith(b, "en-US")); 900 EXPECT_TRUE(a.OverwriteWith(b, "en-US"));
901 base::string16 address = a.GetRawInfo(ADDRESS_HOME_LINE1); 901 base::string16 address = a.GetRawInfo(ADDRESS_HOME_LINE1);
902 EXPECT_EQ(ASCIIToUTF16("123 Aquarium St."), address); 902 EXPECT_EQ(ASCIIToUTF16("123 Aquarium St."), address);
903 } 903 }
904 904
905 TEST(AutofillProfileTest, OverwriteName_AddNameFull) {
906 AutofillProfile a;
907
908 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
909 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
910 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
911
912 AutofillProfile b = a;
913 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison"));
914
915 EXPECT_TRUE(a.OverwriteWith(b, "en-US"));
916 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
917 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
918 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
919 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
920 a.GetRawInfo(NAME_FULL));
921 }
922
923 // Tests that OverwriteName overwrites the name parts if they have different
924 // case.
925 TEST(AutofillProfileTest, OverwriteName_DifferentCase) {
926 AutofillProfile a;
927
928 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("marion"));
929 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("mitchell"));
930 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("morrison"));
931
932 AutofillProfile b = a;
933 b.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
934 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
935 b.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
936
937 EXPECT_TRUE(a.OverwriteWith(b, "en-US"));
938 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
939 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
940 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
941 }
942
905 TEST(AutofillProfileTest, AssignmentOperator) { 943 TEST(AutofillProfileTest, AssignmentOperator) {
906 AutofillProfile a(base::GenerateGUID(), "https://www.example.com/"); 944 AutofillProfile a(base::GenerateGUID(), "https://www.example.com/");
907 test::SetProfileInfo(&a, "Marion", "Mitchell", "Morrison", 945 test::SetProfileInfo(&a, "Marion", "Mitchell", "Morrison",
908 "marion@me.xyz", "Fox", "123 Zoo St.", "unit 5", 946 "marion@me.xyz", "Fox", "123 Zoo St.", "unit 5",
909 "Hollywood", "CA", "91601", "US", 947 "Hollywood", "CA", "91601", "US",
910 "12345678910"); 948 "12345678910");
911 949
912 // Result of assignment should be logically equal to the original profile. 950 // Result of assignment should be logically equal to the original profile.
913 AutofillProfile b(base::GenerateGUID(), "http://www.example.com/"); 951 AutofillProfile b(base::GenerateGUID(), "http://www.example.com/");
914 b = a; 952 b = a;
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 EXPECT_EQ(ASCIIToUTF16("mid island plaza"), 1148 EXPECT_EQ(ASCIIToUTF16("mid island plaza"),
1111 AutofillProfile::CanonicalizeProfileString(base::WideToUTF16( 1149 AutofillProfile::CanonicalizeProfileString(base::WideToUTF16(
1112 L"Mid\x2013Island\x2003 Plaza"))); 1150 L"Mid\x2013Island\x2003 Plaza")));
1113 1151
1114 // Newline character removed. 1152 // Newline character removed.
1115 EXPECT_EQ(ASCIIToUTF16("1600 amphitheatre pkwy app 2"), 1153 EXPECT_EQ(ASCIIToUTF16("1600 amphitheatre pkwy app 2"),
1116 AutofillProfile::CanonicalizeProfileString( 1154 AutofillProfile::CanonicalizeProfileString(
1117 ASCIIToUTF16("1600 amphitheatre pkwy \n App. 2"))); 1155 ASCIIToUTF16("1600 amphitheatre pkwy \n App. 2")));
1118 } 1156 }
1119 1157
1158 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_AddingNameFull) {
1159 AutofillProfile a;
1160
1161 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1162 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1163 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1164
1165 AutofillProfile b = a;
1166 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison"));
1167
1168 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1169
1170 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1171 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1172 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1173 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1174 a.GetRawInfo(NAME_FULL));
1175 }
1176
1177 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_KeepNameFull) {
1178 AutofillProfile a;
1179
1180 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1181 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1182 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1183 a.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison"));
1184
1185 AutofillProfile b = a;
1186 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16(""));
1187
1188 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1189
1190 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1191 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1192 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1193 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1194 a.GetRawInfo(NAME_FULL));
1195 }
1196
1197 // TODO(crbug.com/608074): No loss of information for names should happen when
1198 // using SaveAddtitionalInfo.
1199 // Tests the merging of two similar profiles results the second profile's non-
1200 // empty fields overwriting the initial profiles values.
1201 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_DifferentCaseNoNameFull) {
1202 AutofillProfile a;
1203
1204 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("marion"));
1205 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("mitchell"));
1206 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("morrison"));
1207 a.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison"));
1208
1209 AutofillProfile b = a;
1210 b.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1211 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1212 b.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1213 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16(""));
1214
1215 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1216
1217 // The first, middle and last names should have their first letter in
1218 // uppercase.
1219 EXPECT_EQ(base::ASCIIToUTF16("marion"), a.GetRawInfo(NAME_FIRST));
1220 EXPECT_EQ(base::ASCIIToUTF16("mitchell"), a.GetRawInfo(NAME_MIDDLE));
1221 EXPECT_EQ(base::ASCIIToUTF16("morrison"), a.GetRawInfo(NAME_LAST));
1222 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1223 a.GetRawInfo(NAME_FULL));
1224 }
1225
1226 // TODO(crbug.com/608074): No loss of information for names should happen when
1227 // using SaveAddtitionalInfo.
1228 // Tests that no loss of information happens when SavingAdditionalInfo with a
1229 // profile with an empty name part.
1230 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_LossOfInformation) {
1231 AutofillProfile a;
1232
1233 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1234 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1235 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1236
1237 AutofillProfile b = a;
1238 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16(""));
1239
1240 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1241
1242 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1243 // This should not be empty.
1244 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_MIDDLE));
1245 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1246 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_FULL));
1247 }
1248
1249 // TODO(crbug.com/608074): No loss of information for names should happen when
1250 // using SaveAddtitionalInfo.
1251 // Tests that merging two complementary profiles for names results in a profile
1252 // with a complete name.
1253 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_ComplementaryInformation) {
1254 AutofillProfile a;
1255
1256 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1257 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1258 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1259
1260 AutofillProfile b;
1261 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison"));
1262
1263 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1264
1265 // The first, middle and last names should be kept.
1266 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_FIRST));
1267 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_MIDDLE));
1268 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_LAST));
1269 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1270 a.GetRawInfo(NAME_FULL));
1271 }
1272
1120 } // namespace autofill 1273 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_profile.cc ('k') | components/autofill/core/browser/contact_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698