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 |