Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1195)

Unified Diff: base/strings/string_util_unittest.cc

Issue 2691193002: Added StringPiece overloads for base::JoinString. (Closed)
Patch Set: Use default constructor instead of empty string quotes. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/strings/string_util.cc ('k') | chrome/browser/webshare/share_service_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/strings/string_util_unittest.cc
diff --git a/base/strings/string_util_unittest.cc b/base/strings/string_util_unittest.cc
index df2226e48bc488f37b628ed002cfc790bad11b7a..6c054f8327e4718366c19fe5e8dd5f0f0778667c 100644
--- a/base/strings/string_util_unittest.cc
+++ b/base/strings/string_util_unittest.cc
@@ -707,6 +707,92 @@ TEST(StringUtilTest, JoinString16) {
EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|")));
}
+TEST(StringUtilTest, JoinStringPiece) {
+ std::string separator(", ");
+ std::vector<base::StringPiece> parts;
+ EXPECT_EQ(base::StringPiece(), JoinString(parts, separator));
+
+ parts.push_back("a");
+ EXPECT_EQ("a", JoinString(parts, separator));
+
+ parts.push_back("b");
+ parts.push_back("c");
+ EXPECT_EQ("a, b, c", JoinString(parts, separator));
+
+ parts.push_back(base::StringPiece());
+ EXPECT_EQ("a, b, c, ", JoinString(parts, separator));
+ parts.push_back(" ");
+ EXPECT_EQ("a|b|c|| ", JoinString(parts, "|"));
+}
+
+TEST(StringUtilTest, JoinStringPiece16) {
+ string16 separator = ASCIIToUTF16(", ");
+ std::vector<base::StringPiece16> parts;
+ EXPECT_EQ(base::StringPiece16(), JoinString(parts, separator));
+
+ const string16 kA = ASCIIToUTF16("a");
+ parts.push_back(kA);
+ EXPECT_EQ(ASCIIToUTF16("a"), JoinString(parts, separator));
+
+ const string16 kB = ASCIIToUTF16("b");
+ parts.push_back(kB);
+ const string16 kC = ASCIIToUTF16("c");
+ parts.push_back(kC);
+ EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString(parts, separator));
+
+ parts.push_back(base::StringPiece16());
+ EXPECT_EQ(ASCIIToUTF16("a, b, c, "), JoinString(parts, separator));
+ const string16 kSpace = ASCIIToUTF16(" ");
+ parts.push_back(kSpace);
+ EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|")));
+}
+
+TEST(StringUtilTest, JoinStringInitializerList) {
+ std::string separator(", ");
+ EXPECT_EQ(base::StringPiece(), JoinString({}, separator));
+
+ // With const char*s.
+ EXPECT_EQ("a", JoinString({"a"}, separator));
+ EXPECT_EQ("a, b, c", JoinString({"a", "b", "c"}, separator));
+ EXPECT_EQ("a, b, c, ", JoinString({"a", "b", "c", ""}, separator));
+ EXPECT_EQ("a|b|c|| ", JoinString({"a", "b", "c", "", " "}, "|"));
+
+ // With std::strings.
+ const std::string kA = "a";
+ const std::string kB = "b";
+ EXPECT_EQ("a, b", JoinString({kA, kB}, separator));
+
+ // With StringPieces.
+ const StringPiece kPieceA = kA;
+ const StringPiece kPieceB = kB;
+ EXPECT_EQ("a, b", JoinString({kPieceA, kPieceB}, separator));
+}
+
+TEST(StringUtilTest, JoinStringInitializerList16) {
+ string16 separator = ASCIIToUTF16(", ");
+ EXPECT_EQ(base::StringPiece16(), JoinString({}, separator));
+
+ // With string16s.
+ const string16 kA = ASCIIToUTF16("a");
+ EXPECT_EQ(ASCIIToUTF16("a"), JoinString({kA}, separator));
+
+ const string16 kB = ASCIIToUTF16("b");
+ const string16 kC = ASCIIToUTF16("c");
+ EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString({kA, kB, kC}, separator));
+
+ const string16 kEmpty = ASCIIToUTF16("");
+ EXPECT_EQ(ASCIIToUTF16("a, b, c, "),
+ JoinString({kA, kB, kC, kEmpty}, separator));
+ const string16 kSpace = ASCIIToUTF16(" ");
+ EXPECT_EQ(ASCIIToUTF16("a|b|c|| "),
+ JoinString({kA, kB, kC, kEmpty, kSpace}, ASCIIToUTF16("|")));
+
+ // With StringPiece16s.
+ const StringPiece16 kPieceA = kA;
+ const StringPiece16 kPieceB = kB;
+ EXPECT_EQ(ASCIIToUTF16("a, b"), JoinString({kPieceA, kPieceB}, separator));
+}
+
TEST(StringUtilTest, StartsWith) {
EXPECT_TRUE(StartsWith("javascript:url", "javascript",
base::CompareCase::SENSITIVE));
« no previous file with comments | « base/strings/string_util.cc ('k') | chrome/browser/webshare/share_service_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698