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