credit_card_unittest.cc revision 3345a6884c488ff3a535c2c9acdd33d74b37e311
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h"
63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/utf_string_conversions.h"
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/autofill/autofill_common_unittest.h"
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/autofill/credit_card.h"
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gtest/include/gtest/gtest.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace {
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Tests credit card summary string generation.  This test simulates a variety
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// of different possible summary strings.  Variations occur based on the
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// existence of credit card number, month, and year fields.
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST(CreditCardTest, PreviewSummaryAndObfuscatedNumberStrings) {
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Case 0: empty credit card.
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CreditCard credit_card0(string16(), 0);
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 summary0 = credit_card0.PreviewSummary();
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(), summary0);
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 obfuscated0 = credit_card0.ObfuscatedNumber();
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(), obfuscated0);
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Case 00: Empty credit card with empty strings.
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CreditCard credit_card00(string16(), 0);
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  autofill_unittest::SetCreditCardInfo(&credit_card00, "Corporate",
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      "John Dillinger", "Visa", "", "", "", 1);
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 summary00 = credit_card00.PreviewSummary();
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(), summary00);
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 obfuscated00 = credit_card00.ObfuscatedNumber();
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(), obfuscated00);
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Case 1: No credit card number.
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CreditCard credit_card1(string16(), 0);
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  autofill_unittest::SetCreditCardInfo(&credit_card1, "Corporate",
363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      "John Dillinger", "Visa", "", "01", "2010", 1);
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 summary1 = credit_card1.PreviewSummary();
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(), summary1);
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 obfuscated1 = credit_card1.ObfuscatedNumber();
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(), obfuscated1);
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Case 2: No month.
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CreditCard credit_card2(string16(), 0);
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  autofill_unittest::SetCreditCardInfo(&credit_card2, "Corporate",
453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      "John Dillinger", "Visa", "123456789012", "", "2010", 1);
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 summary2 = credit_card2.PreviewSummary();
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(ASCIIToUTF16("************9012")), summary2);
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 obfuscated2 = credit_card2.ObfuscatedNumber();
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(ASCIIToUTF16("************9012")), obfuscated2);
50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Case 3: No year.
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CreditCard credit_card3(string16(), 0);
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  autofill_unittest::SetCreditCardInfo(&credit_card3, "Corporate",
543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      "John Dillinger", "Visa", "123456789012", "01", "", 1);
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 summary3 = credit_card3.PreviewSummary();
56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(ASCIIToUTF16("************9012")), summary3);
57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 obfuscated3 = credit_card3.ObfuscatedNumber();
58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(ASCIIToUTF16("************9012")), obfuscated3);
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Case 4: Have everything.
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CreditCard credit_card4(string16(), 0);
62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  autofill_unittest::SetCreditCardInfo(&credit_card4, "Corporate",
633345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      "John Dillinger", "Visa", "123456789012", "01", "2010", 1);
64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 summary4 = credit_card4.PreviewSummary();
65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(ASCIIToUTF16("************9012, Exp: 01/2010")), summary4);
66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  string16 obfuscated4 = credit_card4.ObfuscatedNumber();
67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  EXPECT_EQ(string16(ASCIIToUTF16("************9012")), obfuscated4);
68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace
71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
72