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

Unified Diff: chrome/browser/media_galleries/fileapi/picasa/picasa_file_util_unittest.cc

Issue 15653004: Picasa import: Make NativeMediaFileUtil an AsyncFileUtil (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address vandebo comments. Created 7 years, 7 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/media_galleries/fileapi/picasa/picasa_file_util_unittest.cc
diff --git a/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util_unittest.cc b/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util_unittest.cc
index bfa565f5bdd9674b9fd4b3e5a3915101f04d9c32..ffd2ade2fbffd051c4922ff6574865d243de208d 100644
--- a/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util_unittest.cc
+++ b/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util_unittest.cc
@@ -9,6 +9,7 @@
#include "base/files/scoped_temp_dir.h"
#include "base/memory/scoped_vector.h"
#include "base/message_loop.h"
+#include "base/run_loop.h"
#include "base/stringprintf.h"
#include "base/time.h"
#include "chrome/browser/media_galleries/fileapi/media_file_system_mount_point_provider.h"
@@ -18,6 +19,7 @@
#include "chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.h"
#include "chrome/browser/media_galleries/fileapi/picasa/pmp_constants.h"
#include "chrome/browser/media_galleries/fileapi/picasa/pmp_test_helper.h"
+#include "content/public/test/test_browser_thread.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webkit/browser/fileapi/async_file_util_adapter.h"
#include "webkit/browser/fileapi/external_mount_points.h"
@@ -146,10 +148,9 @@ class TestMediaFileSystemMountPointProvider
public:
TestMediaFileSystemMountPointProvider(
const base::FilePath& profile_path,
- scoped_ptr<PicasaFileUtil> picasa_file_util)
+ PicasaFileUtil* picasa_file_util)
: chrome::MediaFileSystemMountPointProvider(profile_path),
- test_file_util_(new fileapi::AsyncFileUtilAdapter(
- picasa_file_util.release())) {
+ test_file_util_(picasa_file_util) {
}
virtual fileapi::AsyncFileUtil*
@@ -173,11 +174,30 @@ void DidReadDirectory(FileSystemOperation::FileEntryList* contents,
*contents = file_list;
}
+void ReadDirectoryTestCallback(
+ base::RunLoop* run_loop,
+ base::PlatformFileError* error_result,
+ fileapi::AsyncFileUtil::EntryList* file_list_result,
+ bool* has_more_result,
+ base::PlatformFileError error,
+ const fileapi::AsyncFileUtil::EntryList& file_list,
+ bool has_more) {
+ DCHECK(error_result);
+ DCHECK(file_list_result);
+ DCHECK(has_more_result);
+ *error_result = error;
+ *file_list_result = file_list;
+ *has_more_result = has_more;
+ run_loop->Quit();
+}
+
} // namespace
class PicasaFileUtilTest : public testing::Test {
public:
- PicasaFileUtilTest() {}
+ PicasaFileUtilTest()
+ : io_thread_(content::BrowserThread::IO, &message_loop_) {
+ }
virtual ~PicasaFileUtilTest() {}
virtual void SetUp() OVERRIDE {
@@ -186,8 +206,6 @@ class PicasaFileUtilTest : public testing::Test {
scoped_ptr<PicasaDataProvider> data_provider(
new PicasaDataProvider(test_helper_->GetTempDirPath()));
- scoped_ptr<PicasaFileUtil> file_util(new TestPicasaFileUtil(
- data_provider.Pass()));
ASSERT_TRUE(profile_dir_.CreateUniqueTempDir());
@@ -195,9 +213,9 @@ class PicasaFileUtilTest : public testing::Test {
new quota::MockSpecialStoragePolicy();
ScopedVector<fileapi::FileSystemMountPointProvider> additional_providers;
- additional_providers.push_back(
- new TestMediaFileSystemMountPointProvider(profile_dir_.path(),
- file_util.Pass()));
+ additional_providers.push_back(new TestMediaFileSystemMountPointProvider(
+ profile_dir_.path(),
+ new TestPicasaFileUtil(data_provider.Pass())));
file_system_context_ = new fileapi::FileSystemContext(
fileapi::FileSystemTaskRunners::CreateMockTaskRunners(),
@@ -325,6 +343,7 @@ class PicasaFileUtilTest : public testing::Test {
private:
base::MessageLoop message_loop_;
+ content::TestBrowserThread io_thread_;
base::ScopedTempDir profile_dir_;
@@ -375,31 +394,38 @@ TEST_F(PicasaFileUtilTest, NameDeduplication) {
AlbumInfo("unique_name", test_date, "uuid1", base::FilePath()));
expected_names.push_back("unique_name " + test_date_string);
- scoped_ptr<FileSystemOperationContext> operation_context(
- new FileSystemOperationContext(file_system_context().get()));
+ FileSystemOperationContext operation_context(file_system_context().get());
scoped_ptr<chrome::MediaPathFilter> media_path_filter(
new chrome::MediaPathFilter());
- operation_context->SetUserValue(
+ operation_context.SetUserValue(
chrome::MediaFileSystemMountPointProvider::kMediaPathFilterKey,
media_path_filter.get());
scoped_ptr<PicasaDataProvider> data_provider(
new TestPicasaDataProvider(std::vector<AlbumInfo>(), folders));
- TestPicasaFileUtil file_util(data_provider.Pass());
-
- scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> file_enumerator =
- file_util.CreateFileEnumerator(operation_context.get(),
- CreateURL("folders"));
-
- for (unsigned int i = 0; i < expected_names.size(); ++i) {
- base::FilePath path = file_enumerator->Next();
-
- ASSERT_TRUE(!path.empty());
- EXPECT_EQ(expected_names[i], path.BaseName().AsUTF8Unsafe());
- EXPECT_EQ(folders[i].timestamp, file_enumerator->LastModifiedTime());
- EXPECT_TRUE(file_enumerator->IsDirectory());
+ TestPicasaFileUtil test_file_util(data_provider.Pass());
+
+ base::RunLoop run_loop;
vandebo (ex-Chrome) 2013/06/02 04:30:24 Probably should pull this into a helper function,
+ base::PlatformFileError result;
+ fileapi::AsyncFileUtil::EntryList file_list;
+ bool has_more = false;
+ bool callback_made = test_file_util.ReadDirectory(
+ &operation_context,
+ CreateURL(kPicasaDirFolders),
+ base::Bind(&ReadDirectoryTestCallback, &run_loop, &result, &file_list,
+ &has_more));
+ ASSERT_TRUE(callback_made);
+ run_loop.Run();
+ ASSERT_EQ(result, base::PLATFORM_FILE_OK);
+
+ for (size_t i = 0; i < file_list.size(); ++i) {
+ ASSERT_FALSE(file_list[i].name.empty());
+ EXPECT_EQ(expected_names[i],
+ base::FilePath(file_list[i].name).AsUTF8Unsafe());
+ EXPECT_EQ(folders[i].timestamp, file_list[i].last_modified_time);
+ EXPECT_TRUE(file_list[i].is_directory);
}
}

Powered by Google App Engine
This is Rietveld 408576698