aboutsummaryrefslogtreecommitdiff
path: root/cpp/test/util
diff options
context:
space:
mode:
authorkeghani@google.com <keghani@google.com@38ededc0-08b8-5190-f2ac-b31f878777ad>2014-05-20 14:30:04 +0000
committerkeghani@google.com <keghani@google.com@38ededc0-08b8-5190-f2ac-b31f878777ad>2014-05-20 14:30:04 +0000
commit64fce26be7b2cd38805b2dc24d8a8ca8fe4598b1 (patch)
tree994cc09615bbcc87759b042ae599485f317f3f27 /cpp/test/util
parent75a0cfdaa6edd47c9917172fa57701b5d22e83ef (diff)
downloadsrc-64fce26be7b2cd38805b2dc24d8a8ca8fe4598b1.tar.gz
Streamline string_util to keep only our relevant functions and add unit tests.
git-svn-id: http://libaddressinput.googlecode.com/svn/trunk@225 38ededc0-08b8-5190-f2ac-b31f878777ad
Diffstat (limited to 'cpp/test/util')
-rw-r--r--cpp/test/util/string_util_test.cc74
1 files changed, 74 insertions, 0 deletions
diff --git a/cpp/test/util/string_util_test.cc b/cpp/test/util/string_util_test.cc
new file mode 100644
index 0000000..9933b31
--- /dev/null
+++ b/cpp/test/util/string_util_test.cc
@@ -0,0 +1,74 @@
+// Copyright (C) 2014 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+#include "util/string_util.h"
+
+#include <string>
+
+#include <gtest/gtest.h>
+
+namespace {
+
+using i18n::addressinput::DoReplaceStringPlaceholders;
+
+TEST(StringUtilTest, Ok) {
+ std::vector<std::string> subst;
+ subst.push_back("A");
+ subst.push_back("B");
+ subst.push_back("C");
+
+ EXPECT_EQ("aA,bB,cC",
+ DoReplaceStringPlaceholders("a$1,b$2,c$3", subst));
+}
+
+TEST(StringUtilTest, FewParameters) {
+ std::vector<std::string> subst;
+ subst.push_back("A");
+ subst.push_back("B");
+ subst.push_back("C");
+
+ EXPECT_EQ("aA,bB,cC,d,aA",
+ DoReplaceStringPlaceholders("a$1,b$2,c$3,d$4,a$1", subst));
+}
+
+TEST(StringUtilTest, MoreThan9Parameters) {
+ std::vector<std::string> subst;
+ subst.push_back("A");
+ subst.push_back("B");
+ subst.push_back("C");
+ subst.push_back("D");
+ subst.push_back("E");
+ subst.push_back("F");
+ subst.push_back("G");
+ subst.push_back("H");
+ subst.push_back("I");
+ subst.push_back("J");
+ subst.push_back("K");
+
+ EXPECT_EQ("aA,bB,cC,dD,eE,fF,gG,hH,iI,jJ,kK,aA",
+ DoReplaceStringPlaceholders("a$1,b$2,c$3,d$4,e$5,f$6,g$7,h$8,i$9,"
+ "j$10,k$11,a$1", subst));
+}
+
+TEST(StringUtilTest, ConsecutiveDollarSigns) {
+ std::vector<std::string> subst;
+ subst.push_back("A");
+ subst.push_back("B");
+ subst.push_back("C");
+
+ EXPECT_EQ("$1 $$2 $$$3",
+ DoReplaceStringPlaceholders("$$1 $$$2 $$$$3", subst));
+}
+
+} // namespace