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