summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorphilip.liard@gmail.com <philip.liard@gmail.com@ee073f10-1060-11df-b6a4-87a95322a99c>2012-07-09 16:58:49 +0000
committerphilip.liard@gmail.com <philip.liard@gmail.com@ee073f10-1060-11df-b6a4-87a95322a99c>2012-07-09 16:58:49 +0000
commita72cc05053361f363f4d7478defc997f7b2053ca (patch)
treea735f09d8e418420cdbded18d1ee456151f4d24b /tools
parentfa0386d4d9c3c6c9b2aa20d11375523cba80bb0a (diff)
downloadandroid_external_libphonenumbergoogle-a72cc05053361f363f4d7478defc997f7b2053ca.tar.gz
android_external_libphonenumbergoogle-a72cc05053361f363f4d7478defc997f7b2053ca.tar.bz2
android_external_libphonenumbergoogle-a72cc05053361f363f4d7478defc997f7b2053ca.zip
TOOLS: Add unit test for ReplaceAll().
Patch contributed by pmezard. git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@490 ee073f10-1060-11df-b6a4-87a95322a99c
Diffstat (limited to 'tools')
-rw-r--r--tools/cpp/src/cpp-build/generate_geocoding_data.cc5
-rw-r--r--tools/cpp/src/cpp-build/generate_geocoding_data.h3
-rw-r--r--tools/cpp/test/cpp-build/generate_geocoding_data_test.cc8
3 files changed, 15 insertions, 1 deletions
diff --git a/tools/cpp/src/cpp-build/generate_geocoding_data.cc b/tools/cpp/src/cpp-build/generate_geocoding_data.cc
index aace898..d02a853 100644
--- a/tools/cpp/src/cpp-build/generate_geocoding_data.cc
+++ b/tools/cpp/src/cpp-build/generate_geocoding_data.cc
@@ -494,9 +494,12 @@ bool WriteCountryLanguages(const map<int32, set<string> >& languages,
}
// Returns a copy of input where all occurences of pattern are replaced with
-// value.
+// value. If pattern is empty, input is returned unchanged.
string ReplaceAll(const string& input, const string& pattern,
const string& value) {
+ if (pattern.size() == 0) {
+ return input;
+ }
string replaced;
std::back_insert_iterator<string> output = std::back_inserter(replaced);
string::const_iterator begin = input.begin(), end = begin;
diff --git a/tools/cpp/src/cpp-build/generate_geocoding_data.h b/tools/cpp/src/cpp-build/generate_geocoding_data.h
index f087800..c65ab9b 100644
--- a/tools/cpp/src/cpp-build/generate_geocoding_data.h
+++ b/tools/cpp/src/cpp-build/generate_geocoding_data.h
@@ -26,6 +26,9 @@ using std::string;
string MakeStringLiteral(const string& s);
+string ReplaceAll(const string& input, const string& pattern,
+ const string& value);
+
int Main(int argc, const char* argv[]);
} // namespace phonenumbers
diff --git a/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc b/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc
index 5e86b63..95f5224 100644
--- a/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc
+++ b/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc
@@ -27,5 +27,13 @@ TEST(GenerateGeocodingDataTest, TestMakeStringLiteral) {
MakeStringLiteral("Op\xc3\xa9ra"));
}
+TEST(GenerateGeocodingDataTest, TestReplaceAll) {
+ EXPECT_EQ("", ReplaceAll("", "$input$", "cc"));
+ EXPECT_EQ("accb", ReplaceAll("a$input$b", "$input$", "cc"));
+ EXPECT_EQ("ab", ReplaceAll("a$input$b", "$input$", ""));
+ EXPECT_EQ("ab", ReplaceAll("ab", "", "cc"));
+ EXPECT_EQ("acdc", ReplaceAll("a$input$d$input$", "$input$", "c"));
+}
+
} // namespace phonenumbers
} // namespace i18n