Index: chrome/browser/sync/syncable/directory_backing_store_unittest.cc |
=================================================================== |
--- chrome/browser/sync/syncable/directory_backing_store_unittest.cc (revision 51231) |
+++ chrome/browser/sync/syncable/directory_backing_store_unittest.cc (working copy) |
@@ -1043,4 +1043,49 @@ |
} |
} |
+TEST_F(DirectoryBackingStoreTest, DeleteEntries) { |
+ SetUpCurrentDatabaseAndCheckVersion(); |
+ scoped_ptr<DirectoryBackingStore> dbs( |
+ new DirectoryBackingStore(GetUsername(), GetDatabasePath())); |
+ dbs->BeginLoad(); |
+ |
+ MetahandlesIndex index; |
+ dbs->LoadEntries(&index); |
+ size_t initial_size = index.size(); |
+ ASSERT_LT(0U, initial_size) << "Test requires entries to delete."; |
+ int64 first_to_die = (*index.begin())->ref(META_HANDLE); |
+ MetahandleSet to_delete; |
+ to_delete.insert(first_to_die); |
+ EXPECT_TRUE(dbs->DeleteEntries(to_delete)); |
+ |
+ index.clear(); |
+ dbs->LoadEntries(&index); |
+ |
+ EXPECT_EQ(initial_size - 1, index.size()); |
+ bool delete_failed = false; |
+ for (MetahandlesIndex::iterator it = index.begin(); it != index.end(); |
+ ++it) { |
+ if ((*it)->ref(META_HANDLE) == first_to_die) { |
+ delete_failed = true; |
+ break; |
+ } |
+ } |
+ EXPECT_FALSE(delete_failed); |
+ |
+ to_delete.clear(); |
+ for (MetahandlesIndex::iterator it = index.begin(); it != index.end(); |
+ ++it) { |
+ to_delete.insert((*it)->ref(META_HANDLE)); |
+ } |
+ |
+ EXPECT_TRUE(dbs->DeleteEntries(to_delete)); |
+ |
+ index.clear(); |
+ dbs->LoadEntries(&index); |
+ EXPECT_EQ(0U, index.size()); |
+ |
+ dbs->EndLoad(); |
+ dbs->EndSave(); |
+} |
+ |
} // namespace syncable |