aboutsummaryrefslogtreecommitdiff
path: root/cpp/test/util/string_util_test.cc
blob: 9933b31d782b3700c10f24017cf514d5701364c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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