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

Side by Side Diff: core/fxcrt/fx_basic_wstring_unittest.cpp

Issue 1847193002: Beef up unit test for CFX_ByteString and CFX_WideString. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium 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 "core/fxcrt/include/fx_basic.h" 5 #include "core/fxcrt/include/fx_basic.h"
6 #include "testing/fx_string_testhelpers.h" 6 #include "testing/fx_string_testhelpers.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 TEST(fxcrt, WideStringOperatorSubscript) { 9 TEST(fxcrt, WideStringOperatorSubscript) {
10 // CFX_WideString includes the NUL terminator for non-empty strings. 10 // CFX_WideString includes the NUL terminator for non-empty strings.
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 EXPECT_EQ(L"FRED", copy); 269 EXPECT_EQ(L"FRED", copy);
270 270
271 // Test invalid arguments. 271 // Test invalid arguments.
272 copy = fred; 272 copy = fred;
273 fred.ConcatInPlace(-6, L"freddy"); 273 fred.ConcatInPlace(-6, L"freddy");
274 CFX_WideString not_aliased(L"xxxxxx"); 274 CFX_WideString not_aliased(L"xxxxxx");
275 EXPECT_EQ(L"FREDDY", fred); 275 EXPECT_EQ(L"FREDDY", fred);
276 EXPECT_EQ(L"xxxxxx", not_aliased); 276 EXPECT_EQ(L"xxxxxx", not_aliased);
277 } 277 }
278 278
279 TEST(fxcrt, WideStringRemove) {
280 CFX_WideString freed(L"FREED");
281 freed.Remove(L'E');
282 EXPECT_EQ(L"FRD", freed);
283
284 freed.Remove(L'F');
285 EXPECT_EQ(L"RD", freed);
286
287 freed.Remove(L'D');
288 EXPECT_EQ(L"R", freed);
289
290 freed.Remove(L'X');
291 EXPECT_EQ(L"R", freed);
292
293 CFX_WideString empty;
294 empty.Remove(L'X');
295 EXPECT_EQ(L"", empty);
296 }
297
298 TEST(fxcrt, WideStringReplace) {
299 CFX_WideString fred(L"FRED");
300 fred.Replace(L"FR", L"BL");
301 EXPECT_EQ(L"BLED", fred);
302
303 fred.Replace(L"D", L"DDY");
304 EXPECT_EQ(L"BLEDDY", fred);
305
306 fred.Replace(L"LEDD", L"");
307 EXPECT_EQ(L"BY", fred);
308
309 fred.Replace(L"X", L"CLAMS");
310 EXPECT_EQ(L"BY", fred);
311
312 fred.Replace(L"", L"CLAMS");
313 EXPECT_EQ(L"BY", fred);
314 }
315
316 TEST(fxcrt, WideStringInsert) {
317 CFX_WideString fred(L"FRED");
318 fred.Insert(-1, 'X');
319 EXPECT_EQ(L"XFRED", fred);
320
321 fred.Insert(0, 'S');
322 EXPECT_EQ(L"SXFRED", fred);
323
324 fred.Insert(2, 'T');
325 EXPECT_EQ(L"SXTFRED", fred);
326
327 fred.Insert(5, 'U');
328 EXPECT_EQ(L"SXTFRUED", fred);
329
330 fred.Insert(8, 'V');
331 EXPECT_EQ(L"SXTFRUEDV", fred);
332
333 fred.Insert(12, 'P');
334 EXPECT_EQ(L"SXTFRUEDVP", fred);
335
336 {
337 CFX_WideString empty;
338 empty.Insert(-1, 'X');
339 EXPECT_EQ(L"X", empty);
340 }
341 {
342 CFX_WideString empty;
343 empty.Insert(0, 'X');
344 EXPECT_EQ(L"X", empty);
345 }
346 {
347 CFX_WideString empty;
348 empty.Insert(5, 'X');
349 EXPECT_EQ(L"X", empty);
350 }
351 }
352
353 TEST(fxcrt, WideStringDelete) {
354 CFX_WideString fred(L"FRED");
355 fred.Delete(0, 2);
356 EXPECT_EQ(L"ED", fred);
357 fred.Delete(1);
358 EXPECT_EQ(L"E", fred);
359 fred.Delete(-1);
360 EXPECT_EQ(L"", fred);
361 fred.Delete(1);
362 EXPECT_EQ(L"", fred);
363
364 CFX_WideString empty;
365 empty.Delete(0);
366 EXPECT_EQ(L"", empty);
367 empty.Delete(-1);
368 EXPECT_EQ(L"", empty);
369 empty.Delete(1);
370 EXPECT_EQ(L"", empty);
371 }
372
373 TEST(fxcrt, WideStringMid) {
374 CFX_WideString fred(L"FRED");
375 EXPECT_EQ(L"", fred.Mid(0, 0));
376 EXPECT_EQ(L"", fred.Mid(3, 0));
377 EXPECT_EQ(L"FRED", fred.Mid(0));
378 EXPECT_EQ(L"RED", fred.Mid(1));
379 EXPECT_EQ(L"ED", fred.Mid(2));
380 EXPECT_EQ(L"D", fred.Mid(3));
381 EXPECT_EQ(L"F", fred.Mid(0, 1));
382 EXPECT_EQ(L"R", fred.Mid(1, 1));
383 EXPECT_EQ(L"E", fred.Mid(2, 1));
384 EXPECT_EQ(L"D", fred.Mid(3, 1));
385 EXPECT_EQ(L"FR", fred.Mid(0, 2));
386 EXPECT_EQ(L"FRED", fred.Mid(0, 4));
387
388 EXPECT_EQ(L"FR", fred.Mid(-1, 2));
389 EXPECT_EQ(L"RED", fred.Mid(1, 4));
390 EXPECT_EQ(L"", fred.Mid(4, 1));
391
392 CFX_WideString empty;
393 EXPECT_EQ(L"", empty.Mid(0, 0));
394 EXPECT_EQ(L"", empty.Mid(0));
395 EXPECT_EQ(L"", empty.Mid(1));
396 EXPECT_EQ(L"", empty.Mid(-1));
397 }
398
399 TEST(fxcrt, WideStringLeft) {
400 CFX_WideString fred(L"FRED");
401 EXPECT_EQ(L"", fred.Left(0));
402 EXPECT_EQ(L"F", fred.Left(1));
403 EXPECT_EQ(L"FR", fred.Left(2));
404 EXPECT_EQ(L"FRE", fred.Left(3));
405 EXPECT_EQ(L"FRED", fred.Left(4));
406
407 EXPECT_EQ(L"FRED", fred.Left(5));
408 EXPECT_EQ(L"", fred.Left(-1));
409
410 CFX_WideString empty;
411 EXPECT_EQ(L"", empty.Left(0));
412 EXPECT_EQ(L"", empty.Left(1));
413 EXPECT_EQ(L"", empty.Left(-1));
414 }
415
416 TEST(fxcrt, WideStringRight) {
417 CFX_WideString fred(L"FRED");
418 EXPECT_EQ(L"", fred.Right(0));
419 EXPECT_EQ(L"D", fred.Right(1));
420 EXPECT_EQ(L"ED", fred.Right(2));
421 EXPECT_EQ(L"RED", fred.Right(3));
422 EXPECT_EQ(L"FRED", fred.Right(4));
423
424 EXPECT_EQ(L"FRED", fred.Right(5));
425 EXPECT_EQ(L"", fred.Right(-1));
426
427 CFX_WideString empty;
428 EXPECT_EQ(L"", empty.Right(0));
429 EXPECT_EQ(L"", empty.Right(1));
430 EXPECT_EQ(L"", empty.Right(-1));
431 }
432
433 TEST(fxcrt, WideStringUpperLower) {
434 CFX_WideString fred(L"F-Re.42D");
435 fred.MakeLower();
436 EXPECT_EQ(L"f-re.42d", fred);
437 fred.MakeUpper();
438 EXPECT_EQ(L"F-RE.42D", fred);
439
440 CFX_WideString empty;
441 empty.MakeLower();
442 EXPECT_EQ(L"", empty);
443 empty.MakeUpper();
444 EXPECT_EQ(L"", empty);
445 }
446
447 TEST(fxcrt, WideStringTrimRight) {
448 CFX_WideString fred(L" FRED ");
449 fred.TrimRight();
450 EXPECT_EQ(L" FRED", fred);
451 fred.TrimRight(L'E');
452 EXPECT_EQ(L" FRED", fred);
453 fred.TrimRight(L'D');
454 EXPECT_EQ(L" FRE", fred);
455 fred.TrimRight(L"ERP");
456 EXPECT_EQ(L" F", fred);
457
458 CFX_WideString blank(L" ");
459 blank.TrimRight(L"ERP");
460 EXPECT_EQ(L" ", blank);
461 blank.TrimRight(L'E');
462 EXPECT_EQ(L" ", blank);
463 blank.TrimRight();
464 EXPECT_EQ(L"", blank);
465
466 CFX_WideString empty;
467 empty.TrimRight(L"ERP");
468 EXPECT_EQ(L"", empty);
469 empty.TrimRight(L'E');
470 EXPECT_EQ(L"", empty);
471 empty.TrimRight();
472 EXPECT_EQ(L"", empty);
473 }
474
475 TEST(fxcrt, WideStringTrimLeft) {
476 CFX_WideString fred(L" FRED ");
477 fred.TrimLeft();
478 EXPECT_EQ(L"FRED ", fred);
479 fred.TrimLeft(L'E');
480 EXPECT_EQ(L"FRED ", fred);
481 fred.TrimLeft(L'F');
482 EXPECT_EQ(L"RED ", fred);
483 fred.TrimLeft(L"ERP");
484 EXPECT_EQ(L"D ", fred);
485
486 CFX_WideString blank(L" ");
487 blank.TrimLeft(L"ERP");
488 EXPECT_EQ(L" ", blank);
489 blank.TrimLeft(L'E');
490 EXPECT_EQ(L" ", blank);
491 blank.TrimLeft();
492 EXPECT_EQ(L"", blank);
493
494 CFX_WideString empty;
495 empty.TrimLeft(L"ERP");
496 EXPECT_EQ(L"", empty);
497 empty.TrimLeft(L'E');
498 EXPECT_EQ(L"", empty);
499 empty.TrimLeft();
500 EXPECT_EQ(L"", empty);
501 }
502
279 TEST(fxcrt, WideStringUTF16LE_Encode) { 503 TEST(fxcrt, WideStringUTF16LE_Encode) {
280 struct UTF16LEEncodeCase { 504 struct UTF16LEEncodeCase {
281 CFX_WideString ws; 505 CFX_WideString ws;
282 CFX_ByteString bs; 506 CFX_ByteString bs;
283 } utf16le_encode_cases[] = { 507 } utf16le_encode_cases[] = {
284 {L"", CFX_ByteString("\0\0", 2)}, 508 {L"", CFX_ByteString("\0\0", 2)},
285 {L"abc", CFX_ByteString("a\0b\0c\0\0\0", 8)}, 509 {L"abc", CFX_ByteString("a\0b\0c\0\0\0", 8)},
286 {L"abcdef", CFX_ByteString("a\0b\0c\0d\0e\0f\0\0\0", 14)}, 510 {L"abcdef", CFX_ByteString("a\0b\0c\0d\0e\0f\0\0\0", 14)},
287 {L"abc\0def", CFX_ByteString("a\0b\0c\0\0\0", 8)}, 511 {L"abc\0def", CFX_ByteString("a\0b\0c\0\0\0", 8)},
288 {L"\xaabb\xccdd", CFX_ByteString("\xbb\xaa\xdd\xcc\0\0", 6)}, 512 {L"\xaabb\xccdd", CFX_ByteString("\xbb\xaa\xdd\xcc\0\0", 6)},
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 } 739 }
516 } 740 }
517 741
518 TEST(fxcrt, EmptyWideString) { 742 TEST(fxcrt, EmptyWideString) {
519 CFX_WideString empty_str; 743 CFX_WideString empty_str;
520 EXPECT_TRUE(empty_str.IsEmpty()); 744 EXPECT_TRUE(empty_str.IsEmpty());
521 EXPECT_EQ(0, empty_str.GetLength()); 745 EXPECT_EQ(0, empty_str.GetLength());
522 const FX_WCHAR* cstr = empty_str.c_str(); 746 const FX_WCHAR* cstr = empty_str.c_str();
523 EXPECT_EQ(0, FXSYS_wcslen(cstr)); 747 EXPECT_EQ(0, FXSYS_wcslen(cstr));
524 } 748 }
OLDNEW
« core/fxcrt/fx_basic_bstring_unittest.cpp ('K') | « core/fxcrt/fx_basic_wstring.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698