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

Side by Side Diff: chrome/browser/sync_file_system/drive_metadata_store_unittest.cc

Issue 15410005: Deprecate DriveMetadataStore.batch_sync_origins (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: taiju review for windows compile fix Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_metadata_store.h" 5 #include "chrome/browser/sync_file_system/drive_metadata_store.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 void RestoreSyncRootDirectoryFromDB() { 125 void RestoreSyncRootDirectoryFromDB() {
126 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); 126 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread());
127 drive_metadata_store_->RestoreSyncRootDirectory( 127 drive_metadata_store_->RestoreSyncRootDirectory(
128 base::Bind(&DriveMetadataStoreTest::DidRestoreSyncRootDirectory, 128 base::Bind(&DriveMetadataStoreTest::DidRestoreSyncRootDirectory,
129 base::Unretained(this))); 129 base::Unretained(this)));
130 message_loop_.Run(); 130 message_loop_.Run();
131 } 131 }
132 132
133 void DropSyncOriginsInStore() { 133 void DropSyncOriginsInStore() {
134 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); 134 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread());
135 drive_metadata_store_->batch_sync_origins_.clear();
136 drive_metadata_store_->incremental_sync_origins_.clear(); 135 drive_metadata_store_->incremental_sync_origins_.clear();
137 drive_metadata_store_->disabled_origins_.clear(); 136 drive_metadata_store_->disabled_origins_.clear();
138 EXPECT_TRUE(drive_metadata_store_->batch_sync_origins().empty());
139 EXPECT_TRUE(drive_metadata_store_->incremental_sync_origins().empty()); 137 EXPECT_TRUE(drive_metadata_store_->incremental_sync_origins().empty());
140 EXPECT_TRUE(drive_metadata_store_->disabled_origins().empty()); 138 EXPECT_TRUE(drive_metadata_store_->disabled_origins().empty());
141 } 139 }
142 140
143 void RestoreOriginsFromDB() { 141 void RestoreOriginsFromDB() {
144 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); 142 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread());
145 drive_metadata_store_->RestoreOrigins( 143 drive_metadata_store_->RestoreOrigins(
146 base::Bind(&DriveMetadataStoreTest::DidRestoreOrigins, 144 base::Bind(&DriveMetadataStoreTest::DidRestoreOrigins,
147 base::Unretained(this))); 145 base::Unretained(this)));
148 message_loop_.Run(); 146 message_loop_.Run();
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 SyncStatusCode status) { 207 SyncStatusCode status) {
210 *status_out = status; 208 *status_out = status;
211 message_loop_.Quit(); 209 message_loop_.Quit();
212 } 210 }
213 211
214 void MarkAsCreated() { 212 void MarkAsCreated() {
215 created_ = true; 213 created_ = true;
216 } 214 }
217 215
218 void VerifyUntrackedOrigin(const GURL& origin) { 216 void VerifyUntrackedOrigin(const GURL& origin) {
219 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin));
220 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); 217 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin));
221 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin)); 218 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin));
222 } 219 }
223 220
224 void VerifyIncrementalSyncOrigin(const GURL& origin, 221 void VerifyIncrementalSyncOrigin(const GURL& origin,
225 const std::string& resource_id) { 222 const std::string& resource_id) {
226 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin));
227 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(origin)); 223 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(origin));
228 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin)); 224 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin));
229 EXPECT_EQ(resource_id, 225 EXPECT_EQ(resource_id,
230 GetResourceID(metadata_store()->incremental_sync_origins(), 226 GetResourceID(metadata_store()->incremental_sync_origins(),
231 origin)); 227 origin));
232 } 228 }
233 229
234 void VerifyDisabledOrigin(const GURL& origin, 230 void VerifyDisabledOrigin(const GURL& origin,
235 const std::string& resource_id) { 231 const std::string& resource_id) {
236 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin));
237 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); 232 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin));
238 EXPECT_TRUE(metadata_store()->IsOriginDisabled(origin)); 233 EXPECT_TRUE(metadata_store()->IsOriginDisabled(origin));
239 EXPECT_EQ(resource_id, 234 EXPECT_EQ(resource_id,
240 GetResourceID(metadata_store()->disabled_origins(), origin)); 235 GetResourceID(metadata_store()->disabled_origins(), origin));
241 } 236 }
242 237
243 base::FilePath base_dir() { 238 base::FilePath base_dir() {
244 return base_dir_.path(); 239 return base_dir_.path();
245 } 240 }
246 241
247 DriveMetadataStore* metadata_store() { 242 DriveMetadataStore* metadata_store() {
248 return drive_metadata_store_.get(); 243 return drive_metadata_store_.get();
249 } 244 }
250 245
246 leveldb::DB* metadata_db() {
247 return drive_metadata_store_->GetDBInstanceForTesting();
248 }
249
251 const DriveMetadataStore::MetadataMap& metadata_map() { 250 const DriveMetadataStore::MetadataMap& metadata_map() {
252 return drive_metadata_store_->metadata_map_; 251 return drive_metadata_store_->metadata_map_;
253 } 252 }
254 253
255 void VerifyReverseMap() { 254 void VerifyReverseMap() {
256 const ResourceIdByOrigin& batch_sync_origins =
257 drive_metadata_store_->batch_sync_origins_;
258 const ResourceIdByOrigin& incremental_sync_origins = 255 const ResourceIdByOrigin& incremental_sync_origins =
259 drive_metadata_store_->incremental_sync_origins_; 256 drive_metadata_store_->incremental_sync_origins_;
260 const ResourceIdByOrigin& disabled_origins = 257 const ResourceIdByOrigin& disabled_origins =
261 drive_metadata_store_->disabled_origins_; 258 drive_metadata_store_->disabled_origins_;
262 const OriginByResourceId& origin_by_resource_id = 259 const OriginByResourceId& origin_by_resource_id =
263 drive_metadata_store_->origin_by_resource_id_; 260 drive_metadata_store_->origin_by_resource_id_;
264 261
265 size_t expected_size = 262 size_t expected_size = incremental_sync_origins.size() +
266 batch_sync_origins.size() + incremental_sync_origins.size() + 263 disabled_origins.size();
267 disabled_origins.size();
268 size_t actual_size = origin_by_resource_id.size(); 264 size_t actual_size = origin_by_resource_id.size();
269 EXPECT_EQ(expected_size, actual_size); 265 EXPECT_EQ(expected_size, actual_size);
270 EXPECT_TRUE(VerifyReverseMapInclusion(batch_sync_origins,
271 origin_by_resource_id));
272 EXPECT_TRUE(VerifyReverseMapInclusion(incremental_sync_origins, 266 EXPECT_TRUE(VerifyReverseMapInclusion(incremental_sync_origins,
273 origin_by_resource_id)); 267 origin_by_resource_id));
274 EXPECT_TRUE(VerifyReverseMapInclusion(disabled_origins, 268 EXPECT_TRUE(VerifyReverseMapInclusion(disabled_origins,
275 origin_by_resource_id)); 269 origin_by_resource_id));
276 } 270 }
277 271
278 private: 272 private:
279 void DidInitializeDatabase(bool* done_out, 273 void DidInitializeDatabase(bool* done_out,
280 SyncStatusCode* status_out, 274 SyncStatusCode* status_out,
281 bool* created_out, 275 bool* created_out,
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 kOrigin3, kServiceName, base::FilePath(FPL("waf"))), 521 kOrigin3, kServiceName, base::FilePath(FPL("waf"))),
528 CreateMetadata("baz", "egg", false, false))); 522 CreateMetadata("baz", "egg", false, false)));
529 523
530 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin2)); 524 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin2));
531 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin3)); 525 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin3));
532 526
533 DropDatabase(); 527 DropDatabase();
534 InitializeDatabase(); 528 InitializeDatabase();
535 529
536 // kOrigin1 should be the only one left. 530 // kOrigin1 should be the only one left.
537 EXPECT_EQ(0u, metadata_store()->batch_sync_origins().size());
538 EXPECT_EQ(1u, metadata_store()->incremental_sync_origins().size()); 531 EXPECT_EQ(1u, metadata_store()->incremental_sync_origins().size());
539 EXPECT_EQ(0u, metadata_store()->disabled_origins().size()); 532 EXPECT_EQ(0u, metadata_store()->disabled_origins().size());
540 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); 533 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1));
541 EXPECT_EQ(1u, metadata_map().size()); 534 EXPECT_EQ(1u, metadata_map().size());
542 535
543 DriveMetadataStore::MetadataMap::const_iterator found = 536 DriveMetadataStore::MetadataMap::const_iterator found =
544 metadata_map().find(kOrigin1); 537 metadata_map().find(kOrigin1);
545 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u); 538 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u);
546 539
547 VerifyReverseMap(); 540 VerifyReverseMap();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 kDriveIncrementalSyncOriginKeyPrefix + kOrigin2.spec(), 638 kDriveIncrementalSyncOriginKeyPrefix + kOrigin2.spec(),
646 kResourceId2); 639 kResourceId2);
647 EXPECT_TRUE(RevokeSyncableFileSystem(kV0ServiceName)); 640 EXPECT_TRUE(RevokeSyncableFileSystem(kV0ServiceName));
648 MarkAsCreated(); 641 MarkAsCreated();
649 } 642 }
650 643
651 InitializeDatabase(); 644 InitializeDatabase();
652 645
653 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp()); 646 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp());
654 EXPECT_EQ(kSyncRootResourceId, metadata_store()->sync_root_directory()); 647 EXPECT_EQ(kSyncRootResourceId, metadata_store()->sync_root_directory());
655 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1));
656 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); 648 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2));
657 649
658 DriveMetadata metadata; 650 DriveMetadata metadata;
659 EXPECT_EQ(SYNC_STATUS_OK, 651 EXPECT_EQ(SYNC_STATUS_OK,
660 metadata_store()->ReadEntry( 652 metadata_store()->ReadEntry(
661 CreateSyncableFileSystemURL(kOrigin1, kServiceName, kFile), 653 CreateSyncableFileSystemURL(kOrigin1, kServiceName, kFile),
662 &metadata)); 654 &metadata));
663 EXPECT_EQ(kFileResourceId, metadata.resource_id()); 655 EXPECT_EQ(kFileResourceId, metadata.resource_id());
664 EXPECT_EQ(kFileMD5, metadata.md5_checksum()); 656 EXPECT_EQ(kFileMD5, metadata.md5_checksum());
665 EXPECT_FALSE(metadata.conflicted()); 657 EXPECT_FALSE(metadata.conflicted());
666 EXPECT_FALSE(metadata.to_be_fetched()); 658 EXPECT_FALSE(metadata.to_be_fetched());
667 659
668 VerifyReverseMap(); 660 VerifyReverseMap();
669 } 661 }
670 662
663 TEST_F(DriveMetadataStoreTest, DeprecateBatchSyncOrigins) {
664 // Make sure that previously saved batch sync origins were deleted from the DB
665 // as they are no longer used.
666 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: ";
667 const GURL kOrigin1("chrome-extension://example1");
668 const std::string kSyncRootResourceId("sync_root_resource_id");
tzik 2013/05/27 12:14:10 unused?
calvinlo 2013/05/28 02:18:55 Done.
669 const std::string kResourceId1("hoge");
670 const std::string kFileResourceId("piyo");
tzik 2013/05/27 12:14:10 unused?
calvinlo 2013/05/28 02:18:55 Done.
671
672 // Purposely add in an old batch sync origin (from previous DB version).
673 {
674 leveldb::Options options;
675 options.create_if_missing = true;
676 leveldb::DB* db_ptr = NULL;
677 std::string db_dir = fileapi::FilePathToString(
678 base_dir().Append(DriveMetadataStore::kDatabaseName));
679 leveldb::DB::Open(options, db_dir, &db_ptr);
680 scoped_ptr<leveldb::DB> db(db_ptr);
681 leveldb::WriteOptions write_options;
682 db->Put(write_options,
683 kDriveBatchSyncOriginKeyPrefix + kOrigin1.spec(), kResourceId1);
684 db.reset();
tzik 2013/05/27 12:14:10 scoped_ptr deletes its content on scope out. so re
calvinlo 2013/05/28 02:18:55 Done.
685 }
686
687 InitializeDatabase();
688
689 // Confirm no batch sync origins rename after InitializeDatabase.
690 scoped_ptr<leveldb::Iterator> itr(metadata_db()->NewIterator(
691 leveldb::ReadOptions()));
692 int batch_origins_found = 0;
693 for (itr->SeekToFirst(); itr->Valid(); itr->Next()) {
tzik 2013/05/27 12:14:10 Seek(kDriveBatchSyncOriginKeyPrefix)?
calvinlo 2013/05/28 02:18:55 Done.
694 std::string key = itr->key().ToString();
695 if (key.find(kDriveBatchSyncOriginKeyPrefix) != std::string::npos)
tzik 2013/05/27 12:14:10 StartsWithASCII and break? as we do at drive_metad
calvinlo 2013/05/28 02:18:55 Done.
696 batch_origins_found++;
697 }
698 ASSERT_EQ(0, batch_origins_found);
699 }
700
671 TEST_F(DriveMetadataStoreTest, ResetOriginRootDirectory) { 701 TEST_F(DriveMetadataStoreTest, ResetOriginRootDirectory) {
672 const GURL kOrigin1("chrome-extension://example1"); 702 const GURL kOrigin1("chrome-extension://example1");
673 const std::string kResourceId1("hoge"); 703 const std::string kResourceId1("hoge");
674 const std::string kResourceId2("fuga"); 704 const std::string kResourceId2("fuga");
675 705
676 InitializeDatabase(); 706 InitializeDatabase();
677 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); 707 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1));
678 708
679 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1); 709 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1);
680 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); 710 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1);
681 VerifyReverseMap(); 711 VerifyReverseMap();
682 712
683 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2); 713 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2);
684 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2); 714 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2);
685 VerifyReverseMap(); 715 VerifyReverseMap();
686 } 716 }
687 717
688 } // namespace sync_file_system 718 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698