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

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

Issue 1973873002: [Autofill] Improve the merging of two profiles' names. (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 1176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 1187
1188 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US")); 1188 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1189 1189
1190 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST)); 1190 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1191 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE)); 1191 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1192 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST)); 1192 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1193 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"), 1193 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1194 a.GetRawInfo(NAME_FULL)); 1194 a.GetRawInfo(NAME_FULL));
1195 } 1195 }
1196 1196
1197 // TODO(crbug.com/608074): No loss of information for names should happen when 1197 // Tests the merging of two similar profiles results in the second profile's
1198 // using SaveAddtitionalInfo. 1198 // non-empty fields overwriting the initial profiles values.
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) { 1199 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_DifferentCaseNoNameFull) {
Mathieu 2016/05/13 13:32:51 Do we have cases where one of the middle names is
sebsg 2016/05/13 17:20:01 Yes, in PersonalDataManagerTest.SaveImportedProfil
1202 AutofillProfile a; 1200 AutofillProfile a;
1203 1201
1204 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("marion")); 1202 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("marion"));
1205 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("mitchell")); 1203 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("mitchell"));
1206 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("morrison")); 1204 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("morrison"));
1207 a.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison")); 1205 a.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("marion mitchell morrison"));
1208 1206
1209 AutofillProfile b = a; 1207 AutofillProfile b = a;
1210 b.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion")); 1208 b.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1211 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell")); 1209 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1212 b.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison")); 1210 b.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1213 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("")); 1211 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16(""));
1214 1212
1215 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US")); 1213 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1216 1214
1217 // The first, middle and last names should have their first letter in 1215 // The first, middle and last names should have their first letter in
1218 // uppercase. 1216 // uppercase.
1219 EXPECT_EQ(base::ASCIIToUTF16("marion"), a.GetRawInfo(NAME_FIRST)); 1217 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1220 EXPECT_EQ(base::ASCIIToUTF16("mitchell"), a.GetRawInfo(NAME_MIDDLE)); 1218 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1221 EXPECT_EQ(base::ASCIIToUTF16("morrison"), a.GetRawInfo(NAME_LAST)); 1219 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1222 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"), 1220 EXPECT_EQ(base::ASCIIToUTF16("marion mitchell morrison"),
1223 a.GetRawInfo(NAME_FULL)); 1221 a.GetRawInfo(NAME_FULL));
1224 } 1222 }
1225 1223
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 1224 // Tests that no loss of information happens when SavingAdditionalInfo with a
1229 // profile with an empty name part. 1225 // profile with an empty name part.
1230 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_LossOfInformation) { 1226 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_LossOfInformation) {
1231 AutofillProfile a; 1227 AutofillProfile a;
1232 1228
1233 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion")); 1229 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1234 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell")); 1230 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1235 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison")); 1231 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1236 1232
1237 AutofillProfile b = a; 1233 AutofillProfile b = a;
1238 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("")); 1234 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16(""));
1239 1235
1240 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US")); 1236 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1241 1237
1242 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST)); 1238 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1243 // This should not be empty. 1239 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1244 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_MIDDLE));
1245 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST)); 1240 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1246 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_FULL));
1247 } 1241 }
1248 1242
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 1243 // Tests that merging two complementary profiles for names results in a profile
1252 // with a complete name. 1244 // with a complete name.
1253 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_ComplementaryInformation) { 1245 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_ComplementaryInformation) {
1254 AutofillProfile a; 1246 AutofillProfile a;
1255 1247
1256 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion")); 1248 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1257 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell")); 1249 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1258 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison")); 1250 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1259 1251
1260 AutofillProfile b; 1252 AutofillProfile b;
1261 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison")); 1253 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("Marion Mitchell Morrison"));
1262 1254
1263 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US")); 1255 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1264 1256
1265 // The first, middle and last names should be kept. 1257 // The first, middle and last names should be kept and name full should be
1266 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_FIRST)); 1258 // added.
1267 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_MIDDLE)); 1259 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1268 EXPECT_EQ(base::ASCIIToUTF16(""), a.GetRawInfo(NAME_LAST)); 1260 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1261 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1269 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"), 1262 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1270 a.GetRawInfo(NAME_FULL)); 1263 a.GetRawInfo(NAME_FULL));
1271 } 1264 }
1272 1265
1273 } // namespace autofill 1266 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698