OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
please use gerrit instead
2014/06/05 22:22:49
Remove this file! (PreloadAddressValidatorTests ha
please use gerrit instead
2014/06/09 23:28:17
Done.
| |
3 // found in the LICENSE file. | |
4 | |
5 #include "third_party/libaddressinput/chromium/suggestions.h" | |
6 | |
7 // Use "base/memory/scoped_ptr.h" instead. | |
8 #define I18N_ADDRESSINPUT_UTIL_SCOPED_PTR_H_ | |
9 | |
10 #include "base/basictypes.h" | |
11 #include "base/memory/scoped_ptr.h" | |
12 #include "testing/gtest/include/gtest/gtest.h" | |
13 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_da ta.h" | |
14 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/null_stora ge.h" | |
15 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/preload_su pplier.h" | |
16 #include "third_party/libaddressinput/src/cpp/test/fake_downloader.h" | |
17 | |
18 namespace autofill { | |
19 | |
20 /* | |
21 class SuggestionsTest : public testing::Test { | |
22 protected: | |
23 SuggestionsTest() : suggestions_() {} | |
24 | |
25 virtual ~SuggestionsTest() {} | |
26 | |
27 Suggestions suggestions_; | |
28 | |
29 private: | |
30 DISALLOW_COPY_AND_ASSIGN(SuggestionsTest); | |
31 }; | |
32 | |
33 TEST_F(SuggestionsTest, Basic) {} | |
34 | |
35 TEST_F(ChromeAddressValidatorTest, SuggestAdminAreaForPostalCode) { | |
36 AddressData address; | |
37 address.region_code = "US"; | |
38 address.postal_code = "90291"; | |
39 | |
40 std::vector<AddressData> suggestions; | |
41 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
42 validator_->GetSuggestions(address, POSTAL_CODE, 1, &suggestions)); | |
43 ASSERT_EQ(1U, suggestions.size()); | |
44 EXPECT_EQ("CA", suggestions[0].administrative_area); | |
45 EXPECT_EQ("90291", suggestions[0].postal_code); | |
46 } | |
47 | |
48 TEST_F(ChromeAddressValidatorTest, SuggestLocalityForPostalCodeWithAdminArea) { | |
49 validator_->LoadRules("TW"); | |
50 AddressData address; | |
51 address.region_code = "TW"; | |
52 address.postal_code = "515"; | |
53 address.administrative_area = "Changhua"; | |
54 | |
55 std::vector<AddressData> suggestions; | |
56 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
57 validator_->GetSuggestions(address, POSTAL_CODE, 1, &suggestions)); | |
58 ASSERT_EQ(1U, suggestions.size()); | |
59 EXPECT_EQ("Dacun Township", suggestions[0].locality); | |
60 EXPECT_EQ("Changhua County", suggestions[0].administrative_area); | |
61 EXPECT_EQ("515", suggestions[0].postal_code); | |
62 } | |
63 | |
64 TEST_F(ChromeAddressValidatorTest, SuggestAdminAreaForPostalCodeWithLocality) { | |
65 validator_->LoadRules("TW"); | |
66 AddressData address; | |
67 address.region_code = "TW"; | |
68 address.postal_code = "515"; | |
69 address.locality = "Dacun"; | |
70 | |
71 std::vector<AddressData> suggestions; | |
72 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
73 validator_->GetSuggestions(address, POSTAL_CODE, 1, &suggestions)); | |
74 ASSERT_EQ(1U, suggestions.size()); | |
75 EXPECT_EQ("Dacun Township", suggestions[0].locality); | |
76 EXPECT_EQ("Changhua County", suggestions[0].administrative_area); | |
77 EXPECT_EQ("515", suggestions[0].postal_code); | |
78 } | |
79 | |
80 TEST_F(ChromeAddressValidatorTest, NoSuggestForPostalCodeWithWrongAdminArea) { | |
81 AddressData address; | |
82 address.region_code = "US"; | |
83 address.postal_code = "90066"; | |
84 address.postal_code = "TX"; | |
85 | |
86 std::vector<AddressData> suggestions; | |
87 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
88 validator_->GetSuggestions(address, POSTAL_CODE, 1, &suggestions)); | |
89 EXPECT_TRUE(suggestions.empty()); | |
90 } | |
91 | |
92 TEST_F(ChromeAddressValidatorTest, SuggestForLocality) { | |
93 validator_->LoadRules("CN"); | |
94 AddressData address; | |
95 address.region_code = "CN"; | |
96 address.locality = "Anqin"; | |
97 | |
98 std::vector<AddressData> suggestions; | |
99 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
100 validator_->GetSuggestions(address, LOCALITY, 10, &suggestions)); | |
101 ASSERT_EQ(1U, suggestions.size()); | |
102 EXPECT_EQ("Anqing Shi", suggestions[0].locality); | |
103 EXPECT_EQ("ANHUI SHENG", suggestions[0].administrative_area); | |
104 } | |
105 | |
106 TEST_F(ChromeAddressValidatorTest, SuggestForLocalityAndAdminArea) { | |
107 validator_->LoadRules("CN"); | |
108 AddressData address; | |
109 address.region_code = "CN"; | |
110 address.locality = "Anqing"; | |
111 address.administrative_area = "Anhui"; | |
112 | |
113 std::vector<AddressData> suggestions; | |
114 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
115 validator_->GetSuggestions(address, LOCALITY, 10, &suggestions)); | |
116 ASSERT_EQ(1U, suggestions.size()); | |
117 EXPECT_TRUE(suggestions[0].dependent_locality.empty()); | |
118 EXPECT_EQ("Anqing Shi", suggestions[0].locality); | |
119 EXPECT_EQ("ANHUI SHENG", suggestions[0].administrative_area); | |
120 } | |
121 | |
122 TEST_F(ChromeAddressValidatorTest, SuggestForAdminAreaAndLocality) { | |
123 validator_->LoadRules("CN"); | |
124 AddressData address; | |
125 address.region_code = "CN"; | |
126 address.locality = "Anqing"; | |
127 address.administrative_area = "Anhui"; | |
128 | |
129 std::vector<AddressData> suggestions; | |
130 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
131 validator_->GetSuggestions(address, ADMIN_AREA, 10, &suggestions)); | |
132 ASSERT_EQ(1U, suggestions.size()); | |
133 EXPECT_TRUE(suggestions[0].dependent_locality.empty()); | |
134 EXPECT_TRUE(suggestions[0].locality.empty()); | |
135 EXPECT_EQ("ANHUI SHENG", suggestions[0].administrative_area); | |
136 } | |
137 | |
138 TEST_F(ChromeAddressValidatorTest, SuggestForDependentLocality) { | |
139 validator_->LoadRules("CN"); | |
140 AddressData address; | |
141 address.region_code = "CN"; | |
142 address.dependent_locality = "Zongyang"; | |
143 | |
144 std::vector<AddressData> suggestions; | |
145 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
146 validator_->GetSuggestions( | |
147 address, DEPENDENT_LOCALITY, 10, &suggestions)); | |
148 ASSERT_EQ(1U, suggestions.size()); | |
149 EXPECT_EQ("Zongyang Xian", suggestions[0].dependent_locality); | |
150 EXPECT_EQ("Anqing Shi", suggestions[0].locality); | |
151 EXPECT_EQ("ANHUI SHENG", suggestions[0].administrative_area); | |
152 } | |
153 | |
154 TEST_F(ChromeAddressValidatorTest, | |
155 NoSuggestForDependentLocalityWithWrongAdminArea) { | |
156 validator_->LoadRules("CN"); | |
157 AddressData address; | |
158 address.region_code = "CN"; | |
159 address.dependent_locality = "Zongyang"; | |
160 address.administrative_area = "Sichuan Sheng"; | |
161 | |
162 std::vector<AddressData> suggestions; | |
163 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
164 validator_->GetSuggestions( | |
165 address, DEPENDENT_LOCALITY, 10, &suggestions)); | |
166 EXPECT_TRUE(suggestions.empty()); | |
167 } | |
168 | |
169 TEST_F(ChromeAddressValidatorTest, EmptySuggestionsOverLimit) { | |
170 AddressData address; | |
171 address.region_code = "US"; | |
172 address.administrative_area = "A"; | |
173 | |
174 std::vector<AddressData> suggestions; | |
175 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
176 validator_->GetSuggestions(address, ADMIN_AREA, 1, &suggestions)); | |
177 EXPECT_TRUE(suggestions.empty()); | |
178 } | |
179 | |
180 TEST_F(ChromeAddressValidatorTest, PreferShortSuggestions) { | |
181 AddressData address; | |
182 address.region_code = "US"; | |
183 address.administrative_area = "CA"; | |
184 | |
185 std::vector<AddressData> suggestions; | |
186 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
187 validator_->GetSuggestions(address, ADMIN_AREA, 10, &suggestions)); | |
188 ASSERT_EQ(1U, suggestions.size()); | |
189 EXPECT_EQ("CA", suggestions[0].administrative_area); | |
190 } | |
191 | |
192 TEST_F(ChromeAddressValidatorTest, SuggestTheSingleMatchForFullMatchName) { | |
193 AddressData address; | |
194 address.region_code = "US"; | |
195 address.administrative_area = "Texas"; | |
196 | |
197 std::vector<AddressData> suggestions; | |
198 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
199 validator_->GetSuggestions(address, ADMIN_AREA, 10, &suggestions)); | |
200 ASSERT_EQ(1U, suggestions.size()); | |
201 EXPECT_EQ("Texas", suggestions[0].administrative_area); | |
202 } | |
203 | |
204 TEST_F(ChromeAddressValidatorTest, SuggestAdminArea) { | |
205 AddressData address; | |
206 address.region_code = "US"; | |
207 address.administrative_area = "Cali"; | |
208 | |
209 std::vector<AddressData> suggestions; | |
210 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
211 validator_->GetSuggestions(address, ADMIN_AREA, 10, &suggestions)); | |
212 ASSERT_EQ(1U, suggestions.size()); | |
213 EXPECT_EQ("California", suggestions[0].administrative_area); | |
214 } | |
215 | |
216 TEST_F(ChromeAddressValidatorTest, MultipleSuggestions) { | |
217 AddressData address; | |
218 address.region_code = "US"; | |
219 address.administrative_area = "MA"; | |
220 | |
221 std::vector<AddressData> suggestions; | |
222 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
223 validator_->GetSuggestions(address, ADMIN_AREA, 10, &suggestions)); | |
224 EXPECT_LT(1U, suggestions.size()); | |
225 | |
226 // Massachusetts should not be a suggestion, because it's already covered | |
227 // under MA. | |
228 std::set<std::string> expected_suggestions; | |
229 expected_suggestions.insert("MA"); | |
230 expected_suggestions.insert("Maine"); | |
231 expected_suggestions.insert("Marshall Islands"); | |
232 expected_suggestions.insert("Maryland"); | |
233 for (std::vector<AddressData>::const_iterator it = suggestions.begin(); | |
234 it != suggestions.end(); ++it) { | |
235 expected_suggestions.erase(it->administrative_area); | |
236 } | |
237 EXPECT_TRUE(expected_suggestions.empty()); | |
238 } | |
239 | |
240 TEST_F(ChromeAddressValidatorTest, SuggestNonLatinKeyWhenLanguageMatches) { | |
241 validator_->LoadRules("KR"); | |
242 AddressData address; | |
243 address.language_code = "ko"; | |
244 address.region_code = "KR"; | |
245 address.postal_code = "210-210"; | |
246 | |
247 std::vector<AddressData> suggestions; | |
248 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
249 validator_->GetSuggestions(address, POSTAL_CODE, 1, &suggestions)); | |
250 ASSERT_EQ(1U, suggestions.size()); | |
251 EXPECT_EQ("강원도", suggestions[0].administrative_area); | |
252 EXPECT_EQ("210-210", suggestions[0].postal_code); | |
253 } | |
254 | |
255 TEST_F(ChromeAddressValidatorTest, SuggestNonLatinKeyWhenUserInputIsNotLatin) { | |
256 validator_->LoadRules("KR"); | |
257 AddressData address; | |
258 address.language_code = "en"; | |
259 address.region_code = "KR"; | |
260 address.administrative_area = "강원"; | |
261 | |
262 std::vector<AddressData> suggestions; | |
263 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
264 validator_->GetSuggestions(address, ADMIN_AREA, 1, &suggestions)); | |
265 ASSERT_EQ(1U, suggestions.size()); | |
266 EXPECT_EQ("강원도", suggestions[0].administrative_area); | |
267 } | |
268 | |
269 TEST_F(ChromeAddressValidatorTest, | |
270 SuggestLatinNameWhenLanguageDiffersAndLatinNameAvailable) { | |
271 validator_->LoadRules("KR"); | |
272 AddressData address; | |
273 address.language_code = "en"; | |
274 address.region_code = "KR"; | |
275 address.postal_code = "210-210"; | |
276 | |
277 std::vector<AddressData> suggestions; | |
278 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
279 validator_->GetSuggestions(address, POSTAL_CODE, 1, &suggestions)); | |
280 ASSERT_EQ(1U, suggestions.size()); | |
281 EXPECT_EQ("Gangwon", suggestions[0].administrative_area); | |
282 EXPECT_EQ("210-210", suggestions[0].postal_code); | |
283 } | |
284 | |
285 TEST_F(ChromeAddressValidatorTest, SuggestLatinNameWhenUserInputIsLatin) { | |
286 validator_->LoadRules("KR"); | |
287 AddressData address; | |
288 address.language_code = "ko"; | |
289 address.region_code = "KR"; | |
290 address.administrative_area = "Gang"; | |
291 | |
292 std::vector<AddressData> suggestions; | |
293 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
294 validator_->GetSuggestions(address, ADMIN_AREA, 1, &suggestions)); | |
295 ASSERT_EQ(1U, suggestions.size()); | |
296 EXPECT_EQ("Gangwon", suggestions[0].administrative_area); | |
297 } | |
298 | |
299 TEST_F(ChromeAddressValidatorTest, NoSuggestionsForEmptyAddress) { | |
300 AddressData address; | |
301 address.region_code = "US"; | |
302 | |
303 std::vector<AddressData> suggestions; | |
304 EXPECT_EQ( | |
305 ChromeAddressValidator::SUCCESS, | |
306 validator_->GetSuggestions(address, POSTAL_CODE, 999, &suggestions)); | |
307 EXPECT_TRUE(suggestions.empty()); | |
308 } | |
309 | |
310 TEST_F(ChromeAddressValidatorTest, SuggestionIncludesCountry) { | |
311 AddressData address; | |
312 address.region_code = "US"; | |
313 address.postal_code = "90291"; | |
314 | |
315 std::vector<AddressData> suggestions; | |
316 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
317 validator_->GetSuggestions(address, POSTAL_CODE, 1, &suggestions)); | |
318 ASSERT_EQ(1U, suggestions.size()); | |
319 EXPECT_EQ("US", suggestions[0].region_code); | |
320 } | |
321 | |
322 TEST_F(ChromeAddressValidatorTest, SuggestOnlyForAdministrativeAreasAndPostalCod e) { | |
323 AddressData address; | |
324 address.region_code = "US"; | |
325 address.administrative_area = "CA"; | |
326 address.locality = "Los Angeles"; | |
327 address.dependent_locality = "Venice"; | |
328 address.postal_code = "90291"; | |
329 address.sorting_code = "123"; | |
330 address.address_line.push_back("123 Main St"); | |
331 address.recipient = "Jon Smith"; | |
332 | |
333 // Fields that should not have suggestions in US. | |
334 static const AddressField kNoSugestFields[] = { | |
335 COUNTRY, | |
336 LOCALITY, | |
337 DEPENDENT_LOCALITY, | |
338 SORTING_CODE, | |
339 STREET_ADDRESS, | |
340 RECIPIENT | |
341 }; | |
342 | |
343 static const size_t kNumNoSuggestFields = | |
344 sizeof kNoSugestFields / sizeof (AddressField); | |
345 | |
346 for (size_t i = 0; i < kNumNoSuggestFields; ++i) { | |
347 std::vector<AddressData> suggestions; | |
348 EXPECT_EQ(ChromeAddressValidator::SUCCESS, | |
349 validator_->GetSuggestions( | |
350 address, kNoSugestFields[i], 999, &suggestions)); | |
351 EXPECT_TRUE(suggestions.empty()); | |
352 } | |
353 } | |
354 */ | |
355 | |
356 } // namespace | |
OLD | NEW |