data_model_wrapper_unittest.cc revision c2db58bd994c04d98e4ee2cd7565b71548655fe3
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 base::string16 unused, unused2; 38 EXPECT_FALSE(wrapper.GetDisplayText(&unused, &unused2)); 39} 40 41TEST(AutofillCreditCardWrapperTest, GetDisplayTextEmptyWhenInvalid) { 42 CreditCard card; 43 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12")); 44 card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("9999")); 45 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("41111")); 46 AutofillCreditCardWrapper wrapper(&card); 47 base::string16 unused, unused2; 48 EXPECT_FALSE(wrapper.GetDisplayText(&unused, &unused2)); 49} 50 51TEST(AutofillCreditCardWrapperTest, GetDisplayTextNotEmptyWhenValid) { 52 CreditCard card; 53 card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12")); 54 card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("9999")); 55 card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("4111111111111111")); 56 AutofillCreditCardWrapper wrapper(&card); 57 base::string16 unused, unused2; 58 EXPECT_TRUE(wrapper.GetDisplayText(&unused, &unused2)); 59} 60 61TEST(WalletInstrumentWrapperTest, GetInfoCreditCardExpMonth) { 62 scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument( 63 wallet::GetTestMaskedInstrument()); 64 MonthComboboxModel model; 65 for (int month = 1; month <= 12; ++month) { 66 instrument->expiration_month_ = month; 67 WalletInstrumentWrapper wrapper(instrument.get()); 68 EXPECT_EQ(model.GetItemAt(month), 69 wrapper.GetInfo(AutofillType(CREDIT_CARD_EXP_MONTH))); 70 } 71} 72 73TEST(WalletInstrumentWrapperTest, GetDisplayTextEmptyWhenExpired) { 74 scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument( 75 wallet::GetTestMaskedInstrument()); 76 instrument->status_ = wallet::WalletItems::MaskedInstrument::EXPIRED; 77 WalletInstrumentWrapper wrapper(instrument.get()); 78 base::string16 unused, unused2; 79 EXPECT_FALSE(wrapper.GetDisplayText(&unused, &unused2)); 80} 81 82TEST(DataModelWrapperTest, GetDisplayTextEmptyWithoutPhone) { 83 scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument( 84 wallet::GetTestMaskedInstrument()); 85 86 WalletInstrumentWrapper instrument_wrapper(instrument.get()); 87 base::string16 unused, unused2; 88 ASSERT_TRUE(instrument_wrapper.GetDisplayText(&unused, &unused2)); 89 90 WalletAddressWrapper address_wrapper(&instrument->address()); 91 ASSERT_TRUE(address_wrapper.GetDisplayText(&unused, &unused2)); 92 93 const_cast<wallet::Address*>(&instrument->address())->set_phone_number( 94 string16()); 95 96 ASSERT_TRUE( 97 instrument_wrapper.GetInfo( 98 AutofillType(PHONE_HOME_WHOLE_NUMBER)).empty()); 99 EXPECT_FALSE(instrument_wrapper.GetDisplayText(&unused, &unused2)); 100 101 ASSERT_TRUE( 102 address_wrapper.GetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER)).empty()); 103 EXPECT_FALSE(address_wrapper.GetDisplayText(&unused, &unused2)); 104} 105 106} // namespace autofill 107