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

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

Issue 1694443004: [Autofill] Add credit card first and last name heuristics predictions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 9 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/guid.h" 7 #include "base/guid.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 CreditCard original_card(base::GenerateGUID(), "https://www.example.com"); 294 CreditCard original_card(base::GenerateGUID(), "https://www.example.com");
295 test::SetCreditCardInfo( 295 test::SetCreditCardInfo(
296 &original_card, "John Dillinger", "123456789012", "09", "2017"); 296 &original_card, "John Dillinger", "123456789012", "09", "2017");
297 297
298 CreditCard a = original_card; 298 CreditCard a = original_card;
299 299
300 // The new card has a different name, expiration date, and origin. 300 // The new card has a different name, expiration date, and origin.
301 CreditCard b = a; 301 CreditCard b = a;
302 b.set_guid(base::GenerateGUID()); 302 b.set_guid(base::GenerateGUID());
303 b.set_origin("https://www.example.org"); 303 b.set_origin("https://www.example.org");
304 b.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("J. Dillinger")); 304 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger"));
305 b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08")); 305 b.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("08"));
306 b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019")); 306 b.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2019"));
307 307
308 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); 308 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
309 EXPECT_EQ("https://www.example.org", a.origin()); 309 EXPECT_EQ("https://www.example.org", a.origin());
310 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); 310 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL));
311 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); 311 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
312 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 312 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
313 313
314 // Try again, but with no name set for |b|. 314 // Try again, but with no name set for |b|.
315 a = original_card; 315 a = original_card;
316 b.SetRawInfo(CREDIT_CARD_NAME, base::string16()); 316 b.SetRawInfo(CREDIT_CARD_NAME_FULL, base::string16());
317 317
318 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); 318 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
319 EXPECT_EQ("https://www.example.org", a.origin()); 319 EXPECT_EQ("https://www.example.org", a.origin());
320 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); 320 EXPECT_EQ(ASCIIToUTF16("John Dillinger"),
321 a.GetRawInfo(CREDIT_CARD_NAME_FULL));
321 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); 322 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
322 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 323 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
323 324
324 // Try again, but with only the original card having a verified origin. 325 // Try again, but with only the original card having a verified origin.
325 // |a| should be unchanged. 326 // |a| should be unchanged.
326 a = original_card; 327 a = original_card;
327 a.set_origin("Chrome settings"); 328 a.set_origin("Chrome settings");
328 b.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("J. Dillinger")); 329 b.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("J. Dillinger"));
329 330
330 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); 331 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
331 EXPECT_EQ("Chrome settings", a.origin()); 332 EXPECT_EQ("Chrome settings", a.origin());
332 EXPECT_EQ(ASCIIToUTF16("John Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); 333 EXPECT_EQ(ASCIIToUTF16("John Dillinger"),
334 a.GetRawInfo(CREDIT_CARD_NAME_FULL));
333 EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); 335 EXPECT_EQ(ASCIIToUTF16("09"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
334 EXPECT_EQ(ASCIIToUTF16("2017"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 336 EXPECT_EQ(ASCIIToUTF16("2017"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
335 337
336 // Try again, but with only the new card having a verified origin. 338 // Try again, but with only the new card having a verified origin.
337 a = original_card; 339 a = original_card;
338 b.set_origin("Chrome settings"); 340 b.set_origin("Chrome settings");
339 341
340 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); 342 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
341 EXPECT_EQ("Chrome settings", a.origin()); 343 EXPECT_EQ("Chrome settings", a.origin());
342 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); 344 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL));
343 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); 345 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
344 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 346 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
345 347
346 // Try again, with both cards having a verified origin. 348 // Try again, with both cards having a verified origin.
347 a = original_card; 349 a = original_card;
348 a.set_origin("Chrome Autofill dialog"); 350 a.set_origin("Chrome Autofill dialog");
349 b.set_origin("Chrome settings"); 351 b.set_origin("Chrome settings");
350 352
351 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US")); 353 EXPECT_TRUE(a.UpdateFromImportedCard(b, "en-US"));
352 EXPECT_EQ("Chrome settings", a.origin()); 354 EXPECT_EQ("Chrome settings", a.origin());
353 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME)); 355 EXPECT_EQ(ASCIIToUTF16("J. Dillinger"), a.GetRawInfo(CREDIT_CARD_NAME_FULL));
354 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH)); 356 EXPECT_EQ(ASCIIToUTF16("08"), a.GetRawInfo(CREDIT_CARD_EXP_MONTH));
355 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 357 EXPECT_EQ(ASCIIToUTF16("2019"), a.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
356 358
357 // Try again, but with |b| having a different card number. 359 // Try again, but with |b| having a different card number.
358 // |a| should be unchanged. 360 // |a| should be unchanged.
359 a = original_card; 361 a = original_card;
360 b.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("4111111111111111")); 362 b.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("4111111111111111"));
361 363
362 EXPECT_FALSE(a.UpdateFromImportedCard(b, "en-US")); 364 EXPECT_FALSE(a.UpdateFromImportedCard(b, "en-US"));
363 EXPECT_EQ(original_card, a); 365 EXPECT_EQ(original_card, a);
364 } 366 }
365 367
366 TEST(CreditCardTest, IsComplete) { 368 TEST(CreditCardTest, IsComplete) {
367 CreditCard card(base::GenerateGUID(), "https://www.example.com/"); 369 CreditCard card(base::GenerateGUID(), "https://www.example.com/");
368 EXPECT_FALSE(card.IsComplete()); 370 EXPECT_FALSE(card.IsComplete());
369 card.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("Wally T. Walrus")); 371 card.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("Wally T. Walrus"));
370 EXPECT_FALSE(card.IsComplete()); 372 EXPECT_FALSE(card.IsComplete());
371 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01")); 373 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01"));
372 EXPECT_FALSE(card.IsComplete()); 374 EXPECT_FALSE(card.IsComplete());
373 card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2014")); 375 card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2014"));
374 376
375 for (size_t i = 0; i < arraysize(kValidNumbers); ++i) { 377 for (size_t i = 0; i < arraysize(kValidNumbers); ++i) {
376 SCOPED_TRACE(kValidNumbers[i]); 378 SCOPED_TRACE(kValidNumbers[i]);
377 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16(kValidNumbers[i])); 379 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16(kValidNumbers[i]));
378 EXPECT_TRUE(card.IsComplete()); 380 EXPECT_TRUE(card.IsComplete());
379 } 381 }
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 base::string16 card_number = base::ASCIIToUTF16("test"); 668 base::string16 card_number = base::ASCIIToUTF16("test");
667 int month = 1; 669 int month = 1;
668 int year = 3000; 670 int year = 3000;
669 CreditCard card(card_number, month, year); 671 CreditCard card(card_number, month, year);
670 EXPECT_EQ(card_number, card.number()); 672 EXPECT_EQ(card_number, card.number());
671 EXPECT_EQ(month, card.expiration_month()); 673 EXPECT_EQ(month, card.expiration_month());
672 EXPECT_EQ(year, card.expiration_year()); 674 EXPECT_EQ(year, card.expiration_year());
673 } 675 }
674 676
675 } // namespace autofill 677 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/credit_card_field_unittest.cc ('k') | components/autofill/core/browser/field_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698