| 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 |