select_control_handler_unittest.cc revision dc0f95d653279beabeb9817299e2902918ba123e
1// Copyright (c) 2011 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/utf_string_conversions.h" 6#include "chrome/browser/autofill/autofill_profile.h" 7#include "chrome/browser/autofill/autofill_type.h" 8#include "chrome/browser/autofill/credit_card.h" 9#include "chrome/browser/autofill/select_control_handler.h" 10#include "testing/gtest/include/gtest/gtest.h" 11#include "webkit/glue/form_field.h" 12 13TEST(SelectControlHandlerTest, CreditCardMonthExact) { 14 const char* const kMonthsNumeric[] = { 15 "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", 16 }; 17 std::vector<string16> options(arraysize(kMonthsNumeric)); 18 for (size_t i = 0; i < arraysize(kMonthsNumeric); ++i) 19 options[i] = ASCIIToUTF16(kMonthsNumeric[i]); 20 21 webkit_glue::FormField field; 22 field.set_form_control_type(ASCIIToUTF16("select-one")); 23 field.set_option_strings(options); 24 25 CreditCard credit_card; 26 credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), ASCIIToUTF16("01")); 27 autofill::FillSelectControl(credit_card, 28 AutofillType(CREDIT_CARD_EXP_MONTH), 29 &field); 30 EXPECT_EQ(ASCIIToUTF16("01"), field.value()); 31} 32 33TEST(SelectControlHandlerTest, CreditCardMonthAbbreviated) { 34 const char* const kMonthsAbbreviated[] = { 35 "Jan", "Feb", "Mar", "Apr", "May", "Jun", 36 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", 37 }; 38 std::vector<string16> options(arraysize(kMonthsAbbreviated)); 39 for (size_t i = 0; i < arraysize(kMonthsAbbreviated); ++i) 40 options[i] = ASCIIToUTF16(kMonthsAbbreviated[i]); 41 42 webkit_glue::FormField field; 43 field.set_form_control_type(ASCIIToUTF16("select-one")); 44 field.set_option_strings(options); 45 46 CreditCard credit_card; 47 credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), ASCIIToUTF16("01")); 48 autofill::FillSelectControl(credit_card, 49 AutofillType(CREDIT_CARD_EXP_MONTH), 50 &field); 51 EXPECT_EQ(ASCIIToUTF16("Jan"), field.value()); 52} 53 54TEST(SelectControlHandlerTest, CreditCardMonthFull) { 55 const char* const kMonthsFull[] = { 56 "January", "February", "March", "April", "May", "June", 57 "July", "August", "September", "October", "November", "December", 58 }; 59 std::vector<string16> options(arraysize(kMonthsFull)); 60 for (size_t i = 0; i < arraysize(kMonthsFull); ++i) 61 options[i] = ASCIIToUTF16(kMonthsFull[i]); 62 63 webkit_glue::FormField field; 64 field.set_form_control_type(ASCIIToUTF16("select-one")); 65 field.set_option_strings(options); 66 67 CreditCard credit_card; 68 credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), ASCIIToUTF16("01")); 69 autofill::FillSelectControl(credit_card, 70 AutofillType(CREDIT_CARD_EXP_MONTH), 71 &field); 72 EXPECT_EQ(ASCIIToUTF16("January"), field.value()); 73} 74 75TEST(SelectControlHandlerTest, CreditCardMonthNumeric) { 76 const char* const kMonthsNumeric[] = { 77 "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", 78 }; 79 std::vector<string16> options(arraysize(kMonthsNumeric)); 80 for (size_t i = 0; i < arraysize(kMonthsNumeric); ++i) 81 options[i] = ASCIIToUTF16(kMonthsNumeric[i]); 82 83 webkit_glue::FormField field; 84 field.set_form_control_type(ASCIIToUTF16("select-one")); 85 field.set_option_strings(options); 86 87 CreditCard credit_card; 88 credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), ASCIIToUTF16("01")); 89 autofill::FillSelectControl(credit_card, 90 AutofillType(CREDIT_CARD_EXP_MONTH), 91 &field); 92 EXPECT_EQ(ASCIIToUTF16("1"), field.value()); 93} 94 95TEST(SelectControlHandlerTest, AddressCountryFull) { 96 const char* const kCountries[] = { 97 "Albania", "Canada" 98 }; 99 std::vector<string16> options(arraysize(kCountries)); 100 for (size_t i = 0; i < arraysize(kCountries); ++i) 101 options[i] = ASCIIToUTF16(kCountries[i]); 102 103 webkit_glue::FormField field; 104 field.set_form_control_type(ASCIIToUTF16("select-one")); 105 field.set_option_strings(options); 106 107 AutoFillProfile profile; 108 profile.SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("CA")); 109 autofill::FillSelectControl(profile, 110 AutofillType(ADDRESS_HOME_COUNTRY), 111 &field); 112 EXPECT_EQ(ASCIIToUTF16("Canada"), field.value()); 113} 114 115TEST(SelectControlHandlerTest, AddressCountryAbbrev) { 116 const char* const kCountries[] = { 117 "AL", "CA" 118 }; 119 std::vector<string16> options(arraysize(kCountries)); 120 for (size_t i = 0; i < arraysize(kCountries); ++i) 121 options[i] = ASCIIToUTF16(kCountries[i]); 122 123 webkit_glue::FormField field; 124 field.set_form_control_type(ASCIIToUTF16("select-one")); 125 field.set_option_strings(options); 126 127 AutoFillProfile profile; 128 profile.SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("Canada")); 129 autofill::FillSelectControl(profile, 130 AutofillType(ADDRESS_HOME_COUNTRY), 131 &field); 132 EXPECT_EQ(ASCIIToUTF16("CA"), field.value()); 133} 134 135TEST(SelectControlHandlerTest, AddressStateFull) { 136 const char* const kStates[] = { 137 "Alabama", "California" 138 }; 139 std::vector<string16> options(arraysize(kStates)); 140 for (size_t i = 0; i < arraysize(kStates); ++i) 141 options[i] = ASCIIToUTF16(kStates[i]); 142 143 webkit_glue::FormField field; 144 field.set_form_control_type(ASCIIToUTF16("select-one")); 145 field.set_option_strings(options); 146 147 AutoFillProfile profile; 148 profile.SetInfo(AutofillType(ADDRESS_HOME_STATE), ASCIIToUTF16("CA")); 149 autofill::FillSelectControl(profile, 150 AutofillType(ADDRESS_HOME_STATE), 151 &field); 152 EXPECT_EQ(ASCIIToUTF16("California"), field.value()); 153} 154 155TEST(SelectControlHandlerTest, AddressStateAbbrev) { 156 const char* const kStates[] = { 157 "AL", "CA" 158 }; 159 std::vector<string16> options(arraysize(kStates)); 160 for (size_t i = 0; i < arraysize(kStates); ++i) 161 options[i] = ASCIIToUTF16(kStates[i]); 162 163 webkit_glue::FormField field; 164 field.set_form_control_type(ASCIIToUTF16("select-one")); 165 field.set_option_strings(options); 166 167 AutoFillProfile profile; 168 profile.SetInfo(AutofillType(ADDRESS_HOME_STATE), ASCIIToUTF16("California")); 169 autofill::FillSelectControl(profile, 170 AutofillType(ADDRESS_HOME_STATE), 171 &field); 172 EXPECT_EQ(ASCIIToUTF16("CA"), field.value()); 173} 174