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

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

Issue 24140003: [SyncFS] Add generic result reciever (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 3 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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "chrome/browser/google_apis/drive_api_parser.h" 12 #include "chrome/browser/google_apis/drive_api_parser.h"
13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util. h" 13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util. h"
14 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 14 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 #include "third_party/leveldatabase/src/include/leveldb/db.h" 16 #include "third_party/leveldatabase/src/include/leveldb/db.h"
17 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h" 17 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
18 18
19 #define FPL(a) FILE_PATH_LITERAL(a) 19 #define FPL(a) FILE_PATH_LITERAL(a)
20 20
21 namespace sync_file_system { 21 namespace sync_file_system {
22 namespace drive_backend { 22 namespace drive_backend {
23 23
24 namespace { 24 namespace {
25 25
26 typedef MetadataDatabase::FileIDList FileIDList; 26 typedef MetadataDatabase::FileIDList FileIDList;
27 27 using test_util::CreateResultReceiver;
28 using test_util::DatabaseCreateResultCallback;
29 using test_util::SyncStatusResultCallback;
30 28
31 const int64 kInitialChangeID = 1234; 29 const int64 kInitialChangeID = 1234;
32 const int64 kSyncRootTrackerID = 100; 30 const int64 kSyncRootTrackerID = 100;
33 const char kSyncRootFolderID[] = "sync_root_folder_id"; 31 const char kSyncRootFolderID[] = "sync_root_folder_id";
34 32
35 // This struct is used to setup initial state of the database in the test and 33 // This struct is used to setup initial state of the database in the test and
36 // also used to match to the modified content of the database as the 34 // also used to match to the modified content of the database as the
37 // expectation. 35 // expectation.
38 struct TrackedFile { 36 struct TrackedFile {
39 // Holds the latest remote metadata which may be not-yet-synced to |tracker|. 37 // Holds the latest remote metadata which may be not-yet-synced to |tracker|.
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 EXPECT_FALSE(trackers.empty()); 163 EXPECT_FALSE(trackers.empty());
166 return (*trackers.begin())->tracker_id(); 164 return (*trackers.begin())->tracker_id();
167 } 165 }
168 return 0; 166 return 0;
169 } 167 }
170 168
171 SyncStatusCode InitializeMetadataDatabase() { 169 SyncStatusCode InitializeMetadataDatabase() {
172 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 170 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
173 MetadataDatabase::Create(base::MessageLoopProxy::current(), 171 MetadataDatabase::Create(base::MessageLoopProxy::current(),
174 database_dir_.path(), 172 database_dir_.path(),
175 base::Bind(&DatabaseCreateResultCallback, 173 CreateResultReceiver(&status,
176 &status, &metadata_database_)); 174 &metadata_database_));
177 message_loop_.RunUntilIdle(); 175 message_loop_.RunUntilIdle();
178 return status; 176 return status;
179 } 177 }
180 178
181 void DropDatabase() { 179 void DropDatabase() {
182 metadata_database_.reset(); 180 metadata_database_.reset();
183 message_loop_.RunUntilIdle(); 181 message_loop_.RunUntilIdle();
184 } 182 }
185 183
186 void SetUpDatabaseByTrackedFiles(const TrackedFile** tracked_files, 184 void SetUpDatabaseByTrackedFiles(const TrackedFile** tracked_files,
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 SCOPED_TRACE("Expect equivalent tracker[" + 498 SCOPED_TRACE("Expect equivalent tracker[" +
501 base::Int64ToString(tracker.tracker_id()) + "]"); 499 base::Int64ToString(tracker.tracker_id()) + "]");
502 ExpectEquivalent(&tracker, &tracker_in_metadata_database); 500 ExpectEquivalent(&tracker, &tracker_in_metadata_database);
503 } 501 }
504 502
505 SyncStatusCode RegisterApp(const std::string& app_id, 503 SyncStatusCode RegisterApp(const std::string& app_id,
506 const std::string& folder_id) { 504 const std::string& folder_id) {
507 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 505 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
508 metadata_database_->RegisterApp( 506 metadata_database_->RegisterApp(
509 app_id, folder_id, 507 app_id, folder_id,
510 base::Bind(&SyncStatusResultCallback, &status)); 508 CreateResultReceiver(&status));
511 message_loop_.RunUntilIdle(); 509 message_loop_.RunUntilIdle();
512 return status; 510 return status;
513 } 511 }
514 512
515 SyncStatusCode DisableApp(const std::string& app_id) { 513 SyncStatusCode DisableApp(const std::string& app_id) {
516 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 514 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
517 metadata_database_->DisableApp( 515 metadata_database_->DisableApp(
518 app_id, base::Bind(&SyncStatusResultCallback, &status)); 516 app_id, CreateResultReceiver(&status));
519 message_loop_.RunUntilIdle(); 517 message_loop_.RunUntilIdle();
520 return status; 518 return status;
521 } 519 }
522 520
523 SyncStatusCode EnableApp(const std::string& app_id) { 521 SyncStatusCode EnableApp(const std::string& app_id) {
524 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 522 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
525 metadata_database_->EnableApp( 523 metadata_database_->EnableApp(
526 app_id, base::Bind(&SyncStatusResultCallback, &status)); 524 app_id, CreateResultReceiver(&status));
527 message_loop_.RunUntilIdle(); 525 message_loop_.RunUntilIdle();
528 return status; 526 return status;
529 } 527 }
530 528
531 SyncStatusCode UnregisterApp(const std::string& app_id) { 529 SyncStatusCode UnregisterApp(const std::string& app_id) {
532 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 530 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
533 metadata_database_->UnregisterApp( 531 metadata_database_->UnregisterApp(
534 app_id, base::Bind(&SyncStatusResultCallback, &status)); 532 app_id, CreateResultReceiver(&status));
535 message_loop_.RunUntilIdle(); 533 message_loop_.RunUntilIdle();
536 return status; 534 return status;
537 } 535 }
538 536
539 SyncStatusCode UpdateByChangeList( 537 SyncStatusCode UpdateByChangeList(
540 ScopedVector<google_apis::ChangeResource> changes) { 538 ScopedVector<google_apis::ChangeResource> changes) {
541 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 539 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
542 metadata_database_->UpdateByChangeList( 540 metadata_database_->UpdateByChangeList(
543 changes.Pass(), base::Bind(&SyncStatusResultCallback, &status)); 541 changes.Pass(), CreateResultReceiver(&status));
544 message_loop_.RunUntilIdle(); 542 message_loop_.RunUntilIdle();
545 return status; 543 return status;
546 } 544 }
547 545
548 SyncStatusCode PopulateFolder(const std::string& folder_id, 546 SyncStatusCode PopulateFolder(const std::string& folder_id,
549 const FileIDList& listed_children) { 547 const FileIDList& listed_children) {
550 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 548 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
551 metadata_database_->PopulateFolderByChildList( 549 metadata_database_->PopulateFolderByChildList(
552 folder_id, listed_children, 550 folder_id, listed_children,
553 base::Bind(&SyncStatusResultCallback, &status)); 551 CreateResultReceiver(&status));
554 message_loop_.RunUntilIdle(); 552 message_loop_.RunUntilIdle();
555 return status; 553 return status;
556 } 554 }
557 555
558 SyncStatusCode UpdateTracker(const FileTracker& tracker) { 556 SyncStatusCode UpdateTracker(const FileTracker& tracker) {
559 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 557 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
560 metadata_database_->UpdateTracker( 558 metadata_database_->UpdateTracker(
561 tracker.tracker_id(), tracker.synced_details(), 559 tracker.tracker_id(), tracker.synced_details(),
562 base::Bind(&SyncStatusResultCallback, &status)); 560 CreateResultReceiver(&status));
563 message_loop_.RunUntilIdle(); 561 message_loop_.RunUntilIdle();
564 return status; 562 return status;
565 } 563 }
566 564
567 SyncStatusCode PopulateInitialData( 565 SyncStatusCode PopulateInitialData(
568 int64 largest_change_id, 566 int64 largest_change_id,
569 const google_apis::FileResource& sync_root_folder, 567 const google_apis::FileResource& sync_root_folder,
570 const ScopedVector<google_apis::FileResource>& app_root_folders) { 568 const ScopedVector<google_apis::FileResource>& app_root_folders) {
571 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 569 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
572 metadata_database_->PopulateInitialData( 570 metadata_database_->PopulateInitialData(
573 largest_change_id, 571 largest_change_id,
574 sync_root_folder, 572 sync_root_folder,
575 app_root_folders, 573 app_root_folders,
576 base::Bind(&SyncStatusResultCallback, &status)); 574 CreateResultReceiver(&status));
577 message_loop_.RunUntilIdle(); 575 message_loop_.RunUntilIdle();
578 return status; 576 return status;
579 } 577 }
580 578
581 void ResetTrackerID(FileTracker* tracker) { 579 void ResetTrackerID(FileTracker* tracker) {
582 tracker->set_tracker_id(GetTrackerIDByFileID(tracker->file_id())); 580 tracker->set_tracker_id(GetTrackerIDByFileID(tracker->file_id()));
583 } 581 }
584 582
585 private: 583 private:
586 base::ScopedTempDir database_dir_; 584 base::ScopedTempDir database_dir_;
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 ResetTrackerID(&sync_root.tracker); 972 ResetTrackerID(&sync_root.tracker);
975 ResetTrackerID(&app_root.tracker); 973 ResetTrackerID(&app_root.tracker);
976 app_root.tracker.set_parent_tracker_id(sync_root.tracker.tracker_id()); 974 app_root.tracker.set_parent_tracker_id(sync_root.tracker.tracker_id());
977 975
978 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 976 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
979 VerifyReloadConsistency(); 977 VerifyReloadConsistency();
980 } 978 }
981 979
982 } // namespace drive_backend 980 } // namespace drive_backend
983 } // namespace sync_file_system 981 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698