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

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: Small test fixes. 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
« no previous file with comments | « chrome/browser/sync_file_system/drive_metadata_store.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "base/string_util.h"
14 #include "base/threading/thread.h" 15 #include "base/threading/thread.h"
15 #include "chrome/browser/sync_file_system/drive_file_sync_service.h" 16 #include "chrome/browser/sync_file_system/drive_file_sync_service.h"
16 #include "chrome/browser/sync_file_system/sync_file_system.pb.h" 17 #include "chrome/browser/sync_file_system/sync_file_system.pb.h"
17 #include "content/public/browser/browser_thread.h" 18 #include "content/public/browser/browser_thread.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 #include "third_party/leveldatabase/src/include/leveldb/db.h" 20 #include "third_party/leveldatabase/src/include/leveldb/db.h"
20 #include "webkit/browser/fileapi/isolated_context.h" 21 #include "webkit/browser/fileapi/isolated_context.h"
21 #include "webkit/fileapi/syncable/syncable_file_system_util.h" 22 #include "webkit/fileapi/syncable/syncable_file_system_util.h"
22 23
23 #define FPL FILE_PATH_LITERAL 24 #define FPL FILE_PATH_LITERAL
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 void RestoreSyncRootDirectoryFromDB() { 126 void RestoreSyncRootDirectoryFromDB() {
126 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); 127 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread());
127 drive_metadata_store_->RestoreSyncRootDirectory( 128 drive_metadata_store_->RestoreSyncRootDirectory(
128 base::Bind(&DriveMetadataStoreTest::DidRestoreSyncRootDirectory, 129 base::Bind(&DriveMetadataStoreTest::DidRestoreSyncRootDirectory,
129 base::Unretained(this))); 130 base::Unretained(this)));
130 message_loop_.Run(); 131 message_loop_.Run();
131 } 132 }
132 133
133 void DropSyncOriginsInStore() { 134 void DropSyncOriginsInStore() {
134 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); 135 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread());
135 drive_metadata_store_->batch_sync_origins_.clear();
136 drive_metadata_store_->incremental_sync_origins_.clear(); 136 drive_metadata_store_->incremental_sync_origins_.clear();
137 drive_metadata_store_->disabled_origins_.clear(); 137 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()); 138 EXPECT_TRUE(drive_metadata_store_->incremental_sync_origins().empty());
140 EXPECT_TRUE(drive_metadata_store_->disabled_origins().empty()); 139 EXPECT_TRUE(drive_metadata_store_->disabled_origins().empty());
141 } 140 }
142 141
143 void RestoreOriginsFromDB() { 142 void RestoreOriginsFromDB() {
144 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); 143 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread());
145 drive_metadata_store_->RestoreOrigins( 144 drive_metadata_store_->RestoreOrigins(
146 base::Bind(&DriveMetadataStoreTest::DidRestoreOrigins, 145 base::Bind(&DriveMetadataStoreTest::DidRestoreOrigins,
147 base::Unretained(this))); 146 base::Unretained(this)));
148 message_loop_.Run(); 147 message_loop_.Run();
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 SyncStatusCode status) { 208 SyncStatusCode status) {
210 *status_out = status; 209 *status_out = status;
211 message_loop_.Quit(); 210 message_loop_.Quit();
212 } 211 }
213 212
214 void MarkAsCreated() { 213 void MarkAsCreated() {
215 created_ = true; 214 created_ = true;
216 } 215 }
217 216
218 void VerifyUntrackedOrigin(const GURL& origin) { 217 void VerifyUntrackedOrigin(const GURL& origin) {
219 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin));
220 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); 218 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin));
221 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin)); 219 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin));
222 } 220 }
223 221
224 void VerifyIncrementalSyncOrigin(const GURL& origin, 222 void VerifyIncrementalSyncOrigin(const GURL& origin,
225 const std::string& resource_id) { 223 const std::string& resource_id) {
226 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin));
227 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(origin)); 224 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(origin));
228 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin)); 225 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin));
229 EXPECT_EQ(resource_id, 226 EXPECT_EQ(resource_id,
230 GetResourceID(metadata_store()->incremental_sync_origins(), 227 GetResourceID(metadata_store()->incremental_sync_origins(),
231 origin)); 228 origin));
232 } 229 }
233 230
234 void VerifyDisabledOrigin(const GURL& origin, 231 void VerifyDisabledOrigin(const GURL& origin,
235 const std::string& resource_id) { 232 const std::string& resource_id) {
236 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin));
237 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); 233 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin));
238 EXPECT_TRUE(metadata_store()->IsOriginDisabled(origin)); 234 EXPECT_TRUE(metadata_store()->IsOriginDisabled(origin));
239 EXPECT_EQ(resource_id, 235 EXPECT_EQ(resource_id,
240 GetResourceID(metadata_store()->disabled_origins(), origin)); 236 GetResourceID(metadata_store()->disabled_origins(), origin));
241 } 237 }
242 238
243 base::FilePath base_dir() { 239 base::FilePath base_dir() {
244 return base_dir_.path(); 240 return base_dir_.path();
245 } 241 }
246 242
247 DriveMetadataStore* metadata_store() { 243 DriveMetadataStore* metadata_store() {
248 return drive_metadata_store_.get(); 244 return drive_metadata_store_.get();
249 } 245 }
250 246
247 leveldb::DB* metadata_db() {
248 return drive_metadata_store_->GetDBInstanceForTesting();
249 }
250
251 const DriveMetadataStore::MetadataMap& metadata_map() { 251 const DriveMetadataStore::MetadataMap& metadata_map() {
252 return drive_metadata_store_->metadata_map_; 252 return drive_metadata_store_->metadata_map_;
253 } 253 }
254 254
255 void VerifyReverseMap() { 255 void VerifyReverseMap() {
256 const ResourceIdByOrigin& batch_sync_origins =
257 drive_metadata_store_->batch_sync_origins_;
258 const ResourceIdByOrigin& incremental_sync_origins = 256 const ResourceIdByOrigin& incremental_sync_origins =
259 drive_metadata_store_->incremental_sync_origins_; 257 drive_metadata_store_->incremental_sync_origins_;
260 const ResourceIdByOrigin& disabled_origins = 258 const ResourceIdByOrigin& disabled_origins =
261 drive_metadata_store_->disabled_origins_; 259 drive_metadata_store_->disabled_origins_;
262 const OriginByResourceId& origin_by_resource_id = 260 const OriginByResourceId& origin_by_resource_id =
263 drive_metadata_store_->origin_by_resource_id_; 261 drive_metadata_store_->origin_by_resource_id_;
264 262
265 size_t expected_size = 263 size_t expected_size = incremental_sync_origins.size() +
266 batch_sync_origins.size() + incremental_sync_origins.size() + 264 disabled_origins.size();
267 disabled_origins.size();
268 size_t actual_size = origin_by_resource_id.size(); 265 size_t actual_size = origin_by_resource_id.size();
269 EXPECT_EQ(expected_size, actual_size); 266 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, 267 EXPECT_TRUE(VerifyReverseMapInclusion(incremental_sync_origins,
273 origin_by_resource_id)); 268 origin_by_resource_id));
274 EXPECT_TRUE(VerifyReverseMapInclusion(disabled_origins, 269 EXPECT_TRUE(VerifyReverseMapInclusion(disabled_origins,
275 origin_by_resource_id)); 270 origin_by_resource_id));
276 } 271 }
277 272
278 private: 273 private:
279 void DidInitializeDatabase(bool* done_out, 274 void DidInitializeDatabase(bool* done_out,
280 SyncStatusCode* status_out, 275 SyncStatusCode* status_out,
281 bool* created_out, 276 bool* created_out,
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 kOrigin3, kServiceName, base::FilePath(FPL("waf"))), 522 kOrigin3, kServiceName, base::FilePath(FPL("waf"))),
528 CreateMetadata("baz", "egg", false, false))); 523 CreateMetadata("baz", "egg", false, false)));
529 524
530 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin2)); 525 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin2));
531 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin3)); 526 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin3));
532 527
533 DropDatabase(); 528 DropDatabase();
534 InitializeDatabase(); 529 InitializeDatabase();
535 530
536 // kOrigin1 should be the only one left. 531 // 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()); 532 EXPECT_EQ(1u, metadata_store()->incremental_sync_origins().size());
539 EXPECT_EQ(0u, metadata_store()->disabled_origins().size()); 533 EXPECT_EQ(0u, metadata_store()->disabled_origins().size());
540 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); 534 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1));
541 EXPECT_EQ(1u, metadata_map().size()); 535 EXPECT_EQ(1u, metadata_map().size());
542 536
543 DriveMetadataStore::MetadataMap::const_iterator found = 537 DriveMetadataStore::MetadataMap::const_iterator found =
544 metadata_map().find(kOrigin1); 538 metadata_map().find(kOrigin1);
545 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u); 539 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u);
546 540
547 VerifyReverseMap(); 541 VerifyReverseMap();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 kDriveIncrementalSyncOriginKeyPrefix + kOrigin2.spec(), 639 kDriveIncrementalSyncOriginKeyPrefix + kOrigin2.spec(),
646 kResourceId2); 640 kResourceId2);
647 EXPECT_TRUE(RevokeSyncableFileSystem(kV0ServiceName)); 641 EXPECT_TRUE(RevokeSyncableFileSystem(kV0ServiceName));
648 MarkAsCreated(); 642 MarkAsCreated();
649 } 643 }
650 644
651 InitializeDatabase(); 645 InitializeDatabase();
652 646
653 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp()); 647 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp());
654 EXPECT_EQ(kSyncRootResourceId, metadata_store()->sync_root_directory()); 648 EXPECT_EQ(kSyncRootResourceId, metadata_store()->sync_root_directory());
655 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1));
656 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); 649 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2));
657 650
658 DriveMetadata metadata; 651 DriveMetadata metadata;
659 EXPECT_EQ(SYNC_STATUS_OK, 652 EXPECT_EQ(SYNC_STATUS_OK,
660 metadata_store()->ReadEntry( 653 metadata_store()->ReadEntry(
661 CreateSyncableFileSystemURL(kOrigin1, kServiceName, kFile), 654 CreateSyncableFileSystemURL(kOrigin1, kServiceName, kFile),
662 &metadata)); 655 &metadata));
663 EXPECT_EQ(kFileResourceId, metadata.resource_id()); 656 EXPECT_EQ(kFileResourceId, metadata.resource_id());
664 EXPECT_EQ(kFileMD5, metadata.md5_checksum()); 657 EXPECT_EQ(kFileMD5, metadata.md5_checksum());
665 EXPECT_FALSE(metadata.conflicted()); 658 EXPECT_FALSE(metadata.conflicted());
666 EXPECT_FALSE(metadata.to_be_fetched()); 659 EXPECT_FALSE(metadata.to_be_fetched());
667 660
668 VerifyReverseMap(); 661 VerifyReverseMap();
669 } 662 }
670 663
664 TEST_F(DriveMetadataStoreTest, DeprecateBatchSyncOrigins) {
665 // Make sure that previously saved batch sync origins were deleted from the DB
666 // as they are no longer used.
667 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: ";
668 const GURL kOrigin1("chrome-extension://example1");
669 const std::string kResourceId1("hoge");
670
671 // Purposely add in an old batch sync origin (from previous DB version).
672 {
673 leveldb::Options options;
674 options.create_if_missing = true;
675 leveldb::DB* db_ptr = NULL;
676 std::string db_dir = fileapi::FilePathToString(
677 base_dir().Append(DriveMetadataStore::kDatabaseName));
678 leveldb::DB::Open(options, db_dir, &db_ptr);
679 scoped_ptr<leveldb::DB> db(db_ptr);
680 leveldb::WriteOptions write_options;
681 db->Put(write_options,
682 kDriveBatchSyncOriginKeyPrefix + kOrigin1.spec(), kResourceId1);
683 }
684
685 InitializeDatabase();
686
687 // Confirm no batch sync origins remain after InitializeDatabase.
688 scoped_ptr<leveldb::Iterator> itr(metadata_db()->NewIterator(
689 leveldb::ReadOptions()));
690 int batch_origins_found = 0;
691 for (itr->Seek(kDriveBatchSyncOriginKeyPrefix); itr->Valid(); itr->Next()) {
692 std::string key = itr->key().ToString();
693 if (!StartsWithASCII(key, kDriveBatchSyncOriginKeyPrefix, true))
694 break;
695 batch_origins_found++;
696 }
697 EXPECT_EQ(0, batch_origins_found);
698 }
699
671 TEST_F(DriveMetadataStoreTest, ResetOriginRootDirectory) { 700 TEST_F(DriveMetadataStoreTest, ResetOriginRootDirectory) {
672 const GURL kOrigin1("chrome-extension://example1"); 701 const GURL kOrigin1("chrome-extension://example1");
673 const std::string kResourceId1("hoge"); 702 const std::string kResourceId1("hoge");
674 const std::string kResourceId2("fuga"); 703 const std::string kResourceId2("fuga");
675 704
676 InitializeDatabase(); 705 InitializeDatabase();
677 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); 706 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1));
678 707
679 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1); 708 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1);
680 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); 709 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1);
681 VerifyReverseMap(); 710 VerifyReverseMap();
682 711
683 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2); 712 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2);
684 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2); 713 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2);
685 VerifyReverseMap(); 714 VerifyReverseMap();
686 } 715 }
687 716
688 } // namespace sync_file_system 717 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/drive_metadata_store.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698