diff options
author | mtomasz@chromium.org <mtomasz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-22 01:26:31 +0000 |
---|---|---|
committer | mtomasz@chromium.org <mtomasz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-22 01:26:31 +0000 |
commit | 839b0795344532853f699161c44b69a454397366 (patch) | |
tree | 20908d8509127fd3ee35f93baf4f290711cea794 /chrome/browser/chromeos/file_system_provider/operations | |
parent | 0c5703d1a2552eb3d15a7c589f34e3acb6bfc881 (diff) | |
download | chromium_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.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc | 38 |
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; |