diff options
author | Elliott Hughes <enh@google.com> | 2019-11-19 15:28:24 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-11-19 15:28:24 +0000 |
commit | 43f9d5f34aa7d080f8321dc35f24c0d8296c6bcc (patch) | |
tree | 07e428d298c5d8fbb9a2251aabecfaa07798dd9a /base/strings_test.cpp | |
parent | ba5351692e005cfa016414fb5472a2a12f95e31d (diff) | |
parent | 908e0dfda568ddf0eb7f12e555655818241acda8 (diff) |
Merge "Add absl-like StringReplace."
Diffstat (limited to 'base/strings_test.cpp')
-rw-r--r-- | base/strings_test.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/base/strings_test.cpp b/base/strings_test.cpp index ca3c0b83ed..5ae3094464 100644 --- a/base/strings_test.cpp +++ b/base/strings_test.cpp @@ -311,3 +311,46 @@ TEST(strings, ConsumeSuffix) { ASSERT_TRUE(android::base::ConsumeSuffix(&s, ".bar")); ASSERT_EQ("foo", s); } + +TEST(strings, StringReplace_false) { + // No change. + ASSERT_EQ("abcabc", android::base::StringReplace("abcabc", "z", "Z", false)); + ASSERT_EQ("", android::base::StringReplace("", "z", "Z", false)); + ASSERT_EQ("abcabc", android::base::StringReplace("abcabc", "", "Z", false)); + + // Equal lengths. + ASSERT_EQ("Abcabc", android::base::StringReplace("abcabc", "a", "A", false)); + ASSERT_EQ("aBcabc", android::base::StringReplace("abcabc", "b", "B", false)); + ASSERT_EQ("abCabc", android::base::StringReplace("abcabc", "c", "C", false)); + + // Longer replacement. + ASSERT_EQ("foobcabc", android::base::StringReplace("abcabc", "a", "foo", false)); + ASSERT_EQ("afoocabc", android::base::StringReplace("abcabc", "b", "foo", false)); + ASSERT_EQ("abfooabc", android::base::StringReplace("abcabc", "c", "foo", false)); + + // Shorter replacement. + ASSERT_EQ("xxyz", android::base::StringReplace("abcxyz", "abc", "x", false)); + ASSERT_EQ("axyz", android::base::StringReplace("abcxyz", "bcx", "x", false)); + ASSERT_EQ("abcx", android::base::StringReplace("abcxyz", "xyz", "x", false)); +} + +TEST(strings, StringReplace_true) { + // No change. + ASSERT_EQ("abcabc", android::base::StringReplace("abcabc", "z", "Z", true)); + ASSERT_EQ("", android::base::StringReplace("", "z", "Z", true)); + ASSERT_EQ("abcabc", android::base::StringReplace("abcabc", "", "Z", true)); + + // Equal lengths. + ASSERT_EQ("AbcAbc", android::base::StringReplace("abcabc", "a", "A", true)); + ASSERT_EQ("aBcaBc", android::base::StringReplace("abcabc", "b", "B", true)); + ASSERT_EQ("abCabC", android::base::StringReplace("abcabc", "c", "C", true)); + + // Longer replacement. + ASSERT_EQ("foobcfoobc", android::base::StringReplace("abcabc", "a", "foo", true)); + ASSERT_EQ("afoocafooc", android::base::StringReplace("abcabc", "b", "foo", true)); + ASSERT_EQ("abfooabfoo", android::base::StringReplace("abcabc", "c", "foo", true)); + + // Shorter replacement. + ASSERT_EQ("xxyzx", android::base::StringReplace("abcxyzabc", "abc", "x", true)); + ASSERT_EQ("<xx>", android::base::StringReplace("<abcabc>", "abc", "x", true)); +} |