| 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
|
|
|