diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/address_formatter.cc | 19 | ||||
-rw-r--r-- | cpp/test/address_formatter_test.cc | 7 |
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. |