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

Unified Diff: sync/internal_api/sync_backup_manager_unittest.cc

Issue 455023003: Let SyncBackupManager keep backup data in memory until shutdown. Only persist (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: sync/internal_api/sync_backup_manager_unittest.cc
diff --git a/sync/internal_api/sync_backup_manager_unittest.cc b/sync/internal_api/sync_backup_manager_unittest.cc
index 31b8d872523f48c5257fae04d5cd46608870ae75..35c599757e345b7488d6f85df2bf5fc527bce304 100644
--- a/sync/internal_api/sync_backup_manager_unittest.cc
+++ b/sync/internal_api/sync_backup_manager_unittest.cc
@@ -49,14 +49,16 @@ class SyncBackupManagerTest : public syncer::SyncManager::Observer,
CHECK(temp_dir_.CreateUniqueTempDir());
}
- void InitManager(SyncManager* manager, StorageOption storage_option) {
+ void InitManager(SyncManager* manager,
+ InternalComponentsFactory::StorageOption storage_option) {
manager_ = manager;
EXPECT_CALL(*this, OnInitializationComplete(_, _, _, _))
.WillOnce(WithArgs<2>(Invoke(this,
&SyncBackupManagerTest::HandleInit)));
- TestInternalComponentsFactory factory(InternalComponentsFactory::Switches(),
- storage_option);
+ TestInternalComponentsFactory factory(
+ InternalComponentsFactory::Switches(), storage_option,
+ InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED);
manager->AddObserver(this);
base::RunLoop run_loop;
@@ -91,7 +93,6 @@ class SyncBackupManagerTest : public syncer::SyncManager::Observer,
node.InitUniqueByCreation(type, type_root, client_tag));
}
- private:
void ConfigureSyncer() {
manager_->ConfigureSyncer(CONFIGURE_REASON_NEW_CLIENT,
ModelTypeSet(SEARCH_ENGINES),
@@ -116,9 +117,9 @@ class SyncBackupManagerTest : public syncer::SyncManager::Observer,
SyncManager* manager_;
};
-TEST_F(SyncBackupManagerTest, NormalizeAndPersist) {
+TEST_F(SyncBackupManagerTest, NormalizeEntry) {
scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
- InitManager(manager.get(), STORAGE_ON_DISK);
+ InitManager(manager.get(), InternalComponentsFactory::STORAGE_IN_MEMORY);
CreateEntry(manager->GetUserShare(), SEARCH_ENGINES, "test");
@@ -143,11 +144,20 @@ TEST_F(SyncBackupManagerTest, NormalizeAndPersist) {
EXPECT_TRUE(pref.GetEntry()->GetId().ServerKnows());
EXPECT_FALSE(pref.GetEntry()->GetIsUnsynced());
}
- manager->ShutdownOnSyncThread(STOP_SYNC);
+}
+
+TEST_F(SyncBackupManagerTest, PersistWithSwitchToSyncShutdown) {
+ scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
+ InitManager(manager.get(),
+ InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED);
+
+ CreateEntry(manager->GetUserShare(), SEARCH_ENGINES, "test");
+ manager->SaveChanges();
+ manager->ShutdownOnSyncThread(SWITCH_MODE_SYNC);
// Reopen db to verify entry is persisted.
manager.reset(new SyncBackupManager);
- InitManager(manager.get(), STORAGE_ON_DISK);
+ InitManager(manager.get(), InternalComponentsFactory::STORAGE_ON_DISK);
{
ReadTransaction trans(FROM_HERE, manager->GetUserShare());
ReadNode pref(&trans);
@@ -158,10 +168,22 @@ TEST_F(SyncBackupManagerTest, NormalizeAndPersist) {
}
}
+TEST_F(SyncBackupManagerTest, DontPersistWithOtherShutdown) {
+ scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
+ InitManager(manager.get(),
+ InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED);
+
+ CreateEntry(manager->GetUserShare(), SEARCH_ENGINES, "test");
+ manager->SaveChanges();
+ manager->ShutdownOnSyncThread(STOP_SYNC);
+ EXPECT_FALSE(base::PathExists(
+ temp_dir_.path().Append(syncable::Directory::kSyncDatabaseFilename)));
+}
+
TEST_F(SyncBackupManagerTest, FailToInitialize) {
// Test graceful shutdown on initialization failure.
scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
- InitManager(manager.get(), STORAGE_INVALID);
+ InitManager(manager.get(), InternalComponentsFactory::STORAGE_INVALID);
}
} // anonymous namespace

Powered by Google App Engine
This is Rietveld 408576698