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 |