• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2021 The Tint Authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "src/utils/string.h"
16 
17 #include "gtest/gtest.h"
18 
19 namespace tint {
20 namespace utils {
21 namespace {
22 
TEST(StringTest,ReplaceAll)23 TEST(StringTest, ReplaceAll) {
24   ASSERT_EQ("xybbcc", ReplaceAll("aabbcc", "aa", "xy"));
25   ASSERT_EQ("aaxycc", ReplaceAll("aabbcc", "bb", "xy"));
26   ASSERT_EQ("aabbxy", ReplaceAll("aabbcc", "cc", "xy"));
27   ASSERT_EQ("xyxybbcc", ReplaceAll("aabbcc", "a", "xy"));
28   ASSERT_EQ("aaxyxycc", ReplaceAll("aabbcc", "b", "xy"));
29   ASSERT_EQ("aabbxyxy", ReplaceAll("aabbcc", "c", "xy"));
30   // Replacement string includes the searched-for string.
31   // This proves that the algorithm needs to advance 'pos'
32   // past the replacement.
33   ASSERT_EQ("aabxybbxybcc", ReplaceAll("aabbcc", "b", "bxyb"));
34 }
35 
36 }  // namespace
37 }  // namespace utils
38 }  // namespace tint
39