OLD | NEW |
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 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 } | 310 } |
311 } | 311 } |
312 | 312 |
313 static std::string WrappedEncodeString(base::string16 value) { | 313 static std::string WrappedEncodeString(base::string16 value) { |
314 std::string buffer; | 314 std::string buffer; |
315 EncodeString(value, &buffer); | 315 EncodeString(value, &buffer); |
316 return buffer; | 316 return buffer; |
317 } | 317 } |
318 | 318 |
319 TEST(IndexedDBLevelDBCodingTest, EncodeString) { | 319 TEST(IndexedDBLevelDBCodingTest, EncodeString) { |
320 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; | 320 const base::char16 test_string_a[] = {'f', 'o', 'o', '\0'}; |
321 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; | 321 const base::char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; |
322 | 322 |
323 EXPECT_EQ(static_cast<size_t>(0), | 323 EXPECT_EQ(static_cast<size_t>(0), |
324 WrappedEncodeString(ASCIIToUTF16("")).size()); | 324 WrappedEncodeString(ASCIIToUTF16("")).size()); |
325 EXPECT_EQ(static_cast<size_t>(2), | 325 EXPECT_EQ(static_cast<size_t>(2), |
326 WrappedEncodeString(ASCIIToUTF16("a")).size()); | 326 WrappedEncodeString(ASCIIToUTF16("a")).size()); |
327 EXPECT_EQ(static_cast<size_t>(6), | 327 EXPECT_EQ(static_cast<size_t>(6), |
328 WrappedEncodeString(ASCIIToUTF16("foo")).size()); | 328 WrappedEncodeString(ASCIIToUTF16("foo")).size()); |
329 EXPECT_EQ(static_cast<size_t>(6), | 329 EXPECT_EQ(static_cast<size_t>(6), |
330 WrappedEncodeString(base::string16(test_string_a)).size()); | 330 WrappedEncodeString(base::string16(test_string_a)).size()); |
331 EXPECT_EQ(static_cast<size_t>(4), | 331 EXPECT_EQ(static_cast<size_t>(4), |
332 WrappedEncodeString(base::string16(test_string_b)).size()); | 332 WrappedEncodeString(base::string16(test_string_b)).size()); |
333 } | 333 } |
334 | 334 |
335 TEST(IndexedDBLevelDBCodingTest, DecodeString) { | 335 TEST(IndexedDBLevelDBCodingTest, DecodeString) { |
336 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; | 336 const base::char16 test_string_a[] = {'f', 'o', 'o', '\0'}; |
337 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; | 337 const base::char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; |
338 | 338 |
339 std::vector<base::string16> test_cases; | 339 std::vector<base::string16> test_cases; |
340 test_cases.push_back(base::string16()); | 340 test_cases.push_back(base::string16()); |
341 test_cases.push_back(ASCIIToUTF16("a")); | 341 test_cases.push_back(ASCIIToUTF16("a")); |
342 test_cases.push_back(ASCIIToUTF16("foo")); | 342 test_cases.push_back(ASCIIToUTF16("foo")); |
343 test_cases.push_back(test_string_a); | 343 test_cases.push_back(test_string_a); |
344 test_cases.push_back(test_string_b); | 344 test_cases.push_back(test_string_b); |
345 | 345 |
346 for (size_t i = 0; i < test_cases.size(); ++i) { | 346 for (size_t i = 0; i < test_cases.size(); ++i) { |
347 const base::string16& test_case = test_cases[i]; | 347 const base::string16& test_case = test_cases[i]; |
(...skipping 18 matching lines...) Expand all Loading... |
366 } | 366 } |
367 } | 367 } |
368 | 368 |
369 static std::string WrappedEncodeStringWithLength(base::string16 value) { | 369 static std::string WrappedEncodeStringWithLength(base::string16 value) { |
370 std::string buffer; | 370 std::string buffer; |
371 EncodeStringWithLength(value, &buffer); | 371 EncodeStringWithLength(value, &buffer); |
372 return buffer; | 372 return buffer; |
373 } | 373 } |
374 | 374 |
375 TEST(IndexedDBLevelDBCodingTest, EncodeStringWithLength) { | 375 TEST(IndexedDBLevelDBCodingTest, EncodeStringWithLength) { |
376 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; | 376 const base::char16 test_string_a[] = {'f', 'o', 'o', '\0'}; |
377 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; | 377 const base::char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; |
378 | 378 |
379 EXPECT_EQ(static_cast<size_t>(1), | 379 EXPECT_EQ(static_cast<size_t>(1), |
380 WrappedEncodeStringWithLength(base::string16()).size()); | 380 WrappedEncodeStringWithLength(base::string16()).size()); |
381 EXPECT_EQ(static_cast<size_t>(3), | 381 EXPECT_EQ(static_cast<size_t>(3), |
382 WrappedEncodeStringWithLength(ASCIIToUTF16("a")).size()); | 382 WrappedEncodeStringWithLength(ASCIIToUTF16("a")).size()); |
383 EXPECT_EQ(static_cast<size_t>(7), | 383 EXPECT_EQ(static_cast<size_t>(7), |
384 WrappedEncodeStringWithLength( | 384 WrappedEncodeStringWithLength( |
385 base::string16(test_string_a)).size()); | 385 base::string16(test_string_a)).size()); |
386 EXPECT_EQ(static_cast<size_t>(5), | 386 EXPECT_EQ(static_cast<size_t>(5), |
387 WrappedEncodeStringWithLength( | 387 WrappedEncodeStringWithLength( |
388 base::string16(test_string_b)).size()); | 388 base::string16(test_string_b)).size()); |
389 } | 389 } |
390 | 390 |
391 TEST(IndexedDBLevelDBCodingTest, DecodeStringWithLength) { | 391 TEST(IndexedDBLevelDBCodingTest, DecodeStringWithLength) { |
392 const char16 test_string_a[] = {'f', 'o', 'o', '\0'}; | 392 const base::char16 test_string_a[] = {'f', 'o', 'o', '\0'}; |
393 const char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; | 393 const base::char16 test_string_b[] = {0xdead, 0xbeef, '\0'}; |
394 | 394 |
395 const int kLongStringLen = 1234; | 395 const int kLongStringLen = 1234; |
396 char16 long_string[kLongStringLen + 1]; | 396 base::char16 long_string[kLongStringLen + 1]; |
397 for (int i = 0; i < kLongStringLen; ++i) | 397 for (int i = 0; i < kLongStringLen; ++i) |
398 long_string[i] = i; | 398 long_string[i] = i; |
399 long_string[kLongStringLen] = 0; | 399 long_string[kLongStringLen] = 0; |
400 | 400 |
401 std::vector<base::string16> test_cases; | 401 std::vector<base::string16> test_cases; |
402 test_cases.push_back(ASCIIToUTF16("")); | 402 test_cases.push_back(ASCIIToUTF16("")); |
403 test_cases.push_back(ASCIIToUTF16("a")); | 403 test_cases.push_back(ASCIIToUTF16("a")); |
404 test_cases.push_back(ASCIIToUTF16("foo")); | 404 test_cases.push_back(ASCIIToUTF16("foo")); |
405 test_cases.push_back(base::string16(test_string_a)); | 405 test_cases.push_back(base::string16(test_string_a)); |
406 test_cases.push_back(base::string16(test_string_b)); | 406 test_cases.push_back(base::string16(test_string_b)); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 StringPiece slice_p(p); | 438 StringPiece slice_p(p); |
439 StringPiece slice_q(q); | 439 StringPiece slice_q(q); |
440 int result = CompareEncodedStringsWithLength(&slice_p, &slice_q, &ok); | 440 int result = CompareEncodedStringsWithLength(&slice_p, &slice_q, &ok); |
441 EXPECT_TRUE(ok); | 441 EXPECT_TRUE(ok); |
442 EXPECT_TRUE(slice_p.empty()); | 442 EXPECT_TRUE(slice_p.empty()); |
443 EXPECT_TRUE(slice_q.empty()); | 443 EXPECT_TRUE(slice_q.empty()); |
444 return result; | 444 return result; |
445 } | 445 } |
446 | 446 |
447 TEST(IndexedDBLevelDBCodingTest, CompareEncodedStringsWithLength) { | 447 TEST(IndexedDBLevelDBCodingTest, CompareEncodedStringsWithLength) { |
448 const char16 test_string_a[] = {0x1000, 0x1000, '\0'}; | 448 const base::char16 test_string_a[] = {0x1000, 0x1000, '\0'}; |
449 const char16 test_string_b[] = {0x1000, 0x1000, 0x1000, '\0'}; | 449 const base::char16 test_string_b[] = {0x1000, 0x1000, 0x1000, '\0'}; |
450 const char16 test_string_c[] = {0x1000, 0x1000, 0x1001, '\0'}; | 450 const base::char16 test_string_c[] = {0x1000, 0x1000, 0x1001, '\0'}; |
451 const char16 test_string_d[] = {0x1001, 0x1000, 0x1000, '\0'}; | 451 const base::char16 test_string_d[] = {0x1001, 0x1000, 0x1000, '\0'}; |
452 const char16 test_string_e[] = {0xd834, 0xdd1e, '\0'}; | 452 const base::char16 test_string_e[] = {0xd834, 0xdd1e, '\0'}; |
453 const char16 test_string_f[] = {0xfffd, '\0'}; | 453 const base::char16 test_string_f[] = {0xfffd, '\0'}; |
454 | 454 |
455 std::vector<base::string16> test_cases; | 455 std::vector<base::string16> test_cases; |
456 test_cases.push_back(ASCIIToUTF16("")); | 456 test_cases.push_back(ASCIIToUTF16("")); |
457 test_cases.push_back(ASCIIToUTF16("a")); | 457 test_cases.push_back(ASCIIToUTF16("a")); |
458 test_cases.push_back(ASCIIToUTF16("b")); | 458 test_cases.push_back(ASCIIToUTF16("b")); |
459 test_cases.push_back(ASCIIToUTF16("baaa")); | 459 test_cases.push_back(ASCIIToUTF16("baaa")); |
460 test_cases.push_back(ASCIIToUTF16("baab")); | 460 test_cases.push_back(ASCIIToUTF16("baab")); |
461 test_cases.push_back(ASCIIToUTF16("c")); | 461 test_cases.push_back(ASCIIToUTF16("c")); |
462 test_cases.push_back(base::string16(test_string_a)); | 462 test_cases.push_back(base::string16(test_string_a)); |
463 test_cases.push_back(base::string16(test_string_b)); | 463 test_cases.push_back(base::string16(test_string_b)); |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
919 std::string vB = WrappedEncodeVarInt(static_cast<int64>(n)); | 919 std::string vB = WrappedEncodeVarInt(static_cast<int64>(n)); |
920 | 920 |
921 EXPECT_EQ(vA.size(), vB.size()); | 921 EXPECT_EQ(vA.size(), vB.size()); |
922 EXPECT_EQ(*vA.begin(), *vB.begin()); | 922 EXPECT_EQ(*vA.begin(), *vB.begin()); |
923 } | 923 } |
924 } | 924 } |
925 | 925 |
926 } // namespace | 926 } // namespace |
927 | 927 |
928 } // namespace content | 928 } // namespace content |
OLD | NEW |