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

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

Issue 17249004: drive: Use ResourceMetadataStorage from FileCache (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More precise old DB handling Created 7 years, 6 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
Index: chrome/browser/chromeos/drive/file_cache_unittest.cc
diff --git a/chrome/browser/chromeos/drive/file_cache_unittest.cc b/chrome/browser/chromeos/drive/file_cache_unittest.cc
index c413e8382debe25ce84ae905bf2b6b0ed18f4755..dbfc68e9123f032e896bff8a3b83c2b3a316b808 100644
--- a/chrome/browser/chromeos/drive/file_cache_unittest.cc
+++ b/chrome/browser/chromeos/drive/file_cache_unittest.cc
@@ -16,6 +16,7 @@
#include "chrome/browser/chromeos/drive/fake_free_disk_space_getter.h"
#include "chrome/browser/chromeos/drive/file_cache_metadata.h"
#include "chrome/browser/chromeos/drive/file_system_util.h"
+#include "chrome/browser/chromeos/drive/resource_metadata_storage.h"
#include "chrome/browser/chromeos/drive/test_util.h"
#include "chrome/browser/google_apis/test_util.h"
#include "content/public/browser/browser_thread.h"
@@ -74,13 +75,27 @@ class FileCacheTestOnUIThread : public testing::Test {
content::BrowserThread::GetBlockingPool();
blocking_task_runner_ =
pool->GetSequencedTaskRunner(pool->GetSequenceToken());
+
+ metadata_storage_.reset(new ResourceMetadataStorage(
+ temp_dir_.path(), blocking_task_runner_));
+
+ bool success = false;
+ base::PostTaskAndReplyWithResult(
+ blocking_task_runner_,
+ FROM_HERE,
+ base::Bind(&ResourceMetadataStorage::Initialize,
+ base::Unretained(metadata_storage_.get())),
+ google_apis::test_util::CreateCopyResultCallback(&success));
+ google_apis::test_util::RunBlockingPoolTask();
+ ASSERT_TRUE(success);
+
cache_.reset(new FileCache(
- temp_dir_.path().Append(util::kMetadataDirectory),
+ metadata_storage_.get(),
temp_dir_.path().Append(util::kCacheFileDirectory),
blocking_task_runner_.get(),
fake_free_disk_space_getter_.get()));
- bool success = false;
+ success = false;
base::PostTaskAndReplyWithResult(
blocking_task_runner_,
FROM_HERE,
@@ -91,10 +106,6 @@ class FileCacheTestOnUIThread : public testing::Test {
ASSERT_TRUE(success);
}
- virtual void TearDown() OVERRIDE {
- cache_.reset();
- }
-
void TestGetFileFromCacheByResourceIdAndMd5(
const std::string& resource_id,
const std::string& md5,
@@ -419,6 +430,8 @@ class FileCacheTestOnUIThread : public testing::Test {
base::ScopedTempDir temp_dir_;
base::FilePath dummy_file_path_;
+ scoped_ptr<ResourceMetadataStorage, test_util::DestroyHelperForTests>
+ metadata_storage_;
scoped_ptr<FileCache, test_util::DestroyHelperForTests> cache_;
scoped_ptr<FakeFreeDiskSpaceGetter> fake_free_disk_space_getter_;
@@ -853,20 +866,6 @@ TEST_F(FileCacheTestOnUIThread, StoreToCacheNoSpace) {
EXPECT_EQ(0U, CountCacheFiles(resource_id, md5));
}
-// Don't use TEST_F, as we don't want SetUp() and TearDown() for this test.
-TEST(FileCacheExtraTest, InitializationFailure) {
- content::TestBrowserThreadBundle thread_bundle;
-
- // Set the cache root to a non existent path, so the initialization fails.
- scoped_ptr<FileCache, test_util::DestroyHelperForTests> cache(new FileCache(
- base::FilePath::FromUTF8Unsafe("/somewhere/nonexistent/blah/meta"),
- base::FilePath::FromUTF8Unsafe("/somewhere/nonexistent/blah/files"),
- base::MessageLoopProxy::current(),
- NULL /* free_disk_space_getter */));
-
- EXPECT_FALSE(cache->Initialize());
-}
-
TEST_F(FileCacheTestOnUIThread, UpdatePinnedCache) {
std::string resource_id("pdf:1a2b");
std::string md5("abcdef0123456789");
@@ -897,12 +896,16 @@ class FileCacheTest : public testing::Test {
fake_free_disk_space_getter_.reset(new FakeFreeDiskSpaceGetter);
- cache_.reset(new FileCache(
+ metadata_storage_.reset(new ResourceMetadataStorage(
temp_dir_.path().Append(util::kMetadataDirectory),
+ base::MessageLoopProxy::current()));
+ ASSERT_TRUE(metadata_storage_->Initialize());
+
+ cache_.reset(new FileCache(
+ metadata_storage_.get(),
temp_dir_.path().Append(util::kCacheFileDirectory),
base::MessageLoopProxy::current(),
fake_free_disk_space_getter_.get()));
-
ASSERT_TRUE(cache_->Initialize());
}
@@ -910,32 +913,45 @@ class FileCacheTest : public testing::Test {
cache_.reset();
}
- static void ImportOldDB(FileCache* cache, const base::FilePath& old_db_path) {
- cache->ImportOldDB(old_db_path);
+ static bool ImportOldDB(FileCache* cache, const base::FilePath& old_db_path) {
+ return cache->ImportOldDB(old_db_path);
}
content::TestBrowserThreadBundle thread_bundle_;
base::ScopedTempDir temp_dir_;
+ scoped_ptr<ResourceMetadataStorage, test_util::DestroyHelperForTests>
+ metadata_storage_;
scoped_ptr<FileCache, test_util::DestroyHelperForTests> cache_;
scoped_ptr<FakeFreeDiskSpaceGetter> fake_free_disk_space_getter_;
};
TEST_F(FileCacheTest, ScanCacheFile) {
// Set up files in the cache directory.
- const base::FilePath directory =
+ const base::FilePath file_directory =
temp_dir_.path().Append(util::kCacheFileDirectory);
ASSERT_TRUE(google_apis::test_util::WriteStringToFile(
- directory.AppendASCII("id_foo.md5foo"), "foo"));
+ file_directory.AppendASCII("id_foo.md5foo"), "foo"));
ASSERT_TRUE(google_apis::test_util::WriteStringToFile(
- directory.AppendASCII("id_bar.local"), "bar"));
+ file_directory.AppendASCII("id_bar.local"), "bar"));
// Remove the existing DB.
- ASSERT_TRUE(file_util::Delete(
- temp_dir_.path().Append(util::kMetadataDirectory), true /* recursive */));
+ const base::FilePath metadata_directory =
+ temp_dir_.path().Append(util::kMetadataDirectory);
+ ASSERT_TRUE(file_util::Delete(metadata_directory, true /* recursive */));
+
+ // Put an empty file with the same name as old DB.
+ // This file cannot be opened by ImportOldDB() and will be dismissed.
+ ASSERT_TRUE(file_util::CreateDirectory(metadata_directory));
+ ASSERT_TRUE(google_apis::test_util::WriteStringToFile(
+ metadata_directory.Append(FileCache::kOldCacheMetadataDBName), ""));
// Create a new cache and initialize it.
- cache_.reset(new FileCache(temp_dir_.path().Append(util::kMetadataDirectory),
+ metadata_storage_.reset(new ResourceMetadataStorage(
+ metadata_directory, base::MessageLoopProxy::current()));
+ ASSERT_TRUE(metadata_storage_->Initialize());
+
+ cache_.reset(new FileCache(metadata_storage_.get(),
temp_dir_.path().Append(util::kCacheFileDirectory),
base::MessageLoopProxy::current(),
fake_free_disk_space_getter_.get()));
@@ -1017,7 +1033,7 @@ TEST_F(FileCacheTest, ImportOldDB) {
EXPECT_TRUE(file_util::PathExists(old_db_path));
// Do import.
- ImportOldDB(cache_.get(), old_db_path);
+ EXPECT_TRUE(ImportOldDB(cache_.get(), old_db_path));
// Old DB should be removed.
EXPECT_FALSE(file_util::PathExists(old_db_path));
« no previous file with comments | « chrome/browser/chromeos/drive/file_cache_metadata.h ('k') | chrome/browser/chromeos/drive/file_system/operation_test_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698