OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |