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