summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/file_system_provider/operations
diff options
context:
space:
mode:
authormtomasz@chromium.org <mtomasz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 01:26:31 +0000
committermtomasz@chromium.org <mtomasz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 01:26:31 +0000
commit839b0795344532853f699161c44b69a454397366 (patch)
tree20908d8509127fd3ee35f93baf4f290711cea794 /chrome/browser/chromeos/file_system_provider/operations
parent0c5703d1a2552eb3d15a7c589f34e3acb6bfc881 (diff)
downloadchromium_src-839b0795344532853f699161c44b69a454397366.zip
chromium_src-839b0795344532853f699161c44b69a454397366.tar.gz
chromium_src-839b0795344532853f699161c44b69a454397366.tar.bz2
[fsp] Add FileStreamReader for the reading operation.
This patch adds a FileStreamReader implementation for provided file systeme. Note, that this is an initial version, which doesn't validate modification time. That will be added in a separate patch. TEST=browser_tests: *FileSystemProvider*ReadFile*, unit_tests: *FileSystemProvider*FileStreamReader* BUG=248427 R=benwells@chromium.org, hirono@chromium.org, kinaba@chromium.org Review URL: https://codereview.chromium.org/288113004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272041 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/file_system_provider/operations')
-rw-r--r--chrome/browser/chromeos/file_system_provider/operations/read_file.cc2
-rw-r--r--chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc38
2 files changed, 14 insertions, 26 deletions
diff --git a/chrome/browser/chromeos/file_system_provider/operations/read_file.cc b/chrome/browser/chromeos/file_system_provider/operations/read_file.cc
index 55ba7b0..7dafd4c 100644
--- a/chrome/browser/chromeos/file_system_provider/operations/read_file.cc
+++ b/chrome/browser/chromeos/file_system_provider/operations/read_file.cc
@@ -54,7 +54,7 @@ ReadFile::ReadFile(
buffer_(buffer),
offset_(offset),
length_(length),
- current_offset_(offset),
+ current_offset_(0),
callback_(callback) {
}
diff --git a/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc b/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc
index 3f39e4a..01108cf 100644
--- a/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc
+++ b/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc
@@ -6,10 +6,10 @@
#include "base/files/file.h"
#include "base/files/file_path.h"
-#include "base/json/json_reader.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
+#include "base/values.h"
#include "chrome/browser/chromeos/file_system_provider/operations/read_file.h"
#include "chrome/common/extensions/api/file_system_provider.h"
#include "chrome/common/extensions/api/file_system_provider_internal.h"
@@ -181,7 +181,6 @@ TEST_F(FileSystemProviderOperationsReadFileTest, Execute_NoListener) {
}
TEST_F(FileSystemProviderOperationsReadFileTest, OnSuccess) {
- using extensions::api::file_system_provider::EntryMetadata;
using extensions::api::file_system_provider_internal::
ReadFileRequestedSuccess::Params;
@@ -202,44 +201,33 @@ TEST_F(FileSystemProviderOperationsReadFileTest, OnSuccess) {
EXPECT_TRUE(read_file.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"
- " 1,\n" // kFileSystemId
- " 2,\n" // kRequestId
- " \"ABCDE\",\n" // 5 bytes
- " false\n" // has_next
- "]\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));
+ const std::string data = "ABCDE";
+ const bool has_next = false;
+
+ base::ListValue value_as_list;
+ value_as_list.Set(0, new base::FundamentalValue(kFileSystemId));
+ value_as_list.Set(1, new base::FundamentalValue(kRequestId));
+ value_as_list.Set(
+ 2, base::BinaryValue::CreateWithCopiedBuffer(data.c_str(), data.size()));
+ value_as_list.Set(3, new base::FundamentalValue(has_next));
+
+ scoped_ptr<Params> params(Params::Create(value_as_list));
ASSERT_TRUE(params.get());
scoped_ptr<RequestValue> request_value(
RequestValue::CreateForReadFileSuccess(params.Pass()));
ASSERT_TRUE(request_value.get());
- const bool has_next = false;
read_file.OnSuccess(kRequestId, request_value.Pass(), has_next);
ASSERT_EQ(1u, callback_logger.events().size());
CallbackLogger::Event* event = callback_logger.events()[0];
EXPECT_EQ(kLength, event->chunk_length());
EXPECT_FALSE(event->has_next());
- EXPECT_EQ("ABCDE", std::string(io_buffer_->data() + kOffset, kLength));
+ EXPECT_EQ(data, std::string(io_buffer_->data(), kLength));
EXPECT_EQ(base::File::FILE_OK, event->result());
}
TEST_F(FileSystemProviderOperationsReadFileTest, OnError) {
- using extensions::api::file_system_provider::EntryMetadata;
using extensions::api::file_system_provider_internal::ReadFileRequestedError::
Params;