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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « base/strings/string_tokenizer.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/strings/string_tokenizer.h" 5 #include "base/strings/string_tokenizer.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 using std::string; 9 using std::string;
10 10
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 222
223 EXPECT_TRUE(t.GetNext()); 223 EXPECT_TRUE(t.GetNext());
224 EXPECT_EQ(string("foo='a, b'"), t.token()); 224 EXPECT_EQ(string("foo='a, b'"), t.token());
225 225
226 EXPECT_TRUE(t.GetNext()); 226 EXPECT_TRUE(t.GetNext());
227 EXPECT_EQ(string("bar"), t.token()); 227 EXPECT_EQ(string("bar"), t.token());
228 228
229 EXPECT_FALSE(t.GetNext()); 229 EXPECT_FALSE(t.GetNext());
230 } 230 }
231 231
232 TEST(StringTokenizerTest, ParsePairQuotedString) {
233 string input = "foo bar <hello world> baz";
234 StringTokenizer t(input, " ");
235 t.set_paired_quote_chars("<", ">");
236
237 EXPECT_TRUE(t.GetNext());
238 EXPECT_EQ(string("foo"), t.token());
239
240 EXPECT_TRUE(t.GetNext());
241 EXPECT_EQ(string("bar"), t.token());
242
243 EXPECT_TRUE(t.GetNext());
244 EXPECT_EQ(string("<hello world>"), t.token());
245
246 EXPECT_TRUE(t.GetNext());
247 EXPECT_EQ(string("baz"), t.token());
248
249 EXPECT_FALSE(t.GetNext());
250 }
251
252 TEST(StringTokenizerTest, ParsePairQuotedString_Malformed) {
253 string input = "bar (hello wo";
254 StringTokenizer t(input, " ");
255 t.set_paired_quote_chars("(", ")");
256
257 EXPECT_TRUE(t.GetNext());
258 EXPECT_EQ(string("bar"), t.token());
259
260 EXPECT_TRUE(t.GetNext());
261 EXPECT_EQ(string("(hello wo"), t.token());
262
263 EXPECT_FALSE(t.GetNext());
264 }
265
266 TEST(StringTokenizerTest, ParsePairQuotedString_Multiple) {
267 string input = "bar <hel\"lo\" wo> baz\"";
268 StringTokenizer t(input, " ");
269 t.set_paired_quote_chars("'\"<", "'\">");
270
271 EXPECT_TRUE(t.GetNext());
272 EXPECT_EQ(string("bar"), t.token());
273
274 EXPECT_TRUE(t.GetNext());
275 EXPECT_EQ(string("<hel\"lo\" wo>"), t.token());
276
277 EXPECT_TRUE(t.GetNext());
278 EXPECT_EQ(string("baz\""), t.token());
279
280 EXPECT_FALSE(t.GetNext());
281 }
282
283 TEST(StringTokenizerTest, ParsePairQuotedString_EscapedQuotes) {
284 string input = "foo <3\\<4>";
285 StringTokenizer t(input, " ");
286 t.set_paired_quote_chars("<", ">");
287
288 EXPECT_TRUE(t.GetNext());
289 EXPECT_EQ(string("foo"), t.token());
290
291 EXPECT_TRUE(t.GetNext());
292 EXPECT_EQ(string("<3\\<4>"), t.token());
293
294 EXPECT_FALSE(t.GetNext());
295 }
296
297 TEST(StringTokenizerTest, ParsePairQuotedString_EscapedQuotes2) {
298 string input = "foo=<a, b>, bar";
299 StringTokenizer t(input, ", ");
300 t.set_paired_quote_chars("<", ">");
301
302 EXPECT_TRUE(t.GetNext());
303 EXPECT_EQ(string("foo=<a, b>"), t.token());
304
305 EXPECT_TRUE(t.GetNext());
306 EXPECT_EQ(string("bar"), t.token());
307
308 EXPECT_FALSE(t.GetNext());
309 }
310
232 } // namespace 311 } // namespace
233 312
234 } // namespace base 313 } // namespace base
OLDNEW
« 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