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

Unified Diff: chrome/browser/chromeos/drive/resource_metadata_storage_unittest.cc

Issue 54223003: drive: Recover cache entries from trashed DB to filter out non-dirty cache files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 2 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
« no previous file with comments | « chrome/browser/chromeos/drive/resource_metadata_storage.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/drive/resource_metadata_storage_unittest.cc
diff --git a/chrome/browser/chromeos/drive/resource_metadata_storage_unittest.cc b/chrome/browser/chromeos/drive/resource_metadata_storage_unittest.cc
index 7d73eb50e6bb76fdf59685960de92be5c02b7537..865b7d133e19064efc167cc0e7ac34baf612034a 100644
--- a/chrome/browser/chromeos/drive/resource_metadata_storage_unittest.cc
+++ b/chrome/browser/chromeos/drive/resource_metadata_storage_unittest.cc
@@ -440,6 +440,43 @@ TEST_F(ResourceMetadataStorageTest, WrongPath) {
ASSERT_FALSE(storage_->Initialize());
}
+TEST_F(ResourceMetadataStorageTest, RecoverCacheEntriesFromTrashedResourceMap) {
+ // Put some cache entries.
+ FileCacheEntry cache_entry;
+ cache_entry.set_md5("md5_foo");
+ EXPECT_TRUE(storage_->PutCacheEntry("id_foo", cache_entry));
+ cache_entry.set_md5("md5_bar");
+ EXPECT_TRUE(storage_->PutCacheEntry("id_bar", cache_entry));
+
+ // Put entry with id_foo.
+ ResourceEntry entry;
+ entry.set_local_id("id_foo");
+ entry.set_base_name("foo");
+ EXPECT_TRUE(storage_->PutEntry(entry));
+
+ // Put entry with id_bar as a id_foo's child.
+ entry.set_local_id("id_bar");
+ entry.set_parent_local_id("id_foo");
+ entry.set_base_name("bar");
+ EXPECT_TRUE(storage_->PutEntry(entry));
+
+ // Remove parent-child relationship to make the DB invalid.
+ RemoveChild("id_foo", "bar");
+ EXPECT_FALSE(CheckValidity());
+
+ // Reopen. This should result in trashing the DB.
+ storage_.reset(new ResourceMetadataStorage(
+ temp_dir_.path(), base::MessageLoopProxy::current().get()));
+ ASSERT_TRUE(storage_->Initialize());
+
+ // Recover cache entries from the trashed DB.
+ std::map<std::string, FileCacheEntry> recovered_cache_entries;
+ storage_->RecoverCacheEntriesFromTrashedResourceMap(&recovered_cache_entries);
+ EXPECT_EQ(2U, recovered_cache_entries.size());
+ EXPECT_EQ("md5_foo", recovered_cache_entries["id_foo"].md5());
+ EXPECT_EQ("md5_bar", recovered_cache_entries["id_bar"].md5());
+}
+
TEST_F(ResourceMetadataStorageTest, CheckValidity) {
const std::string key1 = "foo";
const std::string name1 = "hoge";
« no previous file with comments | « chrome/browser/chromeos/drive/resource_metadata_storage.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698