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

Unified Diff: base/strings/string_tokenizer_unittest.cc

Issue 1728833002: Add support to StringTokenizer for using braces/brackets as quote chars. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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_tokenizer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/strings/string_tokenizer_unittest.cc
diff --git a/base/strings/string_tokenizer_unittest.cc b/base/strings/string_tokenizer_unittest.cc
index d391845328291eb8cfe2ad829be740df0b839006..976097210fd5b3244e2a2d403f8b6f83d3dc948c 100644
--- a/base/strings/string_tokenizer_unittest.cc
+++ b/base/strings/string_tokenizer_unittest.cc
@@ -229,6 +229,85 @@ TEST(StringTokenizerTest, ParseQuotedString_EscapedQuotes2) {
EXPECT_FALSE(t.GetNext());
}
+TEST(StringTokenizerTest, ParsePairQuotedString) {
+ string input = "foo bar <hello world> baz";
+ StringTokenizer t(input, " ");
+ t.set_paired_quote_chars("<", ">");
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("foo"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("bar"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("<hello world>"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("baz"), t.token());
+
+ EXPECT_FALSE(t.GetNext());
+}
+
+TEST(StringTokenizerTest, ParsePairQuotedString_Malformed) {
+ string input = "bar (hello wo";
+ StringTokenizer t(input, " ");
+ t.set_paired_quote_chars("(", ")");
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("bar"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("(hello wo"), t.token());
+
+ EXPECT_FALSE(t.GetNext());
+}
+
+TEST(StringTokenizerTest, ParsePairQuotedString_Multiple) {
+ string input = "bar <hel\"lo\" wo> baz\"";
+ StringTokenizer t(input, " ");
+ t.set_paired_quote_chars("'\"<", "'\">");
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("bar"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("<hel\"lo\" wo>"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("baz\""), t.token());
+
+ EXPECT_FALSE(t.GetNext());
+}
+
+TEST(StringTokenizerTest, ParsePairQuotedString_EscapedQuotes) {
+ string input = "foo <3\\<4>";
+ StringTokenizer t(input, " ");
+ t.set_paired_quote_chars("<", ">");
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("foo"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("<3\\<4>"), t.token());
+
+ EXPECT_FALSE(t.GetNext());
+}
+
+TEST(StringTokenizerTest, ParsePairQuotedString_EscapedQuotes2) {
+ string input = "foo=<a, b>, bar";
+ StringTokenizer t(input, ", ");
+ t.set_paired_quote_chars("<", ">");
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("foo=<a, b>"), t.token());
+
+ EXPECT_TRUE(t.GetNext());
+ EXPECT_EQ(string("bar"), t.token());
+
+ EXPECT_FALSE(t.GetNext());
+}
+
} // namespace
} // namespace base
« no previous file with comments | « base/strings/string_tokenizer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698