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 |