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)); |