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

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

Issue 2013063002: Remove diacritics when normalizing autofill profile strings for comparison. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Expand unit-tests Created 4 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 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 1135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 1146
1147 // Unicode punctuation (hyphen and space), multiple spaces collapsed. 1147 // Unicode punctuation (hyphen and space), multiple spaces collapsed.
1148 EXPECT_EQ(ASCIIToUTF16("mid island plaza"), 1148 EXPECT_EQ(ASCIIToUTF16("mid island plaza"),
1149 AutofillProfile::CanonicalizeProfileString(base::WideToUTF16( 1149 AutofillProfile::CanonicalizeProfileString(base::WideToUTF16(
1150 L"Mid\x2013Island\x2003 Plaza"))); 1150 L"Mid\x2013Island\x2003 Plaza")));
1151 1151
1152 // Newline character removed. 1152 // Newline character removed.
1153 EXPECT_EQ(ASCIIToUTF16("1600 amphitheatre pkwy app 2"), 1153 EXPECT_EQ(ASCIIToUTF16("1600 amphitheatre pkwy app 2"),
1154 AutofillProfile::CanonicalizeProfileString( 1154 AutofillProfile::CanonicalizeProfileString(
1155 ASCIIToUTF16("1600 amphitheatre pkwy \n App. 2"))); 1155 ASCIIToUTF16("1600 amphitheatre pkwy \n App. 2")));
1156
1157 // Diacritics removed.
1158 EXPECT_EQ(UTF8ToUTF16("まeoa정"),
1159 AutofillProfile::CanonicalizeProfileString(UTF8ToUTF16("まéÖä정")));
1156 } 1160 }
1157 1161
1158 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_AddingNameFull) { 1162 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_AddingNameFull) {
1159 AutofillProfile a; 1163 AutofillProfile a;
1160 1164
1161 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion")); 1165 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1162 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell")); 1166 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
1163 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison")); 1167 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison"));
1164 1168
1165 AutofillProfile b = a; 1169 AutofillProfile b = a;
(...skipping 23 matching lines...) Expand all
1189 1193
1190 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST)); 1194 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1191 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE)); 1195 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1192 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST)); 1196 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1193 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"), 1197 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1194 a.GetRawInfo(NAME_FULL)); 1198 a.GetRawInfo(NAME_FULL));
1195 } 1199 }
1196 1200
1197 // Tests the merging of two similar profiles results in the second profile's 1201 // Tests the merging of two similar profiles results in the second profile's
1198 // non-empty fields overwriting the initial profiles values. 1202 // non-empty fields overwriting the initial profiles values.
1199 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_DifferentCaseNoNameFull) { 1203 TEST(AutofillProfileTest,
1204 SaveAdditionalInfo_Name_DifferentCaseAndDiacriticsNoNameFull) {
1200 AutofillProfile a; 1205 AutofillProfile a;
1201 1206
1202 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("marion")); 1207 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("marion"));
1203 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("mitchell")); 1208 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("mitchell"));
1204 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("morrison")); 1209 a.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("morrison"));
1205 a.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("marion mitchell morrison")); 1210 a.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("marion mitchell morrison"));
1206 1211
1207 AutofillProfile b = a; 1212 AutofillProfile b = a;
1208 b.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion")); 1213 b.SetRawInfo(NAME_FIRST, UTF8ToUTF16("Märion"));
1209 b.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell")); 1214 b.SetRawInfo(NAME_MIDDLE, UTF8ToUTF16("Mitchéll"));
1210 b.SetRawInfo(NAME_LAST, base::ASCIIToUTF16("Morrison")); 1215 b.SetRawInfo(NAME_LAST,UTF8ToUTF16("Morrison"));
1211 b.SetRawInfo(NAME_FULL, base::ASCIIToUTF16("")); 1216 b.SetRawInfo(NAME_FULL, UTF8ToUTF16(""));
1212 1217
1213 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US")); 1218 EXPECT_TRUE(a.SaveAdditionalInfo(b, "en-US"));
1214 1219
1215 // The first, middle and last names should have their first letter in 1220 // The first, middle and last names should have their first letter in
1216 // uppercase. 1221 // uppercase.
sebsg 2016/05/27 16:59:14 nit: ... in uppercase and have diacritics.
Roger McFarlane (Chromium) 2016/05/27 20:20:43 Done.
1217 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST)); 1222 EXPECT_EQ(UTF8ToUTF16("Märion"), a.GetRawInfo(NAME_FIRST));
1218 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE)); 1223 EXPECT_EQ(UTF8ToUTF16("Mitchéll"), a.GetRawInfo(NAME_MIDDLE));
1219 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST)); 1224 EXPECT_EQ(UTF8ToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1220 EXPECT_EQ(base::ASCIIToUTF16("marion mitchell morrison"), 1225 EXPECT_EQ(UTF8ToUTF16("marion mitchell morrison"),
1221 a.GetRawInfo(NAME_FULL)); 1226 a.GetRawInfo(NAME_FULL));
1222 } 1227 }
1223 1228
1224 // Tests that no loss of information happens when SavingAdditionalInfo with a 1229 // Tests that no loss of information happens when SavingAdditionalInfo with a
1225 // profile with an empty name part. 1230 // profile with an empty name part.
1226 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_LossOfInformation) { 1231 TEST(AutofillProfileTest, SaveAdditionalInfo_Name_LossOfInformation) {
1227 AutofillProfile a; 1232 AutofillProfile a;
1228 1233
1229 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion")); 1234 a.SetRawInfo(NAME_FIRST, base::ASCIIToUTF16("Marion"));
1230 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell")); 1235 a.SetRawInfo(NAME_MIDDLE, base::ASCIIToUTF16("Mitchell"));
(...skipping 26 matching lines...) Expand all
1257 // The first, middle and last names should be kept and name full should be 1262 // The first, middle and last names should be kept and name full should be
1258 // added. 1263 // added.
1259 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST)); 1264 EXPECT_EQ(base::ASCIIToUTF16("Marion"), a.GetRawInfo(NAME_FIRST));
1260 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE)); 1265 EXPECT_EQ(base::ASCIIToUTF16("Mitchell"), a.GetRawInfo(NAME_MIDDLE));
1261 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST)); 1266 EXPECT_EQ(base::ASCIIToUTF16("Morrison"), a.GetRawInfo(NAME_LAST));
1262 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"), 1267 EXPECT_EQ(base::ASCIIToUTF16("Marion Mitchell Morrison"),
1263 a.GetRawInfo(NAME_FULL)); 1268 a.GetRawInfo(NAME_FULL));
1264 } 1269 }
1265 1270
1266 } // namespace autofill 1271 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698