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

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

Issue 347183005: autofill names - dont parse when calling SetRawInfo(FULL_NAME) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: now with street address behavior change Created 6 years, 5 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 | Annotate | Revision Log
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 <string> 5 #include <string>
6 6
7 #include "base/strings/string16.h" 7 #include "base/strings/string16.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "components/autofill/core/browser/address.h" 9 #include "components/autofill/core/browser/address.h"
10 #include "components/autofill/core/browser/autofill_type.h" 10 #include "components/autofill/core/browser/autofill_type.h"
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 address.GetRawInfo(ADDRESS_HOME_LINE1)); 254 address.GetRawInfo(ADDRESS_HOME_LINE1));
255 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); 255 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
256 256
257 // An empty address should clear out all address lines. 257 // An empty address should clear out all address lines.
258 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, long_street_address); 258 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, long_street_address);
259 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, empty_street_address); 259 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, empty_street_address);
260 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); 260 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
261 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); 261 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
262 } 262 }
263 263
264 // Verifies that Address::SetInfo() rejects setting data for 264 // Street addresses should be set properly.
265 // ADDRESS_HOME_STREET_ADDRESS without newlines, as there is no good general way
266 // to parse that data into the consituent address lines. Addresses without
267 // newlines should be set properly.
268 TEST(AddressTest, SetStreetAddress) { 265 TEST(AddressTest, SetStreetAddress) {
269 const base::string16 empty_street_address; 266 const base::string16 empty_street_address;
270 const base::string16 one_line_street_address =
271 ASCIIToUTF16("456 New St., Apt. 17");
272 const base::string16 multi_line_street_address = 267 const base::string16 multi_line_street_address =
273 ASCIIToUTF16("789 Fancy Pkwy.\n" 268 ASCIIToUTF16("789 Fancy Pkwy.\n"
274 "Unit 3.14\n" 269 "Unit 3.14\n"
275 "Box 9"); 270 "Box 9");
271 const base::string16 single_line_street_address =
272 ASCIIToUTF16("123 Main, Apt 7");
276 const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS); 273 const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS);
277 274
278 // Start with a non-empty address. 275 // Start with a non-empty address.
279 Address address; 276 Address address;
280 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); 277 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
281 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); 278 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42"));
282 address.SetRawInfo(ADDRESS_HOME_LINE3, ASCIIToUTF16("and a half")); 279 address.SetRawInfo(ADDRESS_HOME_LINE3, ASCIIToUTF16("and a half"));
283 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); 280 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
284 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); 281 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
285 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty()); 282 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty());
286 283
287 // Attempting to set a one-line address should fail, as the single line might
288 // actually represent multiple logical lines, combined into one due to the
289 // user having to work around constraints imposed by the website.
290 EXPECT_FALSE(address.SetInfo(type, one_line_street_address, "en-US"));
291 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
292 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
293 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE3));
294
295 // Attempting to set a multi-line address should succeed. 284 // Attempting to set a multi-line address should succeed.
296 EXPECT_TRUE(address.SetInfo(type, multi_line_street_address, "en-US")); 285 EXPECT_TRUE(address.SetInfo(type, multi_line_street_address, "en-US"));
297 EXPECT_EQ(ASCIIToUTF16("789 Fancy Pkwy."), 286 EXPECT_EQ(ASCIIToUTF16("789 Fancy Pkwy."),
298 address.GetRawInfo(ADDRESS_HOME_LINE1)); 287 address.GetRawInfo(ADDRESS_HOME_LINE1));
299 EXPECT_EQ(ASCIIToUTF16("Unit 3.14"), address.GetRawInfo(ADDRESS_HOME_LINE2)); 288 EXPECT_EQ(ASCIIToUTF16("Unit 3.14"), address.GetRawInfo(ADDRESS_HOME_LINE2));
300 EXPECT_EQ(ASCIIToUTF16("Box 9"), address.GetRawInfo(ADDRESS_HOME_LINE3)); 289 EXPECT_EQ(ASCIIToUTF16("Box 9"), address.GetRawInfo(ADDRESS_HOME_LINE3));
301 290
291 // Setting a single line street address should clear out subsequent lines.
292 EXPECT_TRUE(address.SetInfo(type, single_line_street_address, "en-US"));
293 EXPECT_EQ(single_line_street_address, address.GetRawInfo(ADDRESS_HOME_LINE1));
294 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
295 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE3));
296
302 // Attempting to set an empty address should also succeed, and clear out the 297 // Attempting to set an empty address should also succeed, and clear out the
303 // previously stored data. 298 // previously stored data.
304 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); 299 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
Ilya Sherman 2014/07/01 02:55:17 IMO it's good to start with all lines non-empty, a
Evan Stade 2014/07/01 23:18:52 fair enough, fixed
305 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
306 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty());
307 EXPECT_TRUE(address.SetInfo(type, empty_street_address, "en-US")); 300 EXPECT_TRUE(address.SetInfo(type, empty_street_address, "en-US"));
308 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); 301 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
309 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); 302 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
310 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE3)); 303 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE3));
311 } 304 }
312 305
313 // Verifies that Address::SetInfio() rejects setting data for 306 // Verifies that Address::SetInfio() rejects setting data for
314 // ADDRESS_HOME_STREET_ADDRESS if the data has any interior blank lines. 307 // ADDRESS_HOME_STREET_ADDRESS if the data has any interior blank lines.
315 TEST(AddressTest, SetStreetAddressRejectsAddressesWithInteriorBlankLines) { 308 TEST(AddressTest, SetStreetAddressRejectsAddressesWithInteriorBlankLines) {
316 // Start with a non-empty address. 309 // Start with a non-empty address.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 ASCIIToUTF16("Address line 1" 366 ASCIIToUTF16("Address line 1"
374 "Address line 2" 367 "Address line 2"
375 "\n"), 368 "\n"),
376 "en-US")); 369 "en-US"));
377 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); 370 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
378 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); 371 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
379 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); 372 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
380 } 373 }
381 374
382 } // namespace autofill 375 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698