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