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

Unified Diff: chrome/browser/chromeos/file_system_provider/operations/get_metadata_unittest.cc

Issue 513683002: [fsp] Add support for providing thumbnails. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. 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
Index: chrome/browser/chromeos/file_system_provider/operations/get_metadata_unittest.cc
diff --git a/chrome/browser/chromeos/file_system_provider/operations/get_metadata_unittest.cc b/chrome/browser/chromeos/file_system_provider/operations/get_metadata_unittest.cc
index 33f38d626856383f94632b94e46deecaad8b806e..1593ea139553ae32f5d407afceebe1697ac9e385 100644
--- a/chrome/browser/chromeos/file_system_provider/operations/get_metadata_unittest.cc
+++ b/chrome/browser/chromeos/file_system_provider/operations/get_metadata_unittest.cc
@@ -30,6 +30,9 @@ const char kMimeType[] = "text/plain";
const int kRequestId = 2;
const base::FilePath::CharType kDirectoryPath[] = "/directory";
+// URLs are case insensitive, so it should pass the sanity check.
+const char kThumbnail[] = "DaTa:ImAgE/pNg;base64,";
+
// Callback invocation logger. Acts as a fileapi end-point.
class CallbackLogger {
public:
@@ -88,11 +91,13 @@ TEST_F(FileSystemProviderOperationsGetMetadataTest, Execute) {
util::LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
CallbackLogger callback_logger;
- GetMetadata get_metadata(NULL,
- file_system_info_,
- base::FilePath::FromUTF8Unsafe(kDirectoryPath),
- base::Bind(&CallbackLogger::OnGetMetadata,
- base::Unretained(&callback_logger)));
+ GetMetadata get_metadata(
+ NULL,
+ file_system_info_,
+ base::FilePath::FromUTF8Unsafe(kDirectoryPath),
+ ProvidedFileSystemInterface::METADATA_FIELD_THUMBNAIL,
+ base::Bind(&CallbackLogger::OnGetMetadata,
+ base::Unretained(&callback_logger)));
get_metadata.SetDispatchEventImplForTesting(
base::Bind(&util::LoggingDispatchEventImpl::OnDispatchEventImpl,
base::Unretained(&dispatcher)));
@@ -121,17 +126,23 @@ TEST_F(FileSystemProviderOperationsGetMetadataTest, Execute) {
std::string event_entry_path;
EXPECT_TRUE(options->GetString("entryPath", &event_entry_path));
EXPECT_EQ(kDirectoryPath, event_entry_path);
+
+ bool event_thumbnail;
+ EXPECT_TRUE(options->GetBoolean("thumbnail", &event_thumbnail));
+ EXPECT_TRUE(event_thumbnail);
}
TEST_F(FileSystemProviderOperationsGetMetadataTest, Execute_NoListener) {
util::LoggingDispatchEventImpl dispatcher(false /* dispatch_reply */);
CallbackLogger callback_logger;
- GetMetadata get_metadata(NULL,
- file_system_info_,
- base::FilePath::FromUTF8Unsafe(kDirectoryPath),
- base::Bind(&CallbackLogger::OnGetMetadata,
- base::Unretained(&callback_logger)));
+ GetMetadata get_metadata(
+ NULL,
+ file_system_info_,
+ base::FilePath::FromUTF8Unsafe(kDirectoryPath),
+ ProvidedFileSystemInterface::METADATA_FIELD_THUMBNAIL,
+ base::Bind(&CallbackLogger::OnGetMetadata,
+ base::Unretained(&callback_logger)));
get_metadata.SetDispatchEventImplForTesting(
base::Bind(&util::LoggingDispatchEventImpl::OnDispatchEventImpl,
base::Unretained(&dispatcher)));
@@ -146,11 +157,13 @@ TEST_F(FileSystemProviderOperationsGetMetadataTest, OnSuccess) {
util::LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
CallbackLogger callback_logger;
- GetMetadata get_metadata(NULL,
- file_system_info_,
- base::FilePath::FromUTF8Unsafe(kDirectoryPath),
- base::Bind(&CallbackLogger::OnGetMetadata,
- base::Unretained(&callback_logger)));
+ GetMetadata get_metadata(
+ NULL,
+ file_system_info_,
+ base::FilePath::FromUTF8Unsafe(kDirectoryPath),
+ ProvidedFileSystemInterface::METADATA_FIELD_THUMBNAIL,
+ base::Bind(&CallbackLogger::OnGetMetadata,
+ base::Unretained(&callback_logger)));
get_metadata.SetDispatchEventImplForTesting(
base::Bind(&util::LoggingDispatchEventImpl::OnDispatchEventImpl,
base::Unretained(&dispatcher)));
@@ -171,7 +184,8 @@ TEST_F(FileSystemProviderOperationsGetMetadataTest, OnSuccess) {
" \"modificationTime\": {\n"
" \"value\": \"Thu Apr 24 00:46:52 UTC 2014\"\n"
" },\n"
- " \"mimeType\": \"text/plain\"\n" // kMimeType
+ " \"mimeType\": \"text/plain\",\n" // kMimeType
+ " \"thumbnail\": \"DaTa:ImAgE/pNg;base64,\"\n" // kThumbnail
" },\n"
" 0\n" // execution_time
"]\n";
@@ -205,17 +219,86 @@ TEST_F(FileSystemProviderOperationsGetMetadataTest, OnSuccess) {
base::Time::FromString("Thu Apr 24 00:46:52 UTC 2014", &expected_time));
EXPECT_EQ(expected_time, metadata.modification_time);
EXPECT_EQ(kMimeType, metadata.mime_type);
+ EXPECT_EQ(kThumbnail, metadata.thumbnail);
+}
+
+TEST_F(FileSystemProviderOperationsGetMetadataTest,
+ OnSuccess_InvalidThumbnail) {
+ using extensions::api::file_system_provider_internal::
+ GetMetadataRequestedSuccess::Params;
+
+ util::LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
+ CallbackLogger callback_logger;
+
+ GetMetadata get_metadata(
+ NULL,
+ file_system_info_,
+ base::FilePath::FromUTF8Unsafe(kDirectoryPath),
+ ProvidedFileSystemInterface::METADATA_FIELD_THUMBNAIL,
+ base::Bind(&CallbackLogger::OnGetMetadata,
+ base::Unretained(&callback_logger)));
+ get_metadata.SetDispatchEventImplForTesting(
+ base::Bind(&util::LoggingDispatchEventImpl::OnDispatchEventImpl,
+ base::Unretained(&dispatcher)));
+
+ EXPECT_TRUE(get_metadata.Execute(kRequestId));
+
+ // Sample input as JSON. Keep in sync with file_system_provider_api.idl.
+ // As for now, it is impossible to create *::Params class directly, not from
+ // base::Value.
+ const std::string input =
+ "[\n"
+ " \"testing-file-system\",\n" // kFileSystemId
+ " 2,\n" // kRequestId
+ " {\n"
+ " \"isDirectory\": false,\n"
+ " \"name\": \"blueberries.txt\",\n"
+ " \"size\": 4096,\n"
+ " \"modificationTime\": {\n"
+ " \"value\": \"Thu Apr 24 00:46:52 UTC 2014\"\n"
+ " },\n"
+ " \"mimeType\": \"text/plain\",\n" // kMimeType
+ " \"thumbnail\": \"http://www.foobar.com/evil\"\n" // kThumbnail
+ " },\n"
+ " 0\n" // execution_time
+ "]\n";
+
+ int json_error_code;
+ std::string json_error_msg;
+ scoped_ptr<base::Value> value(base::JSONReader::ReadAndReturnError(
+ input, base::JSON_PARSE_RFC, &json_error_code, &json_error_msg));
+ ASSERT_TRUE(value.get()) << json_error_msg;
+
+ base::ListValue* value_as_list;
+ ASSERT_TRUE(value->GetAsList(&value_as_list));
+ scoped_ptr<Params> params(Params::Create(*value_as_list));
+ ASSERT_TRUE(params.get());
+ scoped_ptr<RequestValue> request_value(
+ RequestValue::CreateForGetMetadataSuccess(params.Pass()));
+ ASSERT_TRUE(request_value.get());
+
+ const bool has_more = false;
+ get_metadata.OnSuccess(kRequestId, request_value.Pass(), has_more);
+
+ ASSERT_EQ(1u, callback_logger.events().size());
+ CallbackLogger::Event* event = callback_logger.events()[0];
+ EXPECT_EQ(base::File::FILE_ERROR_IO, event->result());
+
+ const EntryMetadata& metadata = event->metadata();
+ EXPECT_EQ("", metadata.thumbnail);
}
TEST_F(FileSystemProviderOperationsGetMetadataTest, OnError) {
util::LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
CallbackLogger callback_logger;
- GetMetadata get_metadata(NULL,
- file_system_info_,
- base::FilePath::FromUTF8Unsafe(kDirectoryPath),
- base::Bind(&CallbackLogger::OnGetMetadata,
- base::Unretained(&callback_logger)));
+ GetMetadata get_metadata(
+ NULL,
+ file_system_info_,
+ base::FilePath::FromUTF8Unsafe(kDirectoryPath),
+ ProvidedFileSystemInterface::METADATA_FIELD_THUMBNAIL,
+ base::Bind(&CallbackLogger::OnGetMetadata,
+ base::Unretained(&callback_logger)));
get_metadata.SetDispatchEventImplForTesting(
base::Bind(&util::LoggingDispatchEventImpl::OnDispatchEventImpl,
base::Unretained(&dispatcher)));

Powered by Google App Engine
This is Rietveld 408576698