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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc

Issue 442383002: Move storage-related files from webkit/ to new top-level directory storage/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
(...skipping 17 matching lines...) Expand all
28 // Number of bytes requested per BufferingFileStreamReader::Read(). 28 // Number of bytes requested per BufferingFileStreamReader::Read().
29 const int kChunkSize = 3; 29 const int kChunkSize = 3;
30 30
31 // Pushes a value to the passed log vector. 31 // Pushes a value to the passed log vector.
32 template <typename T> 32 template <typename T>
33 void LogValue(std::vector<T>* log, T value) { 33 void LogValue(std::vector<T>* log, T value) {
34 log->push_back(value); 34 log->push_back(value);
35 } 35 }
36 36
37 // Fake internal file stream reader. 37 // Fake internal file stream reader.
38 class FakeFileStreamReader : public webkit_blob::FileStreamReader { 38 class FakeFileStreamReader : public storage::FileStreamReader {
39 public: 39 public:
40 FakeFileStreamReader(std::vector<int>* log, net::Error return_error) 40 FakeFileStreamReader(std::vector<int>* log, net::Error return_error)
41 : log_(log), return_error_(return_error) {} 41 : log_(log), return_error_(return_error) {}
42 virtual ~FakeFileStreamReader() {} 42 virtual ~FakeFileStreamReader() {}
43 43
44 // webkit_blob::FileStreamReader overrides. 44 // storage::FileStreamReader overrides.
45 virtual int Read(net::IOBuffer* buf, 45 virtual int Read(net::IOBuffer* buf,
46 int buf_len, 46 int buf_len,
47 const net::CompletionCallback& callback) OVERRIDE { 47 const net::CompletionCallback& callback) OVERRIDE {
48 DCHECK(log_); 48 DCHECK(log_);
49 log_->push_back(buf_len); 49 log_->push_back(buf_len);
50 50
51 if (return_error_ != net::OK) { 51 if (return_error_ != net::OK) {
52 base::MessageLoopProxy::current()->PostTask( 52 base::MessageLoopProxy::current()->PostTask(
53 FROM_HERE, base::Bind(callback, return_error_)); 53 FROM_HERE, base::Bind(callback, return_error_));
54 return net::ERR_IO_PENDING; 54 return net::ERR_IO_PENDING;
(...skipping 27 matching lines...) Expand all
82 protected: 82 protected:
83 FileSystemProviderBufferingFileStreamReaderTest() {} 83 FileSystemProviderBufferingFileStreamReaderTest() {}
84 virtual ~FileSystemProviderBufferingFileStreamReaderTest() {} 84 virtual ~FileSystemProviderBufferingFileStreamReaderTest() {}
85 85
86 content::TestBrowserThreadBundle thread_bundle_; 86 content::TestBrowserThreadBundle thread_bundle_;
87 }; 87 };
88 88
89 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read) { 89 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read) {
90 std::vector<int> inner_read_log; 90 std::vector<int> inner_read_log;
91 BufferingFileStreamReader reader( 91 BufferingFileStreamReader reader(
92 scoped_ptr<webkit_blob::FileStreamReader>( 92 scoped_ptr<storage::FileStreamReader>(
93 new FakeFileStreamReader(&inner_read_log, net::OK)), 93 new FakeFileStreamReader(&inner_read_log, net::OK)),
94 kBufferSize); 94 kBufferSize);
95 95
96 // For the first read, the internal file stream reader is fired, as there is 96 // For the first read, the internal file stream reader is fired, as there is
97 // no data in the preloading buffer. 97 // no data in the preloading buffer.
98 { 98 {
99 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 99 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
100 std::vector<int> read_log; 100 std::vector<int> read_log;
101 const int result = 101 const int result =
102 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log)); 102 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 ASSERT_EQ(1u, inner_read_log.size()); 155 ASSERT_EQ(1u, inner_read_log.size());
156 EXPECT_EQ(kBufferSize, inner_read_log[0]); 156 EXPECT_EQ(kBufferSize, inner_read_log[0]);
157 ASSERT_EQ(1u, read_log.size()); 157 ASSERT_EQ(1u, read_log.size());
158 EXPECT_EQ(kChunkSize, read_log[0]); 158 EXPECT_EQ(kChunkSize, read_log[0]);
159 } 159 }
160 } 160 }
161 161
162 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_Directly) { 162 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_Directly) {
163 std::vector<int> inner_read_log; 163 std::vector<int> inner_read_log;
164 BufferingFileStreamReader reader( 164 BufferingFileStreamReader reader(
165 scoped_ptr<webkit_blob::FileStreamReader>( 165 scoped_ptr<storage::FileStreamReader>(
166 new FakeFileStreamReader(&inner_read_log, net::OK)), 166 new FakeFileStreamReader(&inner_read_log, net::OK)),
167 kBufferSize); 167 kBufferSize);
168 168
169 // First read couple of bytes, so the internal buffer is filled out. 169 // First read couple of bytes, so the internal buffer is filled out.
170 { 170 {
171 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 171 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
172 std::vector<int> read_log; 172 std::vector<int> read_log;
173 const int result = 173 const int result =
174 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log)); 174 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log));
175 base::RunLoop().RunUntilIdle(); 175 base::RunLoop().RunUntilIdle();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 EXPECT_EQ(read_bytes, inner_read_log[0]); 215 EXPECT_EQ(read_bytes, inner_read_log[0]);
216 ASSERT_EQ(1u, read_log.size()); 216 ASSERT_EQ(1u, read_log.size());
217 EXPECT_EQ(read_bytes, read_log[0]); 217 EXPECT_EQ(read_bytes, read_log[0]);
218 } 218 }
219 } 219 }
220 220
221 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, 221 TEST_F(FileSystemProviderBufferingFileStreamReaderTest,
222 Read_MoreThanBufferSize) { 222 Read_MoreThanBufferSize) {
223 std::vector<int> inner_read_log; 223 std::vector<int> inner_read_log;
224 BufferingFileStreamReader reader( 224 BufferingFileStreamReader reader(
225 scoped_ptr<webkit_blob::FileStreamReader>( 225 scoped_ptr<storage::FileStreamReader>(
226 new FakeFileStreamReader(&inner_read_log, net::OK)), 226 new FakeFileStreamReader(&inner_read_log, net::OK)),
227 kBufferSize); 227 kBufferSize);
228 // First read couple of bytes, so the internal buffer is filled out. 228 // First read couple of bytes, so the internal buffer is filled out.
229 { 229 {
230 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 230 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
231 std::vector<int> read_log; 231 std::vector<int> read_log;
232 const int result = 232 const int result =
233 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log)); 233 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log));
234 base::RunLoop().RunUntilIdle(); 234 base::RunLoop().RunUntilIdle();
235 235
(...skipping 18 matching lines...) Expand all
254 254
255 EXPECT_EQ(5, result); 255 EXPECT_EQ(5, result);
256 EXPECT_EQ(0u, inner_read_log.size()); 256 EXPECT_EQ(0u, inner_read_log.size());
257 EXPECT_EQ(0u, read_log.size()); 257 EXPECT_EQ(0u, read_log.size());
258 } 258 }
259 } 259 }
260 260
261 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_WithError) { 261 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_WithError) {
262 std::vector<int> inner_read_log; 262 std::vector<int> inner_read_log;
263 BufferingFileStreamReader reader( 263 BufferingFileStreamReader reader(
264 scoped_ptr<webkit_blob::FileStreamReader>( 264 scoped_ptr<storage::FileStreamReader>(
265 new FakeFileStreamReader(&inner_read_log, net::ERR_ACCESS_DENIED)), 265 new FakeFileStreamReader(&inner_read_log, net::ERR_ACCESS_DENIED)),
266 kBufferSize); 266 kBufferSize);
267 267
268 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 268 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
269 std::vector<int> read_log; 269 std::vector<int> read_log;
270 const int result = 270 const int result =
271 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log)); 271 reader.Read(buffer, kChunkSize, base::Bind(&LogValue<int>, &read_log));
272 base::RunLoop().RunUntilIdle(); 272 base::RunLoop().RunUntilIdle();
273 273
274 EXPECT_EQ(net::ERR_IO_PENDING, result); 274 EXPECT_EQ(net::ERR_IO_PENDING, result);
275 ASSERT_EQ(1u, inner_read_log.size()); 275 ASSERT_EQ(1u, inner_read_log.size());
276 EXPECT_EQ(kBufferSize, inner_read_log[0]); 276 EXPECT_EQ(kBufferSize, inner_read_log[0]);
277 ASSERT_EQ(1u, read_log.size()); 277 ASSERT_EQ(1u, read_log.size());
278 EXPECT_EQ(net::ERR_ACCESS_DENIED, read_log[0]); 278 EXPECT_EQ(net::ERR_ACCESS_DENIED, read_log[0]);
279 } 279 }
280 280
281 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, GetLength) { 281 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, GetLength) {
282 BufferingFileStreamReader reader(scoped_ptr<webkit_blob::FileStreamReader>( 282 BufferingFileStreamReader reader(scoped_ptr<storage::FileStreamReader>(
283 new FakeFileStreamReader(NULL, net::OK)), 283 new FakeFileStreamReader(NULL, net::OK)),
284 kBufferSize); 284 kBufferSize);
285 285
286 std::vector<int64> get_length_log; 286 std::vector<int64> get_length_log;
287 const int64 result = 287 const int64 result =
288 reader.GetLength(base::Bind(&LogValue<int64>, &get_length_log)); 288 reader.GetLength(base::Bind(&LogValue<int64>, &get_length_log));
289 base::RunLoop().RunUntilIdle(); 289 base::RunLoop().RunUntilIdle();
290 290
291 EXPECT_EQ(net::ERR_IO_PENDING, result); 291 EXPECT_EQ(net::ERR_IO_PENDING, result);
292 ASSERT_EQ(1u, get_length_log.size()); 292 ASSERT_EQ(1u, get_length_log.size());
293 EXPECT_EQ(kFileSize, get_length_log[0]); 293 EXPECT_EQ(kFileSize, get_length_log[0]);
294 } 294 }
295 295
296 } // namespace file_system_provider 296 } // namespace file_system_provider
297 } // namespace chromeos 297 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698