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

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database_index_unittest.cc

Issue 446893003: [SyncFS] Ensure to pass DB in some utilities (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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/sync_file_system/drive_backend/metadata_database_index.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..2b219864b086994806815f5b480cdec57ef5e7ed 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"
#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,102 @@ 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() {
nhiroki 2014/08/07 06:34:26 Please mark this with OVERRIDE.
peria 2014/08/07 07:10:52 Done.
+ ASSERT_TRUE(database_dir_.CreateUniqueTempDir());
nhiroki 2014/08/07 06:34:27 You don't have to make a temporary directory if yo
peria 2014/08/07 07:10:52 Done.
+ 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, database_dir_.path().AsUTF8Unsafe(), &db);
+ ASSERT_TRUE(status.ok());
+
+ db_.reset(new LevelDBWrapper(make_scoped_ptr(db)));
+ }
+
+ scoped_ptr<DatabaseContents> contents_;
+ scoped_ptr<MetadataDatabaseIndex> index_;
+
+ base::ScopedTempDir database_dir_;
+ 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
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/metadata_database_index.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698