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