Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: third_party/libaddressinput/chromium/cpp/test/rule_test.cc

Issue 106763007: [rac] Parse postal code formats and required fields in libaddressinput. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (C) 2013 Google Inc. 1 // Copyright (C) 2013 Google Inc.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 23 matching lines...) Expand all
34 using i18n::addressinput::NEWLINE; 34 using i18n::addressinput::NEWLINE;
35 using i18n::addressinput::ORGANIZATION; 35 using i18n::addressinput::ORGANIZATION;
36 using i18n::addressinput::POSTAL_CODE; 36 using i18n::addressinput::POSTAL_CODE;
37 using i18n::addressinput::RECIPIENT; 37 using i18n::addressinput::RECIPIENT;
38 using i18n::addressinput::RegionDataConstants; 38 using i18n::addressinput::RegionDataConstants;
39 using i18n::addressinput::Rule; 39 using i18n::addressinput::Rule;
40 using i18n::addressinput::STREET_ADDRESS; 40 using i18n::addressinput::STREET_ADDRESS;
41 41
42 TEST(RuleTest, CopyOverwritesRule) { 42 TEST(RuleTest, CopyOverwritesRule) {
43 Rule rule; 43 Rule rule;
44 ASSERT_TRUE(rule.ParseSerializedRule("{" 44 ASSERT_TRUE(rule.ParseSerializedRule(
45 "\"fmt\":\"%S%Z\"," 45 "{"
46 "\"state_name_type\":\"area\"," 46 "\"fmt\":\"%S%Z\","
47 "\"zip_name_type\":\"postal\"," 47 "\"require\":\"SZ\","
48 "\"sub_keys\":\"CA~NY~TX\"," 48 "\"state_name_type\":\"area\","
49 "\"lang\":\"en\"," 49 "\"zip_name_type\":\"postal\","
50 "\"languages\":\"en~fr\"" 50 "\"sub_keys\":\"CA~NY~TX\","
51 "}")); 51 "\"lang\":\"en\","
52 "\"languages\":\"en~fr\","
53 "\"zipex\":\"95014,22162-1010\","
54 "\"zip\":\"\\\\d{5}([ \\\\-]\\\\d{4})?\","
55 "\"posturl\":\"https://tools.usps.com/go/ZipLookupAction!input.action\""
56 "}"));
52 57
53 Rule copy; 58 Rule copy;
54 EXPECT_NE(rule.GetFormat(), copy.GetFormat()); 59 EXPECT_NE(rule.GetFormat(), copy.GetFormat());
60 EXPECT_NE(rule.GetRequired(), copy.GetRequired());
55 EXPECT_NE(rule.GetSubKeys(), copy.GetSubKeys()); 61 EXPECT_NE(rule.GetSubKeys(), copy.GetSubKeys());
56 EXPECT_NE(rule.GetLanguages(), copy.GetLanguages()); 62 EXPECT_NE(rule.GetLanguages(), copy.GetLanguages());
57 EXPECT_NE(rule.GetLanguage(), copy.GetLanguage()); 63 EXPECT_NE(rule.GetLanguage(), copy.GetLanguage());
64 EXPECT_NE(rule.GetPostalCodeExamples(), copy.GetPostalCodeExamples());
65 EXPECT_NE(rule.GetPostalCodeFormat(), copy.GetPostalCodeFormat());
66 EXPECT_NE(rule.GetPostalCodesUrl(), copy.GetPostalCodesUrl());
58 EXPECT_NE(rule.GetAdminAreaNameMessageId(), 67 EXPECT_NE(rule.GetAdminAreaNameMessageId(),
59 copy.GetAdminAreaNameMessageId()); 68 copy.GetAdminAreaNameMessageId());
60 EXPECT_NE(rule.GetPostalCodeNameMessageId(), 69 EXPECT_NE(rule.GetPostalCodeNameMessageId(),
61 copy.GetPostalCodeNameMessageId()); 70 copy.GetPostalCodeNameMessageId());
62 71
63 copy.CopyFrom(rule); 72 copy.CopyFrom(rule);
64 EXPECT_EQ(rule.GetFormat(), copy.GetFormat()); 73 EXPECT_EQ(rule.GetFormat(), copy.GetFormat());
74 EXPECT_EQ(rule.GetRequired(), copy.GetRequired());
65 EXPECT_EQ(rule.GetSubKeys(), copy.GetSubKeys()); 75 EXPECT_EQ(rule.GetSubKeys(), copy.GetSubKeys());
66 EXPECT_EQ(rule.GetLanguages(), copy.GetLanguages()); 76 EXPECT_EQ(rule.GetLanguages(), copy.GetLanguages());
67 EXPECT_EQ(rule.GetLanguage(), copy.GetLanguage()); 77 EXPECT_EQ(rule.GetLanguage(), copy.GetLanguage());
78 EXPECT_EQ(rule.GetPostalCodeExamples(), copy.GetPostalCodeExamples());
79 EXPECT_EQ(rule.GetPostalCodeFormat(), copy.GetPostalCodeFormat());
80 EXPECT_EQ(rule.GetPostalCodesUrl(), copy.GetPostalCodesUrl());
68 EXPECT_EQ(rule.GetAdminAreaNameMessageId(), 81 EXPECT_EQ(rule.GetAdminAreaNameMessageId(),
69 copy.GetAdminAreaNameMessageId()); 82 copy.GetAdminAreaNameMessageId());
70 EXPECT_EQ(rule.GetPostalCodeNameMessageId(), 83 EXPECT_EQ(rule.GetPostalCodeNameMessageId(),
71 copy.GetPostalCodeNameMessageId()); 84 copy.GetPostalCodeNameMessageId());
72 } 85 }
73 86
74 TEST(RuleTest, ParseOverwritesRule) { 87 TEST(RuleTest, ParseOverwritesRule) {
75 Rule rule; 88 Rule rule;
76 ASSERT_TRUE(rule.ParseSerializedRule("{" 89 ASSERT_TRUE(rule.ParseSerializedRule(
77 "\"fmt\":\"%S%Z\"," 90 "{"
78 "\"state_name_type\":\"area\"," 91 "\"fmt\":\"%S%Z\","
79 "\"zip_name_type\":\"postal\"," 92 "\"require\":\"SZ\","
80 "\"sub_keys\":\"CA~NY~TX\"," 93 "\"state_name_type\":\"area\","
81 "\"lang\":\"en\"," 94 "\"zip_name_type\":\"postal\","
82 "\"languages\":\"en~fr\"" 95 "\"sub_keys\":\"CA~NY~TX\","
83 "}")); 96 "\"lang\":\"en\","
97 "\"languages\":\"en~fr\","
98 "\"zipex\":\"95014,22162-1010\","
99 "\"zip\":\"\\\\d{5}([ \\\\-]\\\\d{4})?\","
100 "\"posturl\":\"https://tools.usps.com/go/ZipLookupAction!input.action\""
101 "}"));
84 EXPECT_FALSE(rule.GetFormat().empty()); 102 EXPECT_FALSE(rule.GetFormat().empty());
103 EXPECT_FALSE(rule.GetRequired().empty());
85 EXPECT_FALSE(rule.GetSubKeys().empty()); 104 EXPECT_FALSE(rule.GetSubKeys().empty());
86 EXPECT_FALSE(rule.GetLanguages().empty()); 105 EXPECT_FALSE(rule.GetLanguages().empty());
87 EXPECT_FALSE(rule.GetLanguage().empty()); 106 EXPECT_FALSE(rule.GetLanguage().empty());
107 EXPECT_FALSE(rule.GetPostalCodeExamples().empty());
108 EXPECT_FALSE(rule.GetPostalCodeFormat().empty());
109 EXPECT_FALSE(rule.GetPostalCodesUrl().empty());
88 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_AREA, 110 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_AREA,
89 rule.GetAdminAreaNameMessageId()); 111 rule.GetAdminAreaNameMessageId());
90 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_POSTAL_CODE_LABEL, 112 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_POSTAL_CODE_LABEL,
91 rule.GetPostalCodeNameMessageId()); 113 rule.GetPostalCodeNameMessageId());
92 114
93 ASSERT_TRUE(rule.ParseSerializedRule("{" 115 ASSERT_TRUE(rule.ParseSerializedRule(
94 "\"fmt\":\"\"," 116 "{"
95 "\"state_name_type\":\"do_si\"," 117 "\"fmt\":\"\","
96 "\"zip_name_type\":\"zip\"," 118 "\"require\":\"\","
97 "\"sub_keys\":\"\"," 119 "\"state_name_type\":\"do_si\","
98 "\"lang\":\"\"," 120 "\"zip_name_type\":\"zip\","
99 "\"languages\":\"\"" 121 "\"sub_keys\":\"\","
100 "}")); 122 "\"lang\":\"\","
123 "\"languages\":\"\","
124 "\"zipex\":\"\","
125 "\"zip\":\"\","
126 "\"posturl\":\"\""
127 "}"));
101 EXPECT_TRUE(rule.GetFormat().empty()); 128 EXPECT_TRUE(rule.GetFormat().empty());
129 EXPECT_TRUE(rule.GetRequired().empty());
102 EXPECT_TRUE(rule.GetSubKeys().empty()); 130 EXPECT_TRUE(rule.GetSubKeys().empty());
103 EXPECT_TRUE(rule.GetLanguages().empty()); 131 EXPECT_TRUE(rule.GetLanguages().empty());
104 EXPECT_TRUE(rule.GetLanguage().empty()); 132 EXPECT_TRUE(rule.GetLanguage().empty());
133 EXPECT_TRUE(rule.GetPostalCodeExamples().empty());
134 EXPECT_TRUE(rule.GetPostalCodeFormat().empty());
135 EXPECT_TRUE(rule.GetPostalCodesUrl().empty());
105 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_DO_SI, 136 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_DO_SI,
106 rule.GetAdminAreaNameMessageId()); 137 rule.GetAdminAreaNameMessageId());
107 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_ZIP_CODE_LABEL, 138 EXPECT_EQ(IDS_LIBADDRESSINPUT_I18N_ZIP_CODE_LABEL,
108 rule.GetPostalCodeNameMessageId()); 139 rule.GetPostalCodeNameMessageId());
109 } 140 }
110 141
111 TEST(RuleTest, ParsesFormatCorrectly) { 142 TEST(RuleTest, ParsesFormatCorrectly) {
112 Rule rule; 143 Rule rule;
113 ASSERT_TRUE(rule.ParseSerializedRule("{\"fmt\":\"%S\"}")); 144 ASSERT_TRUE(rule.ParseSerializedRule("{\"fmt\":\"%S\"}"));
114 ASSERT_EQ(1, rule.GetFormat().size()); 145 ASSERT_EQ(1, rule.GetFormat().size());
115 EXPECT_EQ(ADMIN_AREA, rule.GetFormat()[0]); 146 EXPECT_EQ(ADMIN_AREA, rule.GetFormat()[0]);
116 } 147 }
117 148
149 TEST(RuleTest, ParsesRequiredFieldsCorrectly) {
150 Rule rule;
151 ASSERT_TRUE(rule.ParseSerializedRule("{\"require\":\"S\"}"));
152 ASSERT_EQ(1, rule.GetRequired().size());
153 EXPECT_EQ(ADMIN_AREA, rule.GetRequired()[0]);
154 }
155
118 TEST(RuleTest, ParsesSubKeysCorrectly) { 156 TEST(RuleTest, ParsesSubKeysCorrectly) {
119 Rule rule; 157 Rule rule;
120 ASSERT_TRUE(rule.ParseSerializedRule("{\"sub_keys\":\"CA~NY~TX\"}")); 158 ASSERT_TRUE(rule.ParseSerializedRule("{\"sub_keys\":\"CA~NY~TX\"}"));
121 std::vector<std::string> expected; 159 std::vector<std::string> expected;
122 expected.push_back("CA"); 160 expected.push_back("CA");
123 expected.push_back("NY"); 161 expected.push_back("NY");
124 expected.push_back("TX"); 162 expected.push_back("TX");
125 EXPECT_EQ(expected, rule.GetSubKeys()); 163 EXPECT_EQ(expected, rule.GetSubKeys());
126 } 164 }
127 165
128 TEST(RuleTest, ParsesLanguageCorrectly) { 166 TEST(RuleTest, ParsesLanguageCorrectly) {
129 Rule rule; 167 Rule rule;
130 ASSERT_TRUE(rule.ParseSerializedRule("{\"lang\":\"en\"}")); 168 ASSERT_TRUE(rule.ParseSerializedRule("{\"lang\":\"en\"}"));
131 EXPECT_EQ("en", rule.GetLanguage()); 169 EXPECT_EQ("en", rule.GetLanguage());
132 } 170 }
133 171
134 TEST(RuleTest, ParsesLanguagesCorrectly) { 172 TEST(RuleTest, ParsesLanguagesCorrectly) {
135 Rule rule; 173 Rule rule;
136 ASSERT_TRUE(rule.ParseSerializedRule("{\"languages\":\"de~fr~it\"}")); 174 ASSERT_TRUE(rule.ParseSerializedRule("{\"languages\":\"de~fr~it\"}"));
137 std::vector<std::string> expected; 175 std::vector<std::string> expected;
138 expected.push_back("de"); 176 expected.push_back("de");
139 expected.push_back("fr"); 177 expected.push_back("fr");
140 expected.push_back("it"); 178 expected.push_back("it");
141 EXPECT_EQ(expected, rule.GetLanguages()); 179 EXPECT_EQ(expected, rule.GetLanguages());
142 } 180 }
143 181
182 TEST(RuleTest, ParsesPostalCodeExamplesCorrectly) {
183 Rule rule;
184 ASSERT_TRUE(rule.ParseSerializedRule("{\"zipex\":\"95014,22162-1010\"}"));
185 EXPECT_EQ("95014,22162-1010", rule.GetPostalCodeExamples());
186 }
187
188 TEST(RuleTest, ParsesPostalCodeFormatCorrectly) {
189 Rule rule;
190 ASSERT_TRUE(rule.ParseSerializedRule(
191 "{"
192 "\"zip\":\"\\\\d{5}([ \\\\-]\\\\d{4})?\""
193 "}"));
194 EXPECT_EQ("\\d{5}([ \\-]\\d{4})?", rule.GetPostalCodeFormat());
195 }
196
197 TEST(RuleTest, ParsesPostalCodesUrlCorrectly) {
198 Rule rule;
199 ASSERT_TRUE(rule.ParseSerializedRule(
200 "{"
201 "\"posturl\":\"https://tools.usps.com/go/ZipLookupAction!input.action\""
202 "}"));
203 EXPECT_EQ("https://tools.usps.com/go/ZipLookupAction!input.action",
204 rule.GetPostalCodesUrl());
205 }
206
144 TEST(RuleTest, EmptyStringIsNotValid) { 207 TEST(RuleTest, EmptyStringIsNotValid) {
145 Rule rule; 208 Rule rule;
146 EXPECT_FALSE(rule.ParseSerializedRule(std::string())); 209 EXPECT_FALSE(rule.ParseSerializedRule(std::string()));
147 } 210 }
148 211
149 TEST(RuleTest, EmptyDictionaryIsValid) { 212 TEST(RuleTest, EmptyDictionaryIsValid) {
150 Rule rule; 213 Rule rule;
151 EXPECT_TRUE(rule.ParseSerializedRule("{}")); 214 EXPECT_TRUE(rule.ParseSerializedRule("{}"));
152 } 215 }
153 216
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 EXPECT_TRUE(rule_.ParseSerializedRule( 287 EXPECT_TRUE(rule_.ParseSerializedRule(
225 RegionDataConstants::GetRegionData(GetParam()))); 288 RegionDataConstants::GetRegionData(GetParam())));
226 } 289 }
227 290
228 // Test parsing all region data. 291 // Test parsing all region data.
229 INSTANTIATE_TEST_CASE_P( 292 INSTANTIATE_TEST_CASE_P(
230 AllRulesTest, RuleParseTest, 293 AllRulesTest, RuleParseTest,
231 testing::ValuesIn(RegionDataConstants::GetRegionCodes())); 294 testing::ValuesIn(RegionDataConstants::GetRegionCodes()));
232 295
233 } // namespace 296 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698