| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "base/utf_string_conversions.h" |
| #include "chrome/browser/autofill/autofill_profile.h" |
| #include "chrome/browser/autofill/autofill_type.h" |
| #include "chrome/browser/autofill/credit_card.h" |
| #include "chrome/browser/autofill/select_control_handler.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "webkit/glue/form_field.h" |
| |
| TEST(SelectControlHandlerTest, CreditCardMonthExact) { |
| const char* const kMonthsNumeric[] = { |
| "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", |
| }; |
| std::vector<string16> options(arraysize(kMonthsNumeric)); |
| for (size_t i = 0; i < arraysize(kMonthsNumeric); ++i) |
| options[i] = ASCIIToUTF16(kMonthsNumeric[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| CreditCard credit_card; |
| credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01")); |
| autofill::FillSelectControl(credit_card, CREDIT_CARD_EXP_MONTH, &field); |
| EXPECT_EQ(ASCIIToUTF16("01"), field.value); |
| } |
| |
| TEST(SelectControlHandlerTest, CreditCardMonthAbbreviated) { |
| const char* const kMonthsAbbreviated[] = { |
| "Jan", "Feb", "Mar", "Apr", "May", "Jun", |
| "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", |
| }; |
| std::vector<string16> options(arraysize(kMonthsAbbreviated)); |
| for (size_t i = 0; i < arraysize(kMonthsAbbreviated); ++i) |
| options[i] = ASCIIToUTF16(kMonthsAbbreviated[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| CreditCard credit_card; |
| credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01")); |
| autofill::FillSelectControl(credit_card, CREDIT_CARD_EXP_MONTH, &field); |
| EXPECT_EQ(ASCIIToUTF16("Jan"), field.value); |
| } |
| |
| TEST(SelectControlHandlerTest, CreditCardMonthFull) { |
| const char* const kMonthsFull[] = { |
| "January", "February", "March", "April", "May", "June", |
| "July", "August", "September", "October", "November", "December", |
| }; |
| std::vector<string16> options(arraysize(kMonthsFull)); |
| for (size_t i = 0; i < arraysize(kMonthsFull); ++i) |
| options[i] = ASCIIToUTF16(kMonthsFull[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| CreditCard credit_card; |
| credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01")); |
| autofill::FillSelectControl(credit_card, CREDIT_CARD_EXP_MONTH, &field); |
| EXPECT_EQ(ASCIIToUTF16("January"), field.value); |
| } |
| |
| TEST(SelectControlHandlerTest, CreditCardMonthNumeric) { |
| const char* const kMonthsNumeric[] = { |
| "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", |
| }; |
| std::vector<string16> options(arraysize(kMonthsNumeric)); |
| for (size_t i = 0; i < arraysize(kMonthsNumeric); ++i) |
| options[i] = ASCIIToUTF16(kMonthsNumeric[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| CreditCard credit_card; |
| credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01")); |
| autofill::FillSelectControl(credit_card, CREDIT_CARD_EXP_MONTH, &field); |
| EXPECT_EQ(ASCIIToUTF16("1"), field.value); |
| } |
| |
| TEST(SelectControlHandlerTest, AddressCountryFull) { |
| const char* const kCountries[] = { |
| "Albania", "Canada" |
| }; |
| std::vector<string16> options(arraysize(kCountries)); |
| for (size_t i = 0; i < arraysize(kCountries); ++i) |
| options[i] = ASCIIToUTF16(kCountries[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| AutofillProfile profile; |
| profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("CA")); |
| autofill::FillSelectControl(profile, ADDRESS_HOME_COUNTRY, &field); |
| EXPECT_EQ(ASCIIToUTF16("Canada"), field.value); |
| } |
| |
| TEST(SelectControlHandlerTest, AddressCountryAbbrev) { |
| const char* const kCountries[] = { |
| "AL", "CA" |
| }; |
| std::vector<string16> options(arraysize(kCountries)); |
| for (size_t i = 0; i < arraysize(kCountries); ++i) |
| options[i] = ASCIIToUTF16(kCountries[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| AutofillProfile profile; |
| profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("Canada")); |
| autofill::FillSelectControl(profile, ADDRESS_HOME_COUNTRY, &field); |
| EXPECT_EQ(ASCIIToUTF16("CA"), field.value); |
| } |
| |
| TEST(SelectControlHandlerTest, AddressStateFull) { |
| const char* const kStates[] = { |
| "Alabama", "California" |
| }; |
| std::vector<string16> options(arraysize(kStates)); |
| for (size_t i = 0; i < arraysize(kStates); ++i) |
| options[i] = ASCIIToUTF16(kStates[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| AutofillProfile profile; |
| profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("CA")); |
| autofill::FillSelectControl(profile, ADDRESS_HOME_STATE, &field); |
| EXPECT_EQ(ASCIIToUTF16("California"), field.value); |
| } |
| |
| TEST(SelectControlHandlerTest, AddressStateAbbrev) { |
| const char* const kStates[] = { |
| "AL", "CA" |
| }; |
| std::vector<string16> options(arraysize(kStates)); |
| for (size_t i = 0; i < arraysize(kStates); ++i) |
| options[i] = ASCIIToUTF16(kStates[i]); |
| |
| webkit_glue::FormField field; |
| field.form_control_type = ASCIIToUTF16("select-one"); |
| field.option_strings = options; |
| |
| AutofillProfile profile; |
| profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("California")); |
| autofill::FillSelectControl(profile, ADDRESS_HOME_STATE, &field); |
| EXPECT_EQ(ASCIIToUTF16("CA"), field.value); |
| } |