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

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

Issue 14167009: chromeos: Check validity of loaded data in DriveResourceMetadataStorageDB::Initialize (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 8 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/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/drive_resource_metadata_storage_unittest.cc
diff --git a/chrome/browser/chromeos/drive/drive_resource_metadata_storage_unittest.cc b/chrome/browser/chromeos/drive/drive_resource_metadata_storage_unittest.cc
index 10dfd8f7599723b7031d243c39970aa439687d18..f9f7c6277e42fa620a79fc009080ba33373fb2b1 100644
--- a/chrome/browser/chromeos/drive/drive_resource_metadata_storage_unittest.cc
+++ b/chrome/browser/chromeos/drive/drive_resource_metadata_storage_unittest.cc
@@ -44,6 +44,10 @@ class DriveResourceMetadataStorageTest : public testing::Test {
storage_->PutHeader(*header);
}
+ bool CheckValidity() {
+ return storage_->CheckValidity();
+ }
+
base::ScopedTempDir temp_dir_;
scoped_ptr<DriveResourceMetadataStorageDB> storage_;
};
@@ -199,23 +203,32 @@ TEST_F(DriveResourceMetadataStorageTest, OpenExistingDB) {
DriveEntryProto entry1;
entry1.set_resource_id(parent_id1);
+ DriveEntryProto entry2;
+ entry2.set_resource_id(child_id1);
+ entry2.set_parent_resource_id(parent_id1);
+ entry2.set_base_name(child_name1);
// Put some data.
storage_->PutEntry(entry1);
+ storage_->PutEntry(entry2);
storage_->PutChild(parent_id1, child_name1, child_id1);
- scoped_ptr<DriveEntryProto> result = storage_->GetEntry(parent_id1);
- ASSERT_TRUE(result);
- EXPECT_EQ(parent_id1, result->resource_id());
- EXPECT_EQ(child_id1, storage_->GetChild(parent_id1, child_name1));
// Close DB and reopen.
storage_.reset(new DriveResourceMetadataStorageDB(temp_dir_.path()));
ASSERT_TRUE(storage_->Initialize());
// Can read data.
+ scoped_ptr<DriveEntryProto> result;
result = storage_->GetEntry(parent_id1);
ASSERT_TRUE(result);
EXPECT_EQ(parent_id1, result->resource_id());
+
+ result = storage_->GetEntry(child_id1);
+ ASSERT_TRUE(result);
+ EXPECT_EQ(child_id1, result->resource_id());
+ EXPECT_EQ(parent_id1, result->parent_resource_id());
+ EXPECT_EQ(child_name1, result->base_name());
+
EXPECT_EQ(child_id1, storage_->GetChild(parent_id1, child_name1));
}
@@ -251,4 +264,46 @@ TEST_F(DriveResourceMetadataStorageTest, WrongPath) {
ASSERT_FALSE(storage_->Initialize());
}
+TEST_F(DriveResourceMetadataStorageTest, CheckValidity) {
+ const std::string key1 = "foo";
+ const std::string name1 = "hoge";
+ const std::string key2 = "bar";
+ const std::string name2 = "fuga";
+ const std::string key3 = "boo";
+ const std::string name3 = "piyo";
+
+ // Put entry with key1.
+ DriveEntryProto entry;
+ entry.set_resource_id(key1);
+ entry.set_base_name(name1);
+ storage_->PutEntry(entry);
+ EXPECT_TRUE(CheckValidity());
+
+ // Put entry with key2 under key1.
+ entry.set_resource_id(key2);
+ entry.set_parent_resource_id(key1);
+ entry.set_base_name(name2);
+ storage_->PutEntry(entry);
+ EXPECT_FALSE(CheckValidity()); // Missing parent-child relationship.
+
+ // Add missing parent-child relationship between key1 and key2.
+ storage_->PutChild(key1, name2, key2);
+ EXPECT_TRUE(CheckValidity());
+
+ // Add parent-child relationship between key1 and key3.
+ storage_->PutChild(key1, name3, key3);
+ EXPECT_FALSE(CheckValidity()); // key3 is not stored in the storage.
+
+ // Put entry with key3 under key1.
+ entry.set_resource_id(key3);
+ entry.set_parent_resource_id(key1);
+ entry.set_base_name(name3);
+ storage_->PutEntry(entry);
+ EXPECT_TRUE(CheckValidity());
+
+ // Parent-child relationship with wrong name.
+ storage_->PutChild(key1, name2, key3);
+ EXPECT_FALSE(CheckValidity());
+}
+
} // namespace drive
« no previous file with comments | « chrome/browser/chromeos/drive/drive_resource_metadata_storage.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698