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

Side by Side Diff: content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc

Issue 102593002: Convert string16 to base::string16 in content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/browser/indexed_db/indexed_db_leveldb_coding.h" 5 #include "content/browser/indexed_db/indexed_db_leveldb_coding.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 297
298 // Verify decoding at an offset, to detect unaligned memory access. 298 // Verify decoding at an offset, to detect unaligned memory access.
299 v.insert(v.begin(), static_cast<size_t>(1), static_cast<char>(0)); 299 v.insert(v.begin(), static_cast<size_t>(1), static_cast<char>(0));
300 slice = StringPiece(&*v.begin() + 1, v.size() - 1); 300 slice = StringPiece(&*v.begin() + 1, v.size() - 1);
301 EXPECT_TRUE(DecodeVarInt(&slice, &res)); 301 EXPECT_TRUE(DecodeVarInt(&slice, &res));
302 EXPECT_EQ(n, res); 302 EXPECT_EQ(n, res);
303 EXPECT_TRUE(slice.empty()); 303 EXPECT_TRUE(slice.empty());
304 } 304 }
305 } 305 }
306 306
307 static std::string WrappedEncodeString(string16 value) { 307 static std::string WrappedEncodeString(base::string16 value) {
308 std::string buffer; 308 std::string buffer;
309 EncodeString(value, &buffer); 309 EncodeString(value, &buffer);
310 return buffer; 310 return buffer;
311 } 311 }
312 312
313 TEST(IndexedDBLevelDBCodingTest, EncodeString) { 313 TEST(IndexedDBLevelDBCodingTest, EncodeString) {
314 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; 314 const char16 test_string_a[] = {'f', 'o', 'o', '\0'};
315 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; 315 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'};
316 316
317 EXPECT_EQ(static_cast<size_t>(0), 317 EXPECT_EQ(static_cast<size_t>(0),
318 WrappedEncodeString(ASCIIToUTF16("")).size()); 318 WrappedEncodeString(ASCIIToUTF16("")).size());
319 EXPECT_EQ(static_cast<size_t>(2), 319 EXPECT_EQ(static_cast<size_t>(2),
320 WrappedEncodeString(ASCIIToUTF16("a")).size()); 320 WrappedEncodeString(ASCIIToUTF16("a")).size());
321 EXPECT_EQ(static_cast<size_t>(6), 321 EXPECT_EQ(static_cast<size_t>(6),
322 WrappedEncodeString(ASCIIToUTF16("foo")).size()); 322 WrappedEncodeString(ASCIIToUTF16("foo")).size());
323 EXPECT_EQ(static_cast<size_t>(6), 323 EXPECT_EQ(static_cast<size_t>(6),
324 WrappedEncodeString(string16(test_string_a)).size()); 324 WrappedEncodeString(base::string16(test_string_a)).size());
325 EXPECT_EQ(static_cast<size_t>(4), 325 EXPECT_EQ(static_cast<size_t>(4),
326 WrappedEncodeString(string16(test_string_b)).size()); 326 WrappedEncodeString(base::string16(test_string_b)).size());
327 } 327 }
328 328
329 TEST(IndexedDBLevelDBCodingTest, DecodeString) { 329 TEST(IndexedDBLevelDBCodingTest, DecodeString) {
330 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; 330 const char16 test_string_a[] = {'f', 'o', 'o', '\0'};
331 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; 331 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'};
332 332
333 std::vector<string16> test_cases; 333 std::vector<base::string16> test_cases;
334 test_cases.push_back(string16()); 334 test_cases.push_back(base::string16());
335 test_cases.push_back(ASCIIToUTF16("a")); 335 test_cases.push_back(ASCIIToUTF16("a"));
336 test_cases.push_back(ASCIIToUTF16("foo")); 336 test_cases.push_back(ASCIIToUTF16("foo"));
337 test_cases.push_back(test_string_a); 337 test_cases.push_back(test_string_a);
338 test_cases.push_back(test_string_b); 338 test_cases.push_back(test_string_b);
339 339
340 for (size_t i = 0; i < test_cases.size(); ++i) { 340 for (size_t i = 0; i < test_cases.size(); ++i) {
341 const string16& test_case = test_cases[i]; 341 const base::string16& test_case = test_cases[i];
342 std::string v = WrappedEncodeString(test_case); 342 std::string v = WrappedEncodeString(test_case);
343 343
344 StringPiece slice; 344 StringPiece slice;
345 if (v.size()) { 345 if (v.size()) {
346 slice = StringPiece(&*v.begin(), v.size()); 346 slice = StringPiece(&*v.begin(), v.size());
347 } 347 }
348 348
349 string16 result; 349 base::string16 result;
350 EXPECT_TRUE(DecodeString(&slice, &result)); 350 EXPECT_TRUE(DecodeString(&slice, &result));
351 EXPECT_EQ(test_case, result); 351 EXPECT_EQ(test_case, result);
352 EXPECT_TRUE(slice.empty()); 352 EXPECT_TRUE(slice.empty());
353 353
354 // Verify decoding at an offset, to detect unaligned memory access. 354 // Verify decoding at an offset, to detect unaligned memory access.
355 v.insert(v.begin(), static_cast<size_t>(1), static_cast<char>(0)); 355 v.insert(v.begin(), static_cast<size_t>(1), static_cast<char>(0));
356 slice = StringPiece(&*v.begin() + 1, v.size() - 1); 356 slice = StringPiece(&*v.begin() + 1, v.size() - 1);
357 EXPECT_TRUE(DecodeString(&slice, &result)); 357 EXPECT_TRUE(DecodeString(&slice, &result));
358 EXPECT_EQ(test_case, result); 358 EXPECT_EQ(test_case, result);
359 EXPECT_TRUE(slice.empty()); 359 EXPECT_TRUE(slice.empty());
360 } 360 }
361 } 361 }
362 362
363 static std::string WrappedEncodeStringWithLength(string16 value) { 363 static std::string WrappedEncodeStringWithLength(base::string16 value) {
364 std::string buffer; 364 std::string buffer;
365 EncodeStringWithLength(value, &buffer); 365 EncodeStringWithLength(value, &buffer);
366 return buffer; 366 return buffer;
367 } 367 }
368 368
369 TEST(IndexedDBLevelDBCodingTest, EncodeStringWithLength) { 369 TEST(IndexedDBLevelDBCodingTest, EncodeStringWithLength) {
370 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; 370 const char16 test_string_a[] = {'f', 'o', 'o', '\0'};
371 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; 371 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'};
372 372
373 EXPECT_EQ(static_cast<size_t>(1), 373 EXPECT_EQ(static_cast<size_t>(1),
374 WrappedEncodeStringWithLength(string16()).size()); 374 WrappedEncodeStringWithLength(base::string16()).size());
375 EXPECT_EQ(static_cast<size_t>(3), 375 EXPECT_EQ(static_cast<size_t>(3),
376 WrappedEncodeStringWithLength(ASCIIToUTF16("a")).size()); 376 WrappedEncodeStringWithLength(ASCIIToUTF16("a")).size());
377 EXPECT_EQ(static_cast<size_t>(7), 377 EXPECT_EQ(static_cast<size_t>(7),
378 WrappedEncodeStringWithLength(string16(test_string_a)).size()); 378 WrappedEncodeStringWithLength(
379 base::string16(test_string_a)).size());
379 EXPECT_EQ(static_cast<size_t>(5), 380 EXPECT_EQ(static_cast<size_t>(5),
380 WrappedEncodeStringWithLength(string16(test_string_b)).size()); 381 WrappedEncodeStringWithLength(
382 base::string16(test_string_b)).size());
381 } 383 }
382 384
383 TEST(IndexedDBLevelDBCodingTest, DecodeStringWithLength) { 385 TEST(IndexedDBLevelDBCodingTest, DecodeStringWithLength) {
384 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; 386 const char16 test_string_a[] = {'f', 'o', 'o', '\0'};
385 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; 387 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'};
386 388
387 const int kLongStringLen = 1234; 389 const int kLongStringLen = 1234;
388 char16 long_string[kLongStringLen + 1]; 390 char16 long_string[kLongStringLen + 1];
389 for (int i = 0; i < kLongStringLen; ++i) 391 for (int i = 0; i < kLongStringLen; ++i)
390 long_string[i] = i; 392 long_string[i] = i;
391 long_string[kLongStringLen] = 0; 393 long_string[kLongStringLen] = 0;
392 394
393 std::vector<string16> test_cases; 395 std::vector<base::string16> test_cases;
394 test_cases.push_back(ASCIIToUTF16("")); 396 test_cases.push_back(ASCIIToUTF16(""));
395 test_cases.push_back(ASCIIToUTF16("a")); 397 test_cases.push_back(ASCIIToUTF16("a"));
396 test_cases.push_back(ASCIIToUTF16("foo")); 398 test_cases.push_back(ASCIIToUTF16("foo"));
397 test_cases.push_back(string16(test_string_a)); 399 test_cases.push_back(base::string16(test_string_a));
398 test_cases.push_back(string16(test_string_b)); 400 test_cases.push_back(base::string16(test_string_b));
399 test_cases.push_back(string16(long_string)); 401 test_cases.push_back(base::string16(long_string));
400 402
401 for (size_t i = 0; i < test_cases.size(); ++i) { 403 for (size_t i = 0; i < test_cases.size(); ++i) {
402 string16 s = test_cases[i]; 404 base::string16 s = test_cases[i];
403 std::string v = WrappedEncodeStringWithLength(s); 405 std::string v = WrappedEncodeStringWithLength(s);
404 ASSERT_GT(v.size(), static_cast<size_t>(0)); 406 ASSERT_GT(v.size(), static_cast<size_t>(0));
405 StringPiece slice(v); 407 StringPiece slice(v);
406 string16 res; 408 base::string16 res;
407 EXPECT_TRUE(DecodeStringWithLength(&slice, &res)); 409 EXPECT_TRUE(DecodeStringWithLength(&slice, &res));
408 EXPECT_EQ(s, res); 410 EXPECT_EQ(s, res);
409 EXPECT_TRUE(slice.empty()); 411 EXPECT_TRUE(slice.empty());
410 412
411 slice = StringPiece(&*v.begin(), v.size() - 1); 413 slice = StringPiece(&*v.begin(), v.size() - 1);
412 EXPECT_FALSE(DecodeStringWithLength(&slice, &res)); 414 EXPECT_FALSE(DecodeStringWithLength(&slice, &res));
413 415
414 slice = StringPiece(&*v.begin(), static_cast<size_t>(0)); 416 slice = StringPiece(&*v.begin(), static_cast<size_t>(0));
415 EXPECT_FALSE(DecodeStringWithLength(&slice, &res)); 417 EXPECT_FALSE(DecodeStringWithLength(&slice, &res));
416 418
(...skipping 20 matching lines...) Expand all
437 } 439 }
438 440
439 TEST(IndexedDBLevelDBCodingTest, CompareEncodedStringsWithLength) { 441 TEST(IndexedDBLevelDBCodingTest, CompareEncodedStringsWithLength) {
440 const char16 test_string_a[] = {0x1000, 0x1000, '\0'}; 442 const char16 test_string_a[] = {0x1000, 0x1000, '\0'};
441 const char16 test_string_b[] = {0x1000, 0x1000, 0x1000, '\0'}; 443 const char16 test_string_b[] = {0x1000, 0x1000, 0x1000, '\0'};
442 const char16 test_string_c[] = {0x1000, 0x1000, 0x1001, '\0'}; 444 const char16 test_string_c[] = {0x1000, 0x1000, 0x1001, '\0'};
443 const char16 test_string_d[] = {0x1001, 0x1000, 0x1000, '\0'}; 445 const char16 test_string_d[] = {0x1001, 0x1000, 0x1000, '\0'};
444 const char16 test_string_e[] = {0xd834, 0xdd1e, '\0'}; 446 const char16 test_string_e[] = {0xd834, 0xdd1e, '\0'};
445 const char16 test_string_f[] = {0xfffd, '\0'}; 447 const char16 test_string_f[] = {0xfffd, '\0'};
446 448
447 std::vector<string16> test_cases; 449 std::vector<base::string16> test_cases;
448 test_cases.push_back(ASCIIToUTF16("")); 450 test_cases.push_back(ASCIIToUTF16(""));
449 test_cases.push_back(ASCIIToUTF16("a")); 451 test_cases.push_back(ASCIIToUTF16("a"));
450 test_cases.push_back(ASCIIToUTF16("b")); 452 test_cases.push_back(ASCIIToUTF16("b"));
451 test_cases.push_back(ASCIIToUTF16("baaa")); 453 test_cases.push_back(ASCIIToUTF16("baaa"));
452 test_cases.push_back(ASCIIToUTF16("baab")); 454 test_cases.push_back(ASCIIToUTF16("baab"));
453 test_cases.push_back(ASCIIToUTF16("c")); 455 test_cases.push_back(ASCIIToUTF16("c"));
454 test_cases.push_back(string16(test_string_a)); 456 test_cases.push_back(base::string16(test_string_a));
455 test_cases.push_back(string16(test_string_b)); 457 test_cases.push_back(base::string16(test_string_b));
456 test_cases.push_back(string16(test_string_c)); 458 test_cases.push_back(base::string16(test_string_c));
457 test_cases.push_back(string16(test_string_d)); 459 test_cases.push_back(base::string16(test_string_d));
458 test_cases.push_back(string16(test_string_e)); 460 test_cases.push_back(base::string16(test_string_e));
459 test_cases.push_back(string16(test_string_f)); 461 test_cases.push_back(base::string16(test_string_f));
460 462
461 for (size_t i = 0; i < test_cases.size() - 1; ++i) { 463 for (size_t i = 0; i < test_cases.size() - 1; ++i) {
462 string16 a = test_cases[i]; 464 base::string16 a = test_cases[i];
463 string16 b = test_cases[i + 1]; 465 base::string16 b = test_cases[i + 1];
464 466
465 EXPECT_LT(a.compare(b), 0); 467 EXPECT_LT(a.compare(b), 0);
466 EXPECT_GT(b.compare(a), 0); 468 EXPECT_GT(b.compare(a), 0);
467 EXPECT_EQ(a.compare(a), 0); 469 EXPECT_EQ(a.compare(a), 0);
468 EXPECT_EQ(b.compare(b), 0); 470 EXPECT_EQ(b.compare(b), 0);
469 471
470 std::string encoded_a = WrappedEncodeStringWithLength(a); 472 std::string encoded_a = WrappedEncodeStringWithLength(a);
471 EXPECT_TRUE(encoded_a.size()); 473 EXPECT_TRUE(encoded_a.size());
472 std::string encoded_b = WrappedEncodeStringWithLength(b); 474 std::string encoded_b = WrappedEncodeStringWithLength(b);
473 EXPECT_TRUE(encoded_a.size()); 475 EXPECT_TRUE(encoded_a.size());
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 { 625 {
624 key_paths.push_back(IndexedDBKeyPath()); 626 key_paths.push_back(IndexedDBKeyPath());
625 char expected[] = {0, 0, // Header 627 char expected[] = {0, 0, // Header
626 0 // Type is null 628 0 // Type is null
627 }; 629 };
628 encoded_paths.push_back( 630 encoded_paths.push_back(
629 std::string(expected, expected + arraysize(expected))); 631 std::string(expected, expected + arraysize(expected)));
630 } 632 }
631 633
632 { 634 {
633 key_paths.push_back(IndexedDBKeyPath(string16())); 635 key_paths.push_back(IndexedDBKeyPath(base::string16()));
634 char expected[] = {0, 0, // Header 636 char expected[] = {0, 0, // Header
635 1, // Type is string 637 1, // Type is string
636 0 // Length is 0 638 0 // Length is 0
637 }; 639 };
638 encoded_paths.push_back( 640 encoded_paths.push_back(
639 std::string(expected, expected + arraysize(expected))); 641 std::string(expected, expected + arraysize(expected)));
640 } 642 }
641 643
642 { 644 {
643 key_paths.push_back(IndexedDBKeyPath(ASCIIToUTF16("foo"))); 645 key_paths.push_back(IndexedDBKeyPath(ASCIIToUTF16("foo")));
(...skipping 10 matching lines...) Expand all
654 char expected[] = {0, 0, // Header 656 char expected[] = {0, 0, // Header
655 1, // Type is string 657 1, // Type is string
656 7, 0, 'f', 0, 'o', 0, 'o', 0, '.', 0, 'b', 0, 'a', 0, 658 7, 0, 'f', 0, 'o', 0, 'o', 0, '.', 0, 'b', 0, 'a', 0,
657 'r' // String length 7, UTF-16BE 659 'r' // String length 7, UTF-16BE
658 }; 660 };
659 encoded_paths.push_back( 661 encoded_paths.push_back(
660 std::string(expected, expected + arraysize(expected))); 662 std::string(expected, expected + arraysize(expected)));
661 } 663 }
662 664
663 { 665 {
664 std::vector<string16> array; 666 std::vector<base::string16> array;
665 array.push_back(string16()); 667 array.push_back(base::string16());
666 array.push_back(ASCIIToUTF16("foo")); 668 array.push_back(ASCIIToUTF16("foo"));
667 array.push_back(ASCIIToUTF16("foo.bar")); 669 array.push_back(ASCIIToUTF16("foo.bar"));
668 670
669 key_paths.push_back(IndexedDBKeyPath(array)); 671 key_paths.push_back(IndexedDBKeyPath(array));
670 char expected[] = {0, 0, // Header 672 char expected[] = {0, 0, // Header
671 2, 3, // Type is array, length is 3 673 2, 3, // Type is array, length is 3
672 0, // Member 1 (String length 0) 674 0, // Member 1 (String length 0)
673 3, 0, 'f', 0, 'o', 0, 'o', // Member 2 (String length 3) 675 3, 0, 'f', 0, 'o', 0, 'o', // Member 2 (String length 3)
674 7, 0, 'f', 0, 'o', 0, 'o', 0, '.', 0, 'b', 0, 'a', 0, 676 7, 0, 'f', 0, 'o', 0, 'o', 0, '.', 0, 'b', 0, 'a', 0,
675 'r' // Member 3 (String length 7) 677 'r' // Member 3 (String length 7)
(...skipping 17 matching lines...) Expand all
693 EXPECT_TRUE(slice.empty()); 695 EXPECT_TRUE(slice.empty());
694 } 696 }
695 } 697 }
696 698
697 TEST(IndexedDBLevelDBCodingTest, DecodeLegacyIDBKeyPath) { 699 TEST(IndexedDBLevelDBCodingTest, DecodeLegacyIDBKeyPath) {
698 // Legacy encoding of string key paths. 700 // Legacy encoding of string key paths.
699 std::vector<IndexedDBKeyPath> key_paths; 701 std::vector<IndexedDBKeyPath> key_paths;
700 std::vector<std::string> encoded_paths; 702 std::vector<std::string> encoded_paths;
701 703
702 { 704 {
703 key_paths.push_back(IndexedDBKeyPath(string16())); 705 key_paths.push_back(IndexedDBKeyPath(base::string16()));
704 encoded_paths.push_back(std::string()); 706 encoded_paths.push_back(std::string());
705 } 707 }
706 { 708 {
707 key_paths.push_back(IndexedDBKeyPath(ASCIIToUTF16("foo"))); 709 key_paths.push_back(IndexedDBKeyPath(ASCIIToUTF16("foo")));
708 char expected[] = {0, 'f', 0, 'o', 0, 'o'}; 710 char expected[] = {0, 'f', 0, 'o', 0, 'o'};
709 encoded_paths.push_back(std::string(expected, arraysize(expected))); 711 encoded_paths.push_back(std::string(expected, arraysize(expected)));
710 } 712 }
711 { 713 {
712 key_paths.push_back(IndexedDBKeyPath(ASCIIToUTF16("foo.bar"))); 714 key_paths.push_back(IndexedDBKeyPath(ASCIIToUTF16("foo.bar")));
713 char expected[] = {0, 'f', 0, 'o', 0, 'o', 0, '.', 0, 'b', 0, 'a', 0, 'r'}; 715 char expected[] = {0, 'f', 0, 'o', 0, 'o', 0, '.', 0, 'b', 0, 'a', 0, 'r'};
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 std::string vB = WrappedEncodeVarInt(static_cast<int64>(n)); 913 std::string vB = WrappedEncodeVarInt(static_cast<int64>(n));
912 914
913 EXPECT_EQ(vA.size(), vB.size()); 915 EXPECT_EQ(vA.size(), vB.size());
914 EXPECT_EQ(*vA.begin(), *vB.begin()); 916 EXPECT_EQ(*vA.begin(), *vB.begin());
915 } 917 }
916 } 918 }
917 919
918 } // namespace 920 } // namespace
919 921
920 } // namespace content 922 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/indexed_db/indexed_db_leveldb_coding.cc ('k') | content/browser/indexed_db/indexed_db_metadata.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698