diff options
author | philip.liard@gmail.com <philip.liard@gmail.com@ee073f10-1060-11df-b6a4-87a95322a99c> | 2012-07-09 16:58:49 +0000 |
---|---|---|
committer | philip.liard@gmail.com <philip.liard@gmail.com@ee073f10-1060-11df-b6a4-87a95322a99c> | 2012-07-09 16:58:49 +0000 |
commit | a72cc05053361f363f4d7478defc997f7b2053ca (patch) | |
tree | a735f09d8e418420cdbded18d1ee456151f4d24b /tools | |
parent | fa0386d4d9c3c6c9b2aa20d11375523cba80bb0a (diff) | |
download | android_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.cc | 5 | ||||
-rw-r--r-- | tools/cpp/src/cpp-build/generate_geocoding_data.h | 3 | ||||
-rw-r--r-- | tools/cpp/test/cpp-build/generate_geocoding_data_test.cc | 8 |
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 |