data_model_wrapper_unittest.cc revision 3240926e260ce088908e02ac07a6cf7b0c0cbf44
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
3// found in the LICENSE file.
4
5#include "base/memory/scoped_ptr.h"
6#include "base/strings/string_number_conversions.h"
7#include "base/strings/utf_string_conversions.h"
8#include "chrome/browser/ui/autofill/autofill_dialog_models.h"
9#include "chrome/browser/ui/autofill/data_model_wrapper.h"
10#include "components/autofill/content/browser/wallet/wallet_items.h"
11#include "components/autofill/content/browser/wallet/wallet_test_util.h"
12#include "components/autofill/core/browser/autofill_common_test.h"
13#include "components/autofill/core/browser/autofill_profile.h"
14#include "components/autofill/core/browser/credit_card.h"
15#include "components/autofill/core/browser/field_types.h"
16#include "testing/gtest/include/gtest/gtest.h"
17
18namespace autofill {
19
20TEST(AutofillCreditCardWrapperTest, GetInfoCreditCardExpMonth) {
21  CreditCard card;
22  MonthComboboxModel model;
23  for (int month = 1; month <= 12; ++month) {
24    card.SetRawInfo(CREDIT_CARD_EXP_MONTH, base::IntToString16(month));
25    AutofillCreditCardWrapper wrapper(&card);
26    EXPECT_EQ(model.GetItemAt(month),
27              wrapper.GetInfo(AutofillType(CREDIT_CARD_EXP_MONTH)));
28  }
29}
30
31TEST(AutofillCreditCardWrapperTest, GetDisplayTextEmptyWhenExpired) {
32  CreditCard card;
33  card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1"));
34  card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2010"));
35  card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("4111111111111111"));
36  AutofillCreditCardWrapper wrapper(&card);
37  EXPECT_TRUE(wrapper.GetDisplayText().empty());
38}
39
40TEST(AutofillCreditCardWrapperTest, GetDisplayTextEmptyWhenInvalid) {
41  CreditCard card;
42  card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12"));
43  card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("9999"));
44  card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("41111"));
45  AutofillCreditCardWrapper wrapper(&card);
46  EXPECT_TRUE(wrapper.GetDisplayText().empty());
47}
48
49TEST(AutofillCreditCardWrapperTest, GetDisplayTextNotEmptyWhenValid) {
50  CreditCard card;
51  card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12"));
52  card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("9999"));
53  card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("4111111111111111"));
54  AutofillCreditCardWrapper wrapper(&card);
55  EXPECT_FALSE(wrapper.GetDisplayText().empty());
56}
57
58TEST(WalletInstrumentWrapperTest, GetInfoCreditCardExpMonth) {
59  scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument(
60      wallet::GetTestMaskedInstrument());
61  MonthComboboxModel model;
62  for (int month = 1; month <= 12; ++month) {
63    instrument->expiration_month_ = month;
64    WalletInstrumentWrapper wrapper(instrument.get());
65    EXPECT_EQ(model.GetItemAt(month),
66              wrapper.GetInfo(AutofillType(CREDIT_CARD_EXP_MONTH)));
67  }
68}
69
70TEST(WalletInstrumentWrapperTest, GetDisplayTextEmptyWhenExpired) {
71  scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument(
72      wallet::GetTestMaskedInstrument());
73  instrument->status_ = wallet::WalletItems::MaskedInstrument::EXPIRED;
74  WalletInstrumentWrapper wrapper(instrument.get());
75  EXPECT_TRUE(wrapper.GetDisplayText().empty());
76}
77
78TEST(DataModelWrapperTest, GetDisplayTextEmptyWithoutPhone) {
79  scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument(
80      wallet::GetTestMaskedInstrument());
81
82  WalletInstrumentWrapper instrument_wrapper(instrument.get());
83  ASSERT_FALSE(instrument_wrapper.GetDisplayText().empty());
84
85  WalletAddressWrapper address_wrapper(&instrument->address());
86  ASSERT_FALSE(address_wrapper.GetDisplayText().empty());
87
88  const_cast<wallet::Address*>(&instrument->address())->set_phone_number(
89      string16());
90
91  ASSERT_TRUE(
92      instrument_wrapper.GetInfo(
93          AutofillType(PHONE_HOME_WHOLE_NUMBER)).empty());
94  EXPECT_TRUE(instrument_wrapper.GetDisplayText().empty());
95
96  ASSERT_TRUE(
97      address_wrapper.GetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER)).empty());
98  EXPECT_TRUE(address_wrapper.GetDisplayText().empty());
99}
100
101}  // namespace autofill
102