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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc

Issue 1873683002: Convert //chrome/browser/sync_file_system from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.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 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 "chrome/browser/sync_file_system/drive_backend/metadata_database.h" 5 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8
8 #include <utility> 9 #include <utility>
9 10
10 #include "base/bind.h" 11 #include "base/bind.h"
11 #include "base/files/scoped_temp_dir.h" 12 #include "base/files/scoped_temp_dir.h"
12 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ptr_util.h"
13 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
14 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
15 #include "base/thread_task_runner_handle.h" 17 #include "base/thread_task_runner_handle.h"
16 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h" 18 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h"
17 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util. h" 19 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util. h"
18 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h" 20 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h"
19 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h" 21 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h"
20 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 22 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
21 #include "chrome/browser/sync_file_system/drive_backend/metadata_database_index. h" 23 #include "chrome/browser/sync_file_system/drive_backend/metadata_database_index. h"
22 #include "chrome/browser/sync_file_system/drive_backend/metadata_database_index_ interface.h" 24 #include "chrome/browser/sync_file_system/drive_backend/metadata_database_index_ interface.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 103
102 template <typename Key, typename Value> 104 template <typename Key, typename Value>
103 void ExpectEquivalent(const base::hash_map<Key, Value>& left, 105 void ExpectEquivalent(const base::hash_map<Key, Value>& left,
104 const base::hash_map<Key, Value>& right) { 106 const base::hash_map<Key, Value>& right) {
105 ExpectEquivalentMaps(std::map<Key, Value>(left.begin(), left.end()), 107 ExpectEquivalentMaps(std::map<Key, Value>(left.begin(), left.end()),
106 std::map<Key, Value>(right.begin(), right.end())); 108 std::map<Key, Value>(right.begin(), right.end()));
107 } 109 }
108 110
109 template <typename Key, typename Value> 111 template <typename Key, typename Value>
110 void ExpectEquivalent( 112 void ExpectEquivalent(
111 const base::ScopedPtrHashMap<Key, scoped_ptr<Value>>& left, 113 const base::ScopedPtrHashMap<Key, std::unique_ptr<Value>>& left,
112 const base::ScopedPtrHashMap<Key, scoped_ptr<Value>>& right) { 114 const base::ScopedPtrHashMap<Key, std::unique_ptr<Value>>& right) {
113 ExpectEquivalentMaps(std::map<Key, Value*>(left.begin(), left.end()), 115 ExpectEquivalentMaps(std::map<Key, Value*>(left.begin(), left.end()),
114 std::map<Key, Value*>(right.begin(), right.end())); 116 std::map<Key, Value*>(right.begin(), right.end()));
115 } 117 }
116 118
117 template <typename Container> 119 template <typename Container>
118 void ExpectEquivalentSets(const Container& left, const Container& right); 120 void ExpectEquivalentSets(const Container& left, const Container& right);
119 121
120 template <typename Value, typename Comparator> 122 template <typename Value, typename Comparator>
121 void ExpectEquivalent(const std::set<Value, Comparator>& left, 123 void ExpectEquivalent(const std::set<Value, Comparator>& left,
122 const std::set<Value, Comparator>& right) { 124 const std::set<Value, Comparator>& right) {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 return status; 215 return status;
214 } 216 }
215 217
216 void DropDatabase() { 218 void DropDatabase() {
217 metadata_database_.reset(); 219 metadata_database_.reset();
218 message_loop_.RunUntilIdle(); 220 message_loop_.RunUntilIdle();
219 } 221 }
220 222
221 void SetUpDatabaseByTrackedFiles(const TrackedFile** tracked_files, 223 void SetUpDatabaseByTrackedFiles(const TrackedFile** tracked_files,
222 int size) { 224 int size) {
223 scoped_ptr<LevelDBWrapper> db = InitializeLevelDB(); 225 std::unique_ptr<LevelDBWrapper> db = InitializeLevelDB();
224 ASSERT_TRUE(db); 226 ASSERT_TRUE(db);
225 227
226 for (int i = 0; i < size; ++i) { 228 for (int i = 0; i < size; ++i) {
227 const TrackedFile* file = tracked_files[i]; 229 const TrackedFile* file = tracked_files[i];
228 if (file->should_be_absent) 230 if (file->should_be_absent)
229 continue; 231 continue;
230 if (!file->tracker_only) 232 if (!file->tracker_only)
231 EXPECT_TRUE(PutFileToDB(db.get(), file->metadata).ok()); 233 EXPECT_TRUE(PutFileToDB(db.get(), file->metadata).ok());
232 EXPECT_TRUE(PutTrackerToDB(db.get(), file->tracker).ok()); 234 EXPECT_TRUE(PutTrackerToDB(db.get(), file->tracker).ok());
233 } 235 }
(...skipping 17 matching lines...) Expand all
251 file.tracker.tracker_id(), nullptr)); 253 file.tracker.tracker_id(), nullptr));
252 } 254 }
253 255
254 void VerifyTrackedFiles(const TrackedFile** tracked_files, int size) { 256 void VerifyTrackedFiles(const TrackedFile** tracked_files, int size) {
255 for (int i = 0; i < size; ++i) 257 for (int i = 0; i < size; ++i)
256 VerifyTrackedFile(*tracked_files[i]); 258 VerifyTrackedFile(*tracked_files[i]);
257 } 259 }
258 260
259 MetadataDatabase* metadata_database() { return metadata_database_.get(); } 261 MetadataDatabase* metadata_database() { return metadata_database_.get(); }
260 262
261 scoped_ptr<LevelDBWrapper> InitializeLevelDB() { 263 std::unique_ptr<LevelDBWrapper> InitializeLevelDB() {
262 leveldb::DB* db = nullptr; 264 leveldb::DB* db = nullptr;
263 leveldb::Options options; 265 leveldb::Options options;
264 options.create_if_missing = true; 266 options.create_if_missing = true;
265 options.max_open_files = 0; // Use minimum. 267 options.max_open_files = 0; // Use minimum.
266 options.env = in_memory_env_.get(); 268 options.env = in_memory_env_.get();
267 leveldb::Status status = 269 leveldb::Status status =
268 leveldb::DB::Open(options, database_dir_.path().AsUTF8Unsafe(), &db); 270 leveldb::DB::Open(options, database_dir_.path().AsUTF8Unsafe(), &db);
269 EXPECT_TRUE(status.ok()); 271 EXPECT_TRUE(status.ok());
270 272
271 scoped_ptr<LevelDBWrapper> wrapper(new LevelDBWrapper(make_scoped_ptr(db))); 273 std::unique_ptr<LevelDBWrapper> wrapper(
274 new LevelDBWrapper(base::WrapUnique(db)));
272 275
273 wrapper->Put(kDatabaseVersionKey, base::Int64ToString(3)); 276 wrapper->Put(kDatabaseVersionKey, base::Int64ToString(3));
274 SetUpServiceMetadata(wrapper.get()); 277 SetUpServiceMetadata(wrapper.get());
275 278
276 return wrapper; 279 return wrapper;
277 } 280 }
278 281
279 void SetUpServiceMetadata(LevelDBWrapper* db) { 282 void SetUpServiceMetadata(LevelDBWrapper* db) {
280 ServiceMetadata service_metadata; 283 ServiceMetadata service_metadata;
281 service_metadata.set_largest_change_id(kInitialChangeID); 284 service_metadata.set_largest_change_id(kInitialChangeID);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 } 375 }
373 376
374 TrackedFile CreateTrackedFolder(const TrackedFile& parent, 377 TrackedFile CreateTrackedFolder(const TrackedFile& parent,
375 const std::string& title) { 378 const std::string& title) {
376 TrackedFile folder; 379 TrackedFile folder;
377 folder.metadata = CreateFolderMetadata(parent.metadata, title); 380 folder.metadata = CreateFolderMetadata(parent.metadata, title);
378 folder.tracker = CreateTracker(parent.tracker, folder.metadata); 381 folder.tracker = CreateTracker(parent.tracker, folder.metadata);
379 return folder; 382 return folder;
380 } 383 }
381 384
382 scoped_ptr<google_apis::FileResource> CreateFileResourceFromMetadata( 385 std::unique_ptr<google_apis::FileResource> CreateFileResourceFromMetadata(
383 const FileMetadata& file) { 386 const FileMetadata& file) {
384 scoped_ptr<google_apis::FileResource> file_resource( 387 std::unique_ptr<google_apis::FileResource> file_resource(
385 new google_apis::FileResource); 388 new google_apis::FileResource);
386 for (int i = 0; i < file.details().parent_folder_ids_size(); ++i) { 389 for (int i = 0; i < file.details().parent_folder_ids_size(); ++i) {
387 google_apis::ParentReference parent; 390 google_apis::ParentReference parent;
388 parent.set_file_id(file.details().parent_folder_ids(i)); 391 parent.set_file_id(file.details().parent_folder_ids(i));
389 file_resource->mutable_parents()->push_back(parent); 392 file_resource->mutable_parents()->push_back(parent);
390 } 393 }
391 394
392 file_resource->set_file_id(file.file_id()); 395 file_resource->set_file_id(file.file_id());
393 file_resource->set_title(file.details().title()); 396 file_resource->set_title(file.details().title());
394 if (file.details().file_kind() == FILE_KIND_FOLDER) { 397 if (file.details().file_kind() == FILE_KIND_FOLDER) {
395 file_resource->set_mime_type("application/vnd.google-apps.folder"); 398 file_resource->set_mime_type("application/vnd.google-apps.folder");
396 } else if (file.details().file_kind() == FILE_KIND_FILE) { 399 } else if (file.details().file_kind() == FILE_KIND_FILE) {
397 file_resource->set_mime_type("text/plain"); 400 file_resource->set_mime_type("text/plain");
398 file_resource->set_file_size(0); 401 file_resource->set_file_size(0);
399 } else { 402 } else {
400 file_resource->set_mime_type("application/vnd.google-apps.document"); 403 file_resource->set_mime_type("application/vnd.google-apps.document");
401 } 404 }
402 file_resource->set_md5_checksum(file.details().md5()); 405 file_resource->set_md5_checksum(file.details().md5());
403 file_resource->set_etag(file.details().etag()); 406 file_resource->set_etag(file.details().etag());
404 file_resource->set_created_date(base::Time::FromInternalValue( 407 file_resource->set_created_date(base::Time::FromInternalValue(
405 file.details().creation_time())); 408 file.details().creation_time()));
406 file_resource->set_modified_date(base::Time::FromInternalValue( 409 file_resource->set_modified_date(base::Time::FromInternalValue(
407 file.details().modification_time())); 410 file.details().modification_time()));
408 411
409 return file_resource; 412 return file_resource;
410 } 413 }
411 414
412 scoped_ptr<google_apis::ChangeResource> CreateChangeResourceFromMetadata( 415 std::unique_ptr<google_apis::ChangeResource> CreateChangeResourceFromMetadata(
413 const FileMetadata& file) { 416 const FileMetadata& file) {
414 scoped_ptr<google_apis::ChangeResource> change( 417 std::unique_ptr<google_apis::ChangeResource> change(
415 new google_apis::ChangeResource); 418 new google_apis::ChangeResource);
416 change->set_change_id(file.details().change_id()); 419 change->set_change_id(file.details().change_id());
417 change->set_file_id(file.file_id()); 420 change->set_file_id(file.file_id());
418 change->set_deleted(file.details().missing()); 421 change->set_deleted(file.details().missing());
419 if (change->is_deleted()) 422 if (change->is_deleted())
420 return change; 423 return change;
421 424
422 change->set_file(CreateFileResourceFromMetadata(file)); 425 change->set_file(CreateFileResourceFromMetadata(file));
423 return change; 426 return change;
424 } 427 }
(...skipping 17 matching lines...) Expand all
442 FileDetails* details = file->mutable_details(); 445 FileDetails* details = file->mutable_details();
443 details->set_md5( 446 details->set_md5(
444 "md5_value_" + base::Int64ToString(next_md5_sequence_number_++)); 447 "md5_value_" + base::Int64ToString(next_md5_sequence_number_++));
445 details->set_change_id(++current_change_id_); 448 details->set_change_id(++current_change_id_);
446 } 449 }
447 450
448 void ApplyNoopChangeToMetadata(FileMetadata* file) { 451 void ApplyNoopChangeToMetadata(FileMetadata* file) {
449 file->mutable_details()->set_change_id(++current_change_id_); 452 file->mutable_details()->set_change_id(++current_change_id_);
450 } 453 }
451 454
452 void PushToChangeList(scoped_ptr<google_apis::ChangeResource> change, 455 void PushToChangeList(std::unique_ptr<google_apis::ChangeResource> change,
453 ScopedVector<google_apis::ChangeResource>* changes) { 456 ScopedVector<google_apis::ChangeResource>* changes) {
454 changes->push_back(change.release()); 457 changes->push_back(change.release());
455 } 458 }
456 459
457 leveldb::Status PutFileToDB(LevelDBWrapper* db, const FileMetadata& file) { 460 leveldb::Status PutFileToDB(LevelDBWrapper* db, const FileMetadata& file) {
458 PutFileMetadataToDB(file, db); 461 PutFileMetadataToDB(file, db);
459 return db->Commit(); 462 return db->Commit();
460 } 463 }
461 464
462 leveldb::Status PutTrackerToDB(LevelDBWrapper* db, 465 leveldb::Status PutTrackerToDB(LevelDBWrapper* db,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 { 497 {
495 SCOPED_TRACE("Expect equivalent dirty_trackers_ contents."); 498 SCOPED_TRACE("Expect equivalent dirty_trackers_ contents.");
496 ExpectEquivalent(index1->dirty_trackers_, index2->dirty_trackers_); 499 ExpectEquivalent(index1->dirty_trackers_, index2->dirty_trackers_);
497 } 500 }
498 } 501 }
499 502
500 void VerifyReloadConsistencyForOnDisk( 503 void VerifyReloadConsistencyForOnDisk(
501 MetadataDatabaseIndexOnDisk* index1, 504 MetadataDatabaseIndexOnDisk* index1,
502 MetadataDatabaseIndexOnDisk* index2) { 505 MetadataDatabaseIndexOnDisk* index2) {
503 ExpectEquivalentServiceMetadata(index1, index2); 506 ExpectEquivalentServiceMetadata(index1, index2);
504 scoped_ptr<LevelDBWrapper::Iterator> itr1 = 507 std::unique_ptr<LevelDBWrapper::Iterator> itr1 =
505 index1->GetDBForTesting()->NewIterator(); 508 index1->GetDBForTesting()->NewIterator();
506 scoped_ptr<LevelDBWrapper::Iterator> itr2 = 509 std::unique_ptr<LevelDBWrapper::Iterator> itr2 =
507 index2->GetDBForTesting()->NewIterator(); 510 index2->GetDBForTesting()->NewIterator();
508 for (itr1->SeekToFirst(), itr2->SeekToFirst(); 511 for (itr1->SeekToFirst(), itr2->SeekToFirst();
509 itr1->Valid() && itr2->Valid(); 512 itr1->Valid() && itr2->Valid();
510 itr1->Next(), itr2->Next()) { 513 itr1->Next(), itr2->Next()) {
511 EXPECT_EQ(itr1->key().ToString(), itr2->key().ToString()); 514 EXPECT_EQ(itr1->key().ToString(), itr2->key().ToString());
512 EXPECT_EQ(itr1->value().ToString(), itr2->value().ToString()); 515 EXPECT_EQ(itr1->value().ToString(), itr2->value().ToString());
513 } 516 }
514 EXPECT_TRUE(!itr1->Valid()); 517 EXPECT_TRUE(!itr1->Valid());
515 EXPECT_TRUE(!itr2->Valid()); 518 EXPECT_TRUE(!itr2->Valid());
516 } 519 }
517 520
518 void VerifyReloadConsistency() { 521 void VerifyReloadConsistency() {
519 scoped_ptr<MetadataDatabase> metadata_database_2; 522 std::unique_ptr<MetadataDatabase> metadata_database_2;
520 ASSERT_EQ(SYNC_STATUS_OK, MetadataDatabase::CreateForTesting( 523 ASSERT_EQ(SYNC_STATUS_OK, MetadataDatabase::CreateForTesting(
521 std::move(metadata_database_->db_), 524 std::move(metadata_database_->db_),
522 metadata_database_->enable_on_disk_index_, 525 metadata_database_->enable_on_disk_index_,
523 &metadata_database_2)); 526 &metadata_database_2));
524 metadata_database_->db_ = std::move(metadata_database_2->db_); 527 metadata_database_->db_ = std::move(metadata_database_2->db_);
525 528
526 MetadataDatabaseIndexInterface* index1 = metadata_database_->index_.get(); 529 MetadataDatabaseIndexInterface* index1 = metadata_database_->index_.get();
527 MetadataDatabaseIndexInterface* index2 = metadata_database_2->index_.get(); 530 MetadataDatabaseIndexInterface* index2 = metadata_database_2->index_.get();
528 if (GetParam()) { 531 if (GetParam()) {
529 VerifyReloadConsistencyForOnDisk( 532 VerifyReloadConsistencyForOnDisk(
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 void ResetTrackerID(FileTracker* tracker) { 603 void ResetTrackerID(FileTracker* tracker) {
601 tracker->set_tracker_id(GetTrackerIDByFileID(tracker->file_id())); 604 tracker->set_tracker_id(GetTrackerIDByFileID(tracker->file_id()));
602 } 605 }
603 606
604 int64_t current_change_id() const { return current_change_id_; } 607 int64_t current_change_id() const { return current_change_id_; }
605 608
606 private: 609 private:
607 base::ScopedTempDir database_dir_; 610 base::ScopedTempDir database_dir_;
608 base::MessageLoop message_loop_; 611 base::MessageLoop message_loop_;
609 612
610 scoped_ptr<leveldb::Env> in_memory_env_; 613 std::unique_ptr<leveldb::Env> in_memory_env_;
611 scoped_ptr<MetadataDatabase> metadata_database_; 614 std::unique_ptr<MetadataDatabase> metadata_database_;
612 615
613 int64_t current_change_id_; 616 int64_t current_change_id_;
614 int64_t next_tracker_id_; 617 int64_t next_tracker_id_;
615 int64_t next_file_id_number_; 618 int64_t next_file_id_number_;
616 int64_t next_md5_sequence_number_; 619 int64_t next_md5_sequence_number_;
617 620
618 DISALLOW_COPY_AND_ASSIGN(MetadataDatabaseTest); 621 DISALLOW_COPY_AND_ASSIGN(MetadataDatabaseTest);
619 }; 622 };
620 623
621 INSTANTIATE_TEST_CASE_P(MetadataDatabaseTestWithIndexesOnDisk, 624 INSTANTIATE_TEST_CASE_P(MetadataDatabaseTestWithIndexesOnDisk,
622 MetadataDatabaseTest, 625 MetadataDatabaseTest,
623 ::testing::Values(true, false)); 626 ::testing::Values(true, false));
624 627
625 TEST_P(MetadataDatabaseTest, InitializationTest_Empty) { 628 TEST_P(MetadataDatabaseTest, InitializationTest_Empty) {
626 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 629 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
627 DropDatabase(); 630 DropDatabase();
628 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 631 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
629 632
630 DropDatabase(); 633 DropDatabase();
631 634
632 scoped_ptr<LevelDBWrapper> db = InitializeLevelDB(); 635 std::unique_ptr<LevelDBWrapper> db = InitializeLevelDB();
633 db->Put(kServiceMetadataKey, "Unparsable string"); 636 db->Put(kServiceMetadataKey, "Unparsable string");
634 EXPECT_TRUE(db->Commit().ok()); 637 EXPECT_TRUE(db->Commit().ok());
635 db.reset(); 638 db.reset();
636 639
637 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 640 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
638 } 641 }
639 642
640 TEST_P(MetadataDatabaseTest, InitializationTest_SimpleTree) { 643 TEST_P(MetadataDatabaseTest, InitializationTest_SimpleTree) {
641 TrackedFile sync_root(CreateTrackedSyncRoot()); 644 TrackedFile sync_root(CreateTrackedSyncRoot());
642 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id")); 645 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id"));
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 734
732 FileMetadata file(CreateFileMetadata(folder, "file")); 735 FileMetadata file(CreateFileMetadata(folder, "file"));
733 FileTracker file_tracker(CreateTracker(folder_tracker, file)); 736 FileTracker file_tracker(CreateTracker(folder_tracker, file));
734 737
735 FileMetadata inactive_folder(CreateFolderMetadata(app_root, "folder")); 738 FileMetadata inactive_folder(CreateFolderMetadata(app_root, "folder"));
736 FileTracker inactive_folder_tracker(CreateTracker(app_root_tracker, 739 FileTracker inactive_folder_tracker(CreateTracker(app_root_tracker,
737 inactive_folder)); 740 inactive_folder));
738 inactive_folder_tracker.set_active(false); 741 inactive_folder_tracker.set_active(false);
739 742
740 { 743 {
741 scoped_ptr<LevelDBWrapper> db = InitializeLevelDB(); 744 std::unique_ptr<LevelDBWrapper> db = InitializeLevelDB();
742 ASSERT_TRUE(db); 745 ASSERT_TRUE(db);
743 746
744 EXPECT_TRUE(PutFileToDB(db.get(), sync_root).ok()); 747 EXPECT_TRUE(PutFileToDB(db.get(), sync_root).ok());
745 EXPECT_TRUE(PutTrackerToDB(db.get(), sync_root_tracker).ok()); 748 EXPECT_TRUE(PutTrackerToDB(db.get(), sync_root_tracker).ok());
746 EXPECT_TRUE(PutFileToDB(db.get(), app_root).ok()); 749 EXPECT_TRUE(PutFileToDB(db.get(), app_root).ok());
747 EXPECT_TRUE(PutTrackerToDB(db.get(), app_root_tracker).ok()); 750 EXPECT_TRUE(PutTrackerToDB(db.get(), app_root_tracker).ok());
748 EXPECT_TRUE(PutFileToDB(db.get(), folder).ok()); 751 EXPECT_TRUE(PutFileToDB(db.get(), folder).ok());
749 EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker).ok()); 752 EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker).ok());
750 EXPECT_TRUE(PutFileToDB(db.get(), file).ok()); 753 EXPECT_TRUE(PutFileToDB(db.get(), file).ok());
751 EXPECT_TRUE(PutTrackerToDB(db.get(), file_tracker).ok()); 754 EXPECT_TRUE(PutTrackerToDB(db.get(), file_tracker).ok());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 FileTracker folder_tracker2(CreateTracker(folder_tracker1, folder2)); 787 FileTracker folder_tracker2(CreateTracker(folder_tracker1, folder2));
785 FileMetadata file(CreateFileMetadata(folder2, "file")); 788 FileMetadata file(CreateFileMetadata(folder2, "file"));
786 FileTracker file_tracker(CreateTracker(folder_tracker2, file)); 789 FileTracker file_tracker(CreateTracker(folder_tracker2, file));
787 790
788 FileMetadata inactive_folder(CreateFolderMetadata(app_root, "folder1")); 791 FileMetadata inactive_folder(CreateFolderMetadata(app_root, "folder1"));
789 FileTracker inactive_folder_tracker(CreateTracker(app_root_tracker, 792 FileTracker inactive_folder_tracker(CreateTracker(app_root_tracker,
790 inactive_folder)); 793 inactive_folder));
791 inactive_folder_tracker.set_active(false); 794 inactive_folder_tracker.set_active(false);
792 795
793 { 796 {
794 scoped_ptr<LevelDBWrapper> db = InitializeLevelDB(); 797 std::unique_ptr<LevelDBWrapper> db = InitializeLevelDB();
795 ASSERT_TRUE(db); 798 ASSERT_TRUE(db);
796 799
797 EXPECT_TRUE(PutFileToDB(db.get(), sync_root).ok()); 800 EXPECT_TRUE(PutFileToDB(db.get(), sync_root).ok());
798 EXPECT_TRUE(PutTrackerToDB(db.get(), sync_root_tracker).ok()); 801 EXPECT_TRUE(PutTrackerToDB(db.get(), sync_root_tracker).ok());
799 EXPECT_TRUE(PutFileToDB(db.get(), app_root).ok()); 802 EXPECT_TRUE(PutFileToDB(db.get(), app_root).ok());
800 EXPECT_TRUE(PutTrackerToDB(db.get(), app_root_tracker).ok()); 803 EXPECT_TRUE(PutTrackerToDB(db.get(), app_root_tracker).ok());
801 EXPECT_TRUE(PutFileToDB(db.get(), folder1).ok()); 804 EXPECT_TRUE(PutFileToDB(db.get(), folder1).ok());
802 EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker1).ok()); 805 EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker1).ok());
803 EXPECT_TRUE(PutFileToDB(db.get(), folder2).ok()); 806 EXPECT_TRUE(PutFileToDB(db.get(), folder2).ok());
804 EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker2).ok()); 807 EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker2).ok());
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 1097
1095 TEST_P(MetadataDatabaseTest, PopulateInitialDataTest) { 1098 TEST_P(MetadataDatabaseTest, PopulateInitialDataTest) {
1096 TrackedFile sync_root(CreateTrackedSyncRoot()); 1099 TrackedFile sync_root(CreateTrackedSyncRoot());
1097 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_root")); 1100 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_root"));
1098 app_root.tracker.set_active(false); 1101 app_root.tracker.set_active(false);
1099 1102
1100 const TrackedFile* tracked_files[] = { 1103 const TrackedFile* tracked_files[] = {
1101 &sync_root, &app_root 1104 &sync_root, &app_root
1102 }; 1105 };
1103 1106
1104 scoped_ptr<google_apis::FileResource> sync_root_folder( 1107 std::unique_ptr<google_apis::FileResource> sync_root_folder(
1105 CreateFileResourceFromMetadata(sync_root.metadata)); 1108 CreateFileResourceFromMetadata(sync_root.metadata));
1106 scoped_ptr<google_apis::FileResource> app_root_folder( 1109 std::unique_ptr<google_apis::FileResource> app_root_folder(
1107 CreateFileResourceFromMetadata(app_root.metadata)); 1110 CreateFileResourceFromMetadata(app_root.metadata));
1108 1111
1109 ScopedVector<google_apis::FileResource> app_root_folders; 1112 ScopedVector<google_apis::FileResource> app_root_folders;
1110 app_root_folders.push_back(app_root_folder.release()); 1113 app_root_folders.push_back(app_root_folder.release());
1111 1114
1112 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 1115 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
1113 EXPECT_EQ(SYNC_STATUS_OK, PopulateInitialData( 1116 EXPECT_EQ(SYNC_STATUS_OK, PopulateInitialData(
1114 current_change_id(), 1117 current_change_id(),
1115 *sync_root_folder, 1118 *sync_root_folder,
1116 app_root_folders)); 1119 app_root_folders));
(...skipping 15 matching lines...) Expand all
1132 TrackedFile file_0(CreateTrackedFile(folder_0, "file_0")); 1135 TrackedFile file_0(CreateTrackedFile(folder_0, "file_0"));
1133 1136
1134 const TrackedFile* tracked_files[] = { 1137 const TrackedFile* tracked_files[] = {
1135 &sync_root, &app_root, &folder_0, &file_0 1138 &sync_root, &app_root, &folder_0, &file_0
1136 }; 1139 };
1137 1140
1138 SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files)); 1141 SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files));
1139 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 1142 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
1140 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 1143 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
1141 1144
1142 scoped_ptr<base::ListValue> files = 1145 std::unique_ptr<base::ListValue> files =
1143 metadata_database()->DumpFiles(app_root.tracker.app_id()); 1146 metadata_database()->DumpFiles(app_root.tracker.app_id());
1144 ASSERT_EQ(2u, files->GetSize()); 1147 ASSERT_EQ(2u, files->GetSize());
1145 1148
1146 base::DictionaryValue* file = nullptr; 1149 base::DictionaryValue* file = nullptr;
1147 std::string str; 1150 std::string str;
1148 1151
1149 ASSERT_TRUE(files->GetDictionary(0, &file)); 1152 ASSERT_TRUE(files->GetDictionary(0, &file));
1150 EXPECT_TRUE(file->GetString("title", &str) && str == "folder_0"); 1153 EXPECT_TRUE(file->GetString("title", &str) && str == "folder_0");
1151 EXPECT_TRUE(file->GetString("type", &str) && str == "folder"); 1154 EXPECT_TRUE(file->GetString("type", &str) && str == "folder");
1152 EXPECT_TRUE(file->HasKey("details")); 1155 EXPECT_TRUE(file->HasKey("details"));
1153 1156
1154 ASSERT_TRUE(files->GetDictionary(1, &file)); 1157 ASSERT_TRUE(files->GetDictionary(1, &file));
1155 EXPECT_TRUE(file->GetString("title", &str) && str == "file_0"); 1158 EXPECT_TRUE(file->GetString("title", &str) && str == "file_0");
1156 EXPECT_TRUE(file->GetString("type", &str) && str == "file"); 1159 EXPECT_TRUE(file->GetString("type", &str) && str == "file");
1157 EXPECT_TRUE(file->HasKey("details")); 1160 EXPECT_TRUE(file->HasKey("details"));
1158 } 1161 }
1159 1162
1160 } // namespace drive_backend 1163 } // namespace drive_backend
1161 } // namespace sync_file_system 1164 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698