aboutsummaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/address_formatter.cc19
-rw-r--r--cpp/test/address_formatter_test.cc7
2 files changed, 17 insertions, 9 deletions
diff --git a/cpp/src/address_formatter.cc b/cpp/src/address_formatter.cc
index 0bf5c5d..3440288 100644
--- a/cpp/src/address_formatter.cc
+++ b/cpp/src/address_formatter.cc
@@ -108,16 +108,17 @@ std::string GetLineSeparatorForLanguage(const std::string& language_tag) {
return kCommaSeparator;
}
-void CombineLinesForLanguage(
- const std::vector<std::string>& lines, const std::string& language_tag,
- std::string *line) {
- if (lines.size() > 0) {
- line->assign(lines[0]);
- }
+void CombineLinesForLanguage(const std::vector<std::string>& lines,
+ const std::string& language_tag,
+ std::string* line) {
+ line->clear();
std::string separator = GetLineSeparatorForLanguage(language_tag);
- for (std::vector<std::string>::const_iterator it = lines.begin() + 1;
- it < lines.end(); ++it) {
- line->append(separator);
+ for (std::vector<std::string>::const_iterator it = lines.begin();
+ it != lines.end();
+ ++it) {
+ if (it != lines.begin()) {
+ line->append(separator);
+ }
line->append(*it);
}
}
diff --git a/cpp/test/address_formatter_test.cc b/cpp/test/address_formatter_test.cc
index ca94a32..d20a344 100644
--- a/cpp/test/address_formatter_test.cc
+++ b/cpp/test/address_formatter_test.cc
@@ -28,6 +28,13 @@ using i18n::addressinput::GetFormattedNationalAddress;
using i18n::addressinput::GetFormattedNationalAddressLine;
using i18n::addressinput::GetStreetAddressLinesAsSingleLine;
+TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_EmptyAddress) {
+ AddressData address;
+ std::string result;
+ GetStreetAddressLinesAsSingleLine(address, &result);
+ EXPECT_TRUE(result.empty());
+}
+
TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_1Line) {
AddressData address;
address.region_code = "US"; // Not used.