1 // Copyright (C) 2014 Google Inc.
3 // Licensed under the Apache License, Version 2.0 (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
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 #include <libaddressinput/address_data.h>
20 #include <gtest/gtest.h>
24 using i18n::addressinput::AddressData;
26 TEST(AddressDataTest, FormatForDisplayEmpty) {
28 std::vector<std::string> actual;
29 address.FormatForDisplay(&actual);
30 EXPECT_EQ(std::vector<std::string>(), actual);
33 TEST(AddressDataTest, FormatForDisplayUs) {
35 address.country_code = "US";
36 address.administrative_area = "Texas";
37 address.locality = "Houston";
38 address.postal_code = "77005";
39 address.address_lines.push_back("123 Main St");
40 address.address_lines.push_back("Apt 2");
41 address.organization = "ACME Corp.";
42 address.recipient = "John Doe";
44 std::vector<std::string> actual;
45 address.FormatForDisplay(&actual);
47 std::vector<std::string> expected;
48 expected.push_back(address.recipient);
49 expected.push_back(address.organization);
50 expected.insert(expected.end(),
51 address.address_lines.begin(),
52 address.address_lines.end());
53 expected.push_back(address.locality + ", " + address.administrative_area +
54 " " + address.postal_code);
56 EXPECT_EQ(expected, actual);
59 TEST(AddressDataTest, FormatForDisplayAr) {
61 address.country_code = "AR";
62 address.administrative_area = "Capital Federal";
63 address.locality = "Buenos Aires";
64 address.postal_code = "C1001AFB";
65 address.address_lines.push_back("Su Calle 123");
66 address.address_lines.push_back("5° Piso");
67 address.organization = "Empresa Ejemplo";
68 address.recipient = "Juan Perez";
70 std::vector<std::string> actual;
71 address.FormatForDisplay(&actual);
73 std::vector<std::string> expected;
74 expected.push_back(address.recipient);
75 expected.push_back(address.organization);
76 expected.insert(expected.end(),
77 address.address_lines.begin(),
78 address.address_lines.end());
79 expected.push_back(address.postal_code + " " + address.locality);
80 expected.push_back(address.administrative_area);
82 EXPECT_EQ(expected, actual);
85 TEST(AddressDataTest, FormatForDisplayJp) {
87 address.country_code = "JP";
88 address.language_code = "ja";
89 address.administrative_area = "東京都";
90 address.locality = "渋谷区";
91 address.postal_code = "150-8512";
92 address.address_lines.push_back("桜丘町26-1");
93 address.address_lines.push_back("セルリアンタワー6階");
94 address.organization = "グーグル株式会社";
95 address.recipient = "村上 美紀";
97 std::vector<std::string> actual;
98 address.FormatForDisplay(&actual);
100 std::vector<std::string> expected;
101 expected.push_back("〒" + address.postal_code);
102 expected.push_back(address.administrative_area + address.locality);
103 expected.insert(expected.end(),
104 address.address_lines.begin(),
105 address.address_lines.end());
106 expected.push_back(address.organization);
107 expected.push_back(address.recipient);
109 EXPECT_EQ(expected, actual);
112 TEST(AddressDataTest, FormatForDisplayJpLatn) {
114 address.country_code = "JP";
115 address.language_code = "ja-latn";
116 address.administrative_area = "Tokyo";
117 address.locality = "Shibuya-ku";
118 address.postal_code = "150-8512";
119 address.address_lines.push_back("26-1 Sakuragaoka-cho");
120 address.address_lines.push_back("Cerulean Tower 6F");
121 address.organization = "Google Japan Inc.";
122 address.recipient = "Miki Murakami";
124 std::vector<std::string> actual;
125 address.FormatForDisplay(&actual);
127 std::vector<std::string> expected;
128 expected.push_back(address.recipient);
129 expected.push_back(address.organization);
130 expected.insert(expected.end(),
131 address.address_lines.begin(),
132 address.address_lines.end());
133 expected.push_back(address.locality + ", "+ address.administrative_area);
134 expected.push_back(address.postal_code);
136 EXPECT_EQ(expected, actual);
139 TEST(AddressDataTest, FormatForDisplayJpLatnCapitalized) {
141 address.country_code = "JP";
142 address.language_code = "ja-Latn";
143 address.administrative_area = "Tokyo";
144 address.locality = "Shibuya-ku";
145 address.postal_code = "150-8512";
146 address.address_lines.push_back("26-1 Sakuragaoka-cho");
147 address.address_lines.push_back("Cerulean Tower 6F");
148 address.organization = "Google Japan Inc.";
149 address.recipient = "Miki Murakami";
151 std::vector<std::string> actual;
152 address.FormatForDisplay(&actual);
154 std::vector<std::string> expected;
155 expected.push_back(address.recipient);
156 expected.push_back(address.organization);
157 expected.insert(expected.end(),
158 address.address_lines.begin(),
159 address.address_lines.end());
160 expected.push_back(address.locality + ", "+ address.administrative_area);
161 expected.push_back(address.postal_code);
163 EXPECT_EQ(expected, actual);
166 TEST(AddressDataTest, FormatForDisplayJpLatnUs) {
168 address.country_code = "JP";
169 address.language_code = "ja-latn-US";
170 address.administrative_area = "Tokyo";
171 address.locality = "Shibuya-ku";
172 address.postal_code = "150-8512";
173 address.address_lines.push_back("26-1 Sakuragaoka-cho");
174 address.address_lines.push_back("Cerulean Tower 6F");
175 address.organization = "Google Japan Inc.";
176 address.recipient = "Miki Murakami";
178 std::vector<std::string> actual;
179 address.FormatForDisplay(&actual);
181 std::vector<std::string> expected;
182 expected.push_back(address.recipient);
183 expected.push_back(address.organization);
184 expected.insert(expected.end(),
185 address.address_lines.begin(),
186 address.address_lines.end());
187 expected.push_back(address.locality + ", "+ address.administrative_area);
188 expected.push_back(address.postal_code);
190 EXPECT_EQ(expected, actual);
193 TEST(AddressDataTest, FormatForDisplayWithStreetCi) {
195 address.country_code = "CI";
196 address.address_lines.push_back("Street Line 1");
197 address.locality = "City Name";
198 address.sorting_code = "123CEDEX";
200 std::vector<std::string> actual;
201 address.FormatForDisplay(&actual);
203 std::vector<std::string> expected(
205 address.sorting_code + " " +
206 address.address_lines[0] + " " +
207 address.locality + " " +
208 address.sorting_code);
210 EXPECT_EQ(expected, actual);
213 TEST(AddressDataTest, FormatForDisplayWithoutStreetCi) {
215 address.country_code = "CI";
216 address.locality = "City Name";
217 address.sorting_code = "123CEDEX";
219 std::vector<std::string> actual;
220 address.FormatForDisplay(&actual);
222 std::vector<std::string> expected(
224 address.sorting_code + " " +
225 address.locality + " " +
226 address.sorting_code);
228 EXPECT_EQ(expected, actual);