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

Side by Side Diff: components/drive/resource_metadata_storage_unittest.cc

Issue 1546143002: Switch to standard integer types in components/, part 1 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "components/drive/resource_metadata_storage.h" 5 #include "components/drive/resource_metadata_storage.h"
6 6
7 #include <stddef.h>
8 #include <stdint.h>
9
7 #include <algorithm> 10 #include <algorithm>
8 11
9 #include "base/files/file_util.h" 12 #include "base/files/file_util.h"
10 #include "base/files/scoped_temp_dir.h" 13 #include "base/files/scoped_temp_dir.h"
14 #include "base/macros.h"
11 #include "base/single_thread_task_runner.h" 15 #include "base/single_thread_task_runner.h"
12 #include "base/strings/string_split.h" 16 #include "base/strings/string_split.h"
13 #include "base/thread_task_runner_handle.h" 17 #include "base/thread_task_runner_handle.h"
14 #include "components/drive/drive.pb.h" 18 #include "components/drive/drive.pb.h"
15 #include "components/drive/drive_test_util.h" 19 #include "components/drive/drive_test_util.h"
16 #include "content/public/test/test_browser_thread_bundle.h" 20 #include "content/public/test/test_browser_thread_bundle.h"
17 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
18 #include "third_party/leveldatabase/src/include/leveldb/db.h" 22 #include "third_party/leveldatabase/src/include/leveldb/db.h"
19 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h" 23 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
20 24
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 ResourceMetadataStorage::GetChildEntryKey(parent_id, child_base_name)); 67 ResourceMetadataStorage::GetChildEntryKey(parent_id, child_base_name));
64 } 68 }
65 69
66 content::TestBrowserThreadBundle thread_bundle_; 70 content::TestBrowserThreadBundle thread_bundle_;
67 base::ScopedTempDir temp_dir_; 71 base::ScopedTempDir temp_dir_;
68 scoped_ptr<ResourceMetadataStorage, 72 scoped_ptr<ResourceMetadataStorage,
69 test_util::DestroyHelperForTests> storage_; 73 test_util::DestroyHelperForTests> storage_;
70 }; 74 };
71 75
72 TEST_F(ResourceMetadataStorageTest, LargestChangestamp) { 76 TEST_F(ResourceMetadataStorageTest, LargestChangestamp) {
73 const int64 kLargestChangestamp = 1234567890; 77 const int64_t kLargestChangestamp = 1234567890;
74 EXPECT_EQ(FILE_ERROR_OK, 78 EXPECT_EQ(FILE_ERROR_OK,
75 storage_->SetLargestChangestamp(kLargestChangestamp)); 79 storage_->SetLargestChangestamp(kLargestChangestamp));
76 int64 value = 0; 80 int64_t value = 0;
77 EXPECT_EQ(FILE_ERROR_OK, storage_->GetLargestChangestamp(&value)); 81 EXPECT_EQ(FILE_ERROR_OK, storage_->GetLargestChangestamp(&value));
78 EXPECT_EQ(kLargestChangestamp, value); 82 EXPECT_EQ(kLargestChangestamp, value);
79 } 83 }
80 84
81 TEST_F(ResourceMetadataStorageTest, PutEntry) { 85 TEST_F(ResourceMetadataStorageTest, PutEntry) {
82 const std::string key1 = "abcdefg"; 86 const std::string key1 = "abcdefg";
83 const std::string key2 = "abcd"; 87 const std::string key2 = "abcd";
84 const std::string key3 = "efgh"; 88 const std::string key3 = "efgh";
85 const std::string name2 = "ABCD"; 89 const std::string name2 = "ABCD";
86 const std::string name3 = "EFGH"; 90 const std::string name3 = "EFGH";
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 EXPECT_EQ(parent_id1, result.parent_local_id()); 281 EXPECT_EQ(parent_id1, result.parent_local_id());
278 EXPECT_EQ(child_name1, result.base_name()); 282 EXPECT_EQ(child_name1, result.base_name());
279 283
280 std::string child_id; 284 std::string child_id;
281 EXPECT_EQ(FILE_ERROR_OK, 285 EXPECT_EQ(FILE_ERROR_OK,
282 storage_->GetChild(parent_id1, child_name1, &child_id)); 286 storage_->GetChild(parent_id1, child_name1, &child_id));
283 EXPECT_EQ(child_id1, child_id); 287 EXPECT_EQ(child_id1, child_id);
284 } 288 }
285 289
286 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_M29) { 290 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_M29) {
287 const int64 kLargestChangestamp = 1234567890; 291 const int64_t kLargestChangestamp = 1234567890;
288 const std::string title = "title"; 292 const std::string title = "title";
289 293
290 // Construct M29 version DB. 294 // Construct M29 version DB.
291 SetDBVersion(6); 295 SetDBVersion(6);
292 EXPECT_EQ(FILE_ERROR_OK, 296 EXPECT_EQ(FILE_ERROR_OK,
293 storage_->SetLargestChangestamp(kLargestChangestamp)); 297 storage_->SetLargestChangestamp(kLargestChangestamp));
294 298
295 leveldb::WriteBatch batch; 299 leveldb::WriteBatch batch;
296 300
297 // Put a file entry and its cache entry. 301 // Put a file entry and its cache entry.
(...skipping 16 matching lines...) Expand all
314 storage_.reset(new ResourceMetadataStorage( 318 storage_.reset(new ResourceMetadataStorage(
315 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get())); 319 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get()));
316 ASSERT_TRUE(storage_->Initialize()); 320 ASSERT_TRUE(storage_->Initialize());
317 321
318 // Resource-ID-to-local-ID mapping is added. 322 // Resource-ID-to-local-ID mapping is added.
319 std::string id; 323 std::string id;
320 EXPECT_EQ(FILE_ERROR_OK, 324 EXPECT_EQ(FILE_ERROR_OK,
321 storage_->GetIdByResourceId("abcd", &id)); // "file:" is dropped. 325 storage_->GetIdByResourceId("abcd", &id)); // "file:" is dropped.
322 326
323 // Data is erased, except cache entries. 327 // Data is erased, except cache entries.
324 int64 largest_changestamp = 0; 328 int64_t largest_changestamp = 0;
325 EXPECT_EQ(FILE_ERROR_OK, 329 EXPECT_EQ(FILE_ERROR_OK,
326 storage_->GetLargestChangestamp(&largest_changestamp)); 330 storage_->GetLargestChangestamp(&largest_changestamp));
327 EXPECT_EQ(0, largest_changestamp); 331 EXPECT_EQ(0, largest_changestamp);
328 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry)); 332 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry));
329 EXPECT_TRUE(entry.title().empty()); 333 EXPECT_TRUE(entry.title().empty());
330 EXPECT_TRUE(entry.file_specific_info().has_cache_state()); 334 EXPECT_TRUE(entry.file_specific_info().has_cache_state());
331 } 335 }
332 336
333 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_M32) { 337 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_M32) {
334 const int64 kLargestChangestamp = 1234567890; 338 const int64_t kLargestChangestamp = 1234567890;
335 const std::string title = "title"; 339 const std::string title = "title";
336 const std::string resource_id = "abcd"; 340 const std::string resource_id = "abcd";
337 const std::string local_id = "local-abcd"; 341 const std::string local_id = "local-abcd";
338 342
339 // Construct M32 version DB. 343 // Construct M32 version DB.
340 SetDBVersion(11); 344 SetDBVersion(11);
341 EXPECT_EQ(FILE_ERROR_OK, 345 EXPECT_EQ(FILE_ERROR_OK,
342 storage_->SetLargestChangestamp(kLargestChangestamp)); 346 storage_->SetLargestChangestamp(kLargestChangestamp));
343 347
344 leveldb::WriteBatch batch; 348 leveldb::WriteBatch batch;
(...skipping 19 matching lines...) Expand all
364 storage_.reset(); 368 storage_.reset();
365 EXPECT_TRUE(ResourceMetadataStorage::UpgradeOldDB(temp_dir_.path())); 369 EXPECT_TRUE(ResourceMetadataStorage::UpgradeOldDB(temp_dir_.path()));
366 storage_.reset(new ResourceMetadataStorage( 370 storage_.reset(new ResourceMetadataStorage(
367 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get())); 371 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get()));
368 ASSERT_TRUE(storage_->Initialize()); 372 ASSERT_TRUE(storage_->Initialize());
369 373
370 // Data is erased, except cache and id mapping entries. 374 // Data is erased, except cache and id mapping entries.
371 std::string id; 375 std::string id;
372 EXPECT_EQ(FILE_ERROR_OK, storage_->GetIdByResourceId(resource_id, &id)); 376 EXPECT_EQ(FILE_ERROR_OK, storage_->GetIdByResourceId(resource_id, &id));
373 EXPECT_EQ(local_id, id); 377 EXPECT_EQ(local_id, id);
374 int64 largest_changestamp = 0; 378 int64_t largest_changestamp = 0;
375 EXPECT_EQ(FILE_ERROR_OK, 379 EXPECT_EQ(FILE_ERROR_OK,
376 storage_->GetLargestChangestamp(&largest_changestamp)); 380 storage_->GetLargestChangestamp(&largest_changestamp));
377 EXPECT_EQ(0, largest_changestamp); 381 EXPECT_EQ(0, largest_changestamp);
378 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry)); 382 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry));
379 EXPECT_TRUE(entry.title().empty()); 383 EXPECT_TRUE(entry.title().empty());
380 EXPECT_TRUE(entry.file_specific_info().has_cache_state()); 384 EXPECT_TRUE(entry.file_specific_info().has_cache_state());
381 } 385 }
382 386
383 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_M33) { 387 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_M33) {
384 const int64 kLargestChangestamp = 1234567890; 388 const int64_t kLargestChangestamp = 1234567890;
385 const std::string title = "title"; 389 const std::string title = "title";
386 const std::string resource_id = "abcd"; 390 const std::string resource_id = "abcd";
387 const std::string local_id = "local-abcd"; 391 const std::string local_id = "local-abcd";
388 const std::string md5 = "md5"; 392 const std::string md5 = "md5";
389 const std::string resource_id2 = "efgh"; 393 const std::string resource_id2 = "efgh";
390 const std::string local_id2 = "local-efgh"; 394 const std::string local_id2 = "local-efgh";
391 const std::string md5_2 = "md5_2"; 395 const std::string md5_2 = "md5_2";
392 396
393 // Construct M33 version DB. 397 // Construct M33 version DB.
394 SetDBVersion(12); 398 SetDBVersion(12);
(...skipping 27 matching lines...) Expand all
422 EXPECT_TRUE(resource_map()->Write(leveldb::WriteOptions(), &batch).ok()); 426 EXPECT_TRUE(resource_map()->Write(leveldb::WriteOptions(), &batch).ok());
423 427
424 // Upgrade and reopen. 428 // Upgrade and reopen.
425 storage_.reset(); 429 storage_.reset();
426 EXPECT_TRUE(ResourceMetadataStorage::UpgradeOldDB(temp_dir_.path())); 430 EXPECT_TRUE(ResourceMetadataStorage::UpgradeOldDB(temp_dir_.path()));
427 storage_.reset(new ResourceMetadataStorage( 431 storage_.reset(new ResourceMetadataStorage(
428 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get())); 432 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get()));
429 ASSERT_TRUE(storage_->Initialize()); 433 ASSERT_TRUE(storage_->Initialize());
430 434
431 // No data is lost. 435 // No data is lost.
432 int64 largest_changestamp = 0; 436 int64_t largest_changestamp = 0;
433 EXPECT_EQ(FILE_ERROR_OK, 437 EXPECT_EQ(FILE_ERROR_OK,
434 storage_->GetLargestChangestamp(&largest_changestamp)); 438 storage_->GetLargestChangestamp(&largest_changestamp));
435 EXPECT_EQ(kLargestChangestamp, largest_changestamp); 439 EXPECT_EQ(kLargestChangestamp, largest_changestamp);
436 440
437 std::string id; 441 std::string id;
438 EXPECT_EQ(FILE_ERROR_OK, storage_->GetIdByResourceId(resource_id, &id)); 442 EXPECT_EQ(FILE_ERROR_OK, storage_->GetIdByResourceId(resource_id, &id));
439 EXPECT_EQ(local_id, id); 443 EXPECT_EQ(local_id, id);
440 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry)); 444 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry));
441 EXPECT_EQ(title, entry.title()); 445 EXPECT_EQ(title, entry.title());
442 EXPECT_EQ(md5, entry.file_specific_info().cache_state().md5()); 446 EXPECT_EQ(md5, entry.file_specific_info().cache_state().md5());
443 447
444 EXPECT_EQ(FILE_ERROR_OK, storage_->GetIdByResourceId(resource_id2, &id)); 448 EXPECT_EQ(FILE_ERROR_OK, storage_->GetIdByResourceId(resource_id2, &id));
445 EXPECT_EQ(local_id2, id); 449 EXPECT_EQ(local_id2, id);
446 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry)); 450 EXPECT_EQ(FILE_ERROR_OK, storage_->GetEntry(id, &entry));
447 EXPECT_EQ(md5_2, entry.file_specific_info().cache_state().md5()); 451 EXPECT_EQ(md5_2, entry.file_specific_info().cache_state().md5());
448 } 452 }
449 453
450 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_Unknown) { 454 TEST_F(ResourceMetadataStorageTest, IncompatibleDB_Unknown) {
451 const int64 kLargestChangestamp = 1234567890; 455 const int64_t kLargestChangestamp = 1234567890;
452 const std::string key1 = "abcd"; 456 const std::string key1 = "abcd";
453 457
454 // Put some data. 458 // Put some data.
455 EXPECT_EQ(FILE_ERROR_OK, 459 EXPECT_EQ(FILE_ERROR_OK,
456 storage_->SetLargestChangestamp(kLargestChangestamp)); 460 storage_->SetLargestChangestamp(kLargestChangestamp));
457 ResourceEntry entry; 461 ResourceEntry entry;
458 entry.set_local_id(key1); 462 entry.set_local_id(key1);
459 EXPECT_EQ(FILE_ERROR_OK, storage_->PutEntry(entry)); 463 EXPECT_EQ(FILE_ERROR_OK, storage_->PutEntry(entry));
460 464
461 // Set newer version, upgrade and reopen DB. 465 // Set newer version, upgrade and reopen DB.
462 SetDBVersion(ResourceMetadataStorage::kDBVersion + 1); 466 SetDBVersion(ResourceMetadataStorage::kDBVersion + 1);
463 storage_.reset(); 467 storage_.reset();
464 EXPECT_FALSE(ResourceMetadataStorage::UpgradeOldDB(temp_dir_.path())); 468 EXPECT_FALSE(ResourceMetadataStorage::UpgradeOldDB(temp_dir_.path()));
465 storage_.reset(new ResourceMetadataStorage( 469 storage_.reset(new ResourceMetadataStorage(
466 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get())); 470 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get().get()));
467 ASSERT_TRUE(storage_->Initialize()); 471 ASSERT_TRUE(storage_->Initialize());
468 472
469 // Data is erased because of the incompatible version. 473 // Data is erased because of the incompatible version.
470 int64 largest_changestamp = 0; 474 int64_t largest_changestamp = 0;
471 EXPECT_EQ(FILE_ERROR_OK, 475 EXPECT_EQ(FILE_ERROR_OK,
472 storage_->GetLargestChangestamp(&largest_changestamp)); 476 storage_->GetLargestChangestamp(&largest_changestamp));
473 EXPECT_EQ(0, largest_changestamp); 477 EXPECT_EQ(0, largest_changestamp);
474 EXPECT_EQ(FILE_ERROR_NOT_FOUND, storage_->GetEntry(key1, &entry)); 478 EXPECT_EQ(FILE_ERROR_NOT_FOUND, storage_->GetEntry(key1, &entry));
475 } 479 }
476 480
477 TEST_F(ResourceMetadataStorageTest, DeleteUnusedIDEntries) { 481 TEST_F(ResourceMetadataStorageTest, DeleteUnusedIDEntries) {
478 leveldb::WriteBatch batch; 482 leveldb::WriteBatch batch;
479 483
480 // Put an ID entry with a corresponding ResourceEntry. 484 // Put an ID entry with a corresponding ResourceEntry.
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 EXPECT_EQ(FILE_ERROR_OK, storage_->RemoveEntry(key3)); 628 EXPECT_EQ(FILE_ERROR_OK, storage_->RemoveEntry(key3));
625 EXPECT_TRUE(CheckValidity()); 629 EXPECT_TRUE(CheckValidity());
626 630
627 // Remove key1. 631 // Remove key1.
628 EXPECT_EQ(FILE_ERROR_OK, storage_->RemoveEntry(key1)); 632 EXPECT_EQ(FILE_ERROR_OK, storage_->RemoveEntry(key1));
629 EXPECT_TRUE(CheckValidity()); 633 EXPECT_TRUE(CheckValidity());
630 } 634 }
631 635
632 } // namespace internal 636 } // namespace internal
633 } // namespace drive 637 } // namespace drive
OLDNEW
« no previous file with comments | « components/drive/resource_metadata_storage.cc ('k') | components/drive/resource_metadata_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698