| 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 |