Index: chrome/browser/sync_file_system/drive_backend/metadata_database_index_unittest.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database_index_unittest.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_unittest.cc |
index 25a60aed3d5cbe29f514d0373681e3e98fa7f8e7..6dc865c10a51fe034772b34348553f3f99fe3d8b 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database_index_unittest.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_unittest.cc |
@@ -2,13 +2,18 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/files/scoped_temp_dir.h" |
nhiroki
2014/08/07 07:14:01
nit: This is no longer necessary.
peria
2014/08/07 07:19:33
Done.
|
#include "chrome/browser/sync_file_system/drive_backend/metadata_database_index.h" |
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.h" |
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util.h" |
+#include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h" |
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" |
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "third_party/leveldatabase/src/helpers/memenv/memenv.h" |
+#include "third_party/leveldatabase/src/include/leveldb/db.h" |
+#include "third_party/leveldatabase/src/include/leveldb/env.h" |
namespace sync_file_system { |
namespace drive_backend { |
@@ -60,78 +65,99 @@ scoped_ptr<DatabaseContents> CreateTestDatabaseContents() { |
} // namespace |
-TEST(MetadataDatabaseIndexTest, GetEntryTest) { |
- scoped_ptr<MetadataDatabaseIndex> index = |
- MetadataDatabaseIndex::CreateForTesting( |
- CreateTestDatabaseContents().get()); |
+class MetadataDatabaseIndexTest : public testing::Test { |
+ public: |
+ virtual void SetUp() OVERRIDE { |
+ in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default())); |
+ InitializeLevelDB(); |
+ contents_ = CreateTestDatabaseContents(); |
+ index_ = MetadataDatabaseIndex::CreateForTesting(contents_.get(), |
+ db_.get()); |
+ } |
+ |
+ MetadataDatabaseIndex* index() { return index_.get(); } |
+ |
+ private: |
+ void InitializeLevelDB() { |
+ leveldb::DB* db = NULL; |
+ leveldb::Options options; |
+ options.create_if_missing = true; |
+ options.max_open_files = 0; // Use minimum. |
+ options.env = in_memory_env_.get(); |
+ leveldb::Status status = leveldb::DB::Open(options, "", &db); |
+ ASSERT_TRUE(status.ok()); |
+ |
+ db_.reset(new LevelDBWrapper(make_scoped_ptr(db))); |
+ } |
+ |
+ scoped_ptr<DatabaseContents> contents_; |
+ scoped_ptr<MetadataDatabaseIndex> index_; |
+ |
+ scoped_ptr<leveldb::Env> in_memory_env_; |
+ scoped_ptr<LevelDBWrapper> db_; |
+}; |
+ |
+TEST_F(MetadataDatabaseIndexTest, GetEntryTest) { |
FileTracker tracker; |
- EXPECT_FALSE(index->GetFileTracker(kInvalidTrackerID, NULL)); |
- ASSERT_TRUE(index->GetFileTracker(kFileTrackerID, &tracker)); |
+ EXPECT_FALSE(index()->GetFileTracker(kInvalidTrackerID, NULL)); |
+ ASSERT_TRUE(index()->GetFileTracker(kFileTrackerID, &tracker)); |
EXPECT_EQ(kFileTrackerID, tracker.tracker_id()); |
EXPECT_EQ("file_id", tracker.file_id()); |
FileMetadata metadata; |
- EXPECT_FALSE(index->GetFileMetadata(std::string(), NULL)); |
- ASSERT_TRUE(index->GetFileMetadata("file_id", &metadata)); |
+ EXPECT_FALSE(index()->GetFileMetadata(std::string(), NULL)); |
+ ASSERT_TRUE(index()->GetFileMetadata("file_id", &metadata)); |
EXPECT_EQ("file_id", metadata.file_id()); |
} |
-TEST(MetadataDatabaseIndexTest, IndexLookUpTest) { |
- scoped_ptr<MetadataDatabaseIndex> index = |
- MetadataDatabaseIndex::CreateForTesting( |
- CreateTestDatabaseContents().get()); |
- |
- TrackerIDSet trackers = index->GetFileTrackerIDsByFileID("file_id"); |
+TEST_F(MetadataDatabaseIndexTest, IndexLookUpTest) { |
+ TrackerIDSet trackers = index()->GetFileTrackerIDsByFileID("file_id"); |
EXPECT_EQ(1u, trackers.size()); |
EXPECT_TRUE(trackers.has_active()); |
EXPECT_EQ(kFileTrackerID, trackers.active_tracker()); |
- int64 app_root_tracker_id = index->GetAppRootTracker("app_id"); |
+ int64 app_root_tracker_id = index()->GetAppRootTracker("app_id"); |
EXPECT_EQ(kAppRootTrackerID, app_root_tracker_id); |
- trackers = index->GetFileTrackerIDsByParentAndTitle( |
+ trackers = index()->GetFileTrackerIDsByParentAndTitle( |
app_root_tracker_id, "file"); |
EXPECT_EQ(1u, trackers.size()); |
EXPECT_TRUE(trackers.has_active()); |
EXPECT_EQ(kFileTrackerID, trackers.active_tracker()); |
- EXPECT_TRUE(index->PickMultiTrackerFileID().empty()); |
+ EXPECT_TRUE(index()->PickMultiTrackerFileID().empty()); |
EXPECT_EQ(kInvalidTrackerID, |
- index->PickMultiBackingFilePath().parent_id); |
- EXPECT_EQ(kPlaceholderTrackerID, index->PickDirtyTracker()); |
+ index()->PickMultiBackingFilePath().parent_id); |
+ EXPECT_EQ(kPlaceholderTrackerID, index()->PickDirtyTracker()); |
} |
-TEST(MetadataDatabaseIndexTest, UpdateTest) { |
- scoped_ptr<MetadataDatabaseIndex> index = |
- MetadataDatabaseIndex::CreateForTesting( |
- CreateTestDatabaseContents().get()); |
- |
- index->DemoteDirtyTracker(kPlaceholderTrackerID); |
- EXPECT_EQ(kInvalidTrackerID, index->PickDirtyTracker()); |
- index->PromoteDemotedDirtyTrackers(); |
- EXPECT_EQ(kPlaceholderTrackerID, index->PickDirtyTracker()); |
+TEST_F(MetadataDatabaseIndexTest, UpdateTest) { |
+ index()->DemoteDirtyTracker(kPlaceholderTrackerID); |
+ EXPECT_EQ(kInvalidTrackerID, index()->PickDirtyTracker()); |
+ index()->PromoteDemotedDirtyTrackers(); |
+ EXPECT_EQ(kPlaceholderTrackerID, index()->PickDirtyTracker()); |
FileMetadata metadata; |
- ASSERT_TRUE(index->GetFileMetadata("file_id", &metadata)); |
+ ASSERT_TRUE(index()->GetFileMetadata("file_id", &metadata)); |
FileTracker app_root_tracker; |
- ASSERT_TRUE(index->GetFileTracker(kAppRootTrackerID, &app_root_tracker)); |
+ ASSERT_TRUE(index()->GetFileTracker(kAppRootTrackerID, &app_root_tracker)); |
int64 new_tracker_id = 100; |
scoped_ptr<FileTracker> new_tracker = |
test_util::CreateTracker(metadata, new_tracker_id, &app_root_tracker); |
new_tracker->set_active(false); |
- index->StoreFileTracker(new_tracker.Pass()); |
+ index()->StoreFileTracker(new_tracker.Pass()); |
- EXPECT_EQ("file_id", index->PickMultiTrackerFileID()); |
+ EXPECT_EQ("file_id", index()->PickMultiTrackerFileID()); |
EXPECT_EQ(ParentIDAndTitle(kAppRootTrackerID, std::string("file")), |
- index->PickMultiBackingFilePath()); |
+ index()->PickMultiBackingFilePath()); |
- index->RemoveFileMetadata("file_id"); |
- index->RemoveFileTracker(kFileTrackerID); |
+ index()->RemoveFileMetadata("file_id"); |
+ index()->RemoveFileTracker(kFileTrackerID); |
- EXPECT_FALSE(index->GetFileMetadata("file_id", NULL)); |
- EXPECT_FALSE(index->GetFileTracker(kFileTrackerID, NULL)); |
+ EXPECT_FALSE(index()->GetFileMetadata("file_id", NULL)); |
+ EXPECT_FALSE(index()->GetFileTracker(kFileTrackerID, NULL)); |
} |
} // namespace drive_backend |