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

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

Issue 1870793002: Convert //chrome/browser/chromeos from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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
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 "chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_st ream_reader.h"
6
5 #include <stdint.h> 7 #include <stdint.h>
6 8
9 #include <memory>
7 #include <string> 10 #include <string>
8 #include <vector> 11 #include <vector>
9 12
10 #include "base/macros.h" 13 #include "base/macros.h"
11 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "base/run_loop.h" 15 #include "base/run_loop.h"
14 #include "base/thread_task_runner_handle.h" 16 #include "base/thread_task_runner_handle.h"
15 #include "chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_st ream_reader.h"
16 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" 17 #include "chrome/browser/chromeos/fileapi/file_system_backend.h"
17 #include "content/public/test/test_browser_thread_bundle.h" 18 #include "content/public/test/test_browser_thread_bundle.h"
18 #include "net/base/io_buffer.h" 19 #include "net/base/io_buffer.h"
19 #include "net/base/net_errors.h" 20 #include "net/base/net_errors.h"
20 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
21 22
22 namespace chromeos { 23 namespace chromeos {
23 namespace file_system_provider { 24 namespace file_system_provider {
24 namespace { 25 namespace {
25 26
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 protected: 86 protected:
86 FileSystemProviderBufferingFileStreamReaderTest() {} 87 FileSystemProviderBufferingFileStreamReaderTest() {}
87 ~FileSystemProviderBufferingFileStreamReaderTest() override {} 88 ~FileSystemProviderBufferingFileStreamReaderTest() override {}
88 89
89 content::TestBrowserThreadBundle thread_bundle_; 90 content::TestBrowserThreadBundle thread_bundle_;
90 }; 91 };
91 92
92 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read) { 93 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read) {
93 std::vector<int> inner_read_log; 94 std::vector<int> inner_read_log;
94 BufferingFileStreamReader reader( 95 BufferingFileStreamReader reader(
95 scoped_ptr<storage::FileStreamReader>( 96 std::unique_ptr<storage::FileStreamReader>(
96 new FakeFileStreamReader(&inner_read_log, net::OK)), 97 new FakeFileStreamReader(&inner_read_log, net::OK)),
97 kPreloadingBufferLength, 98 kPreloadingBufferLength, kFileSize);
98 kFileSize);
99 99
100 // For the first read, the internal file stream reader is fired, as there is 100 // For the first read, the internal file stream reader is fired, as there is
101 // no data in the preloading buffer. 101 // no data in the preloading buffer.
102 { 102 {
103 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 103 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
104 std::vector<int> read_log; 104 std::vector<int> read_log;
105 const int result = reader.Read( 105 const int result = reader.Read(
106 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log)); 106 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log));
107 base::RunLoop().RunUntilIdle(); 107 base::RunLoop().RunUntilIdle();
108 108
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 ASSERT_EQ(1u, inner_read_log.size()); 159 ASSERT_EQ(1u, inner_read_log.size());
160 EXPECT_EQ(kPreloadingBufferLength, inner_read_log[0]); 160 EXPECT_EQ(kPreloadingBufferLength, inner_read_log[0]);
161 ASSERT_EQ(1u, read_log.size()); 161 ASSERT_EQ(1u, read_log.size());
162 EXPECT_EQ(kChunkSize, read_log[0]); 162 EXPECT_EQ(kChunkSize, read_log[0]);
163 } 163 }
164 } 164 }
165 165
166 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_Directly) { 166 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_Directly) {
167 std::vector<int> inner_read_log; 167 std::vector<int> inner_read_log;
168 BufferingFileStreamReader reader( 168 BufferingFileStreamReader reader(
169 scoped_ptr<storage::FileStreamReader>( 169 std::unique_ptr<storage::FileStreamReader>(
170 new FakeFileStreamReader(&inner_read_log, net::OK)), 170 new FakeFileStreamReader(&inner_read_log, net::OK)),
171 kPreloadingBufferLength, 171 kPreloadingBufferLength, kFileSize);
172 kFileSize);
173 172
174 // First read couple of bytes, so the internal buffer is filled out. 173 // First read couple of bytes, so the internal buffer is filled out.
175 { 174 {
176 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 175 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
177 std::vector<int> read_log; 176 std::vector<int> read_log;
178 const int result = reader.Read( 177 const int result = reader.Read(
179 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log)); 178 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log));
180 base::RunLoop().RunUntilIdle(); 179 base::RunLoop().RunUntilIdle();
181 180
182 EXPECT_EQ(net::ERR_IO_PENDING, result); 181 EXPECT_EQ(net::ERR_IO_PENDING, result);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 EXPECT_EQ(read_bytes, inner_read_log[0]); 219 EXPECT_EQ(read_bytes, inner_read_log[0]);
221 ASSERT_EQ(1u, read_log.size()); 220 ASSERT_EQ(1u, read_log.size());
222 EXPECT_EQ(read_bytes, read_log[0]); 221 EXPECT_EQ(read_bytes, read_log[0]);
223 } 222 }
224 } 223 }
225 224
226 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, 225 TEST_F(FileSystemProviderBufferingFileStreamReaderTest,
227 Read_MoreThanBufferSize) { 226 Read_MoreThanBufferSize) {
228 std::vector<int> inner_read_log; 227 std::vector<int> inner_read_log;
229 BufferingFileStreamReader reader( 228 BufferingFileStreamReader reader(
230 scoped_ptr<storage::FileStreamReader>( 229 std::unique_ptr<storage::FileStreamReader>(
231 new FakeFileStreamReader(&inner_read_log, net::OK)), 230 new FakeFileStreamReader(&inner_read_log, net::OK)),
232 kPreloadingBufferLength, 231 kPreloadingBufferLength, kFileSize);
233 kFileSize);
234 // First read couple of bytes, so the internal buffer is filled out. 232 // First read couple of bytes, so the internal buffer is filled out.
235 { 233 {
236 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 234 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
237 std::vector<int> read_log; 235 std::vector<int> read_log;
238 const int result = reader.Read( 236 const int result = reader.Read(
239 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log)); 237 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log));
240 base::RunLoop().RunUntilIdle(); 238 base::RunLoop().RunUntilIdle();
241 239
242 EXPECT_EQ(net::ERR_IO_PENDING, result); 240 EXPECT_EQ(net::ERR_IO_PENDING, result);
243 ASSERT_EQ(1u, inner_read_log.size()); 241 ASSERT_EQ(1u, inner_read_log.size());
(...skipping 19 matching lines...) Expand all
263 EXPECT_EQ(0u, read_log.size()); 261 EXPECT_EQ(0u, read_log.size());
264 } 262 }
265 } 263 }
266 264
267 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, 265 TEST_F(FileSystemProviderBufferingFileStreamReaderTest,
268 Read_LessThanBufferSize) { 266 Read_LessThanBufferSize) {
269 std::vector<int> inner_read_log; 267 std::vector<int> inner_read_log;
270 const int total_bytes_to_read = 3; 268 const int total_bytes_to_read = 3;
271 ASSERT_LT(total_bytes_to_read, kPreloadingBufferLength); 269 ASSERT_LT(total_bytes_to_read, kPreloadingBufferLength);
272 BufferingFileStreamReader reader( 270 BufferingFileStreamReader reader(
273 scoped_ptr<storage::FileStreamReader>( 271 std::unique_ptr<storage::FileStreamReader>(
274 new FakeFileStreamReader(&inner_read_log, net::OK)), 272 new FakeFileStreamReader(&inner_read_log, net::OK)),
275 kPreloadingBufferLength, 273 kPreloadingBufferLength, total_bytes_to_read);
276 total_bytes_to_read);
277 274
278 // For the first read, the internal file stream reader is fired, as there is 275 // For the first read, the internal file stream reader is fired, as there is
279 // no data in the preloading buffer. 276 // no data in the preloading buffer.
280 const int read_bytes = 2; 277 const int read_bytes = 2;
281 ASSERT_LT(read_bytes, kPreloadingBufferLength); 278 ASSERT_LT(read_bytes, kPreloadingBufferLength);
282 ASSERT_LE(read_bytes, total_bytes_to_read); 279 ASSERT_LE(read_bytes, total_bytes_to_read);
283 280
284 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read_bytes)); 281 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read_bytes));
285 std::vector<int> read_log; 282 std::vector<int> read_log;
286 const int result = reader.Read( 283 const int result = reader.Read(
287 buffer.get(), read_bytes, base::Bind(&LogValue<int>, &read_log)); 284 buffer.get(), read_bytes, base::Bind(&LogValue<int>, &read_log));
288 base::RunLoop().RunUntilIdle(); 285 base::RunLoop().RunUntilIdle();
289 286
290 EXPECT_EQ(net::ERR_IO_PENDING, result); 287 EXPECT_EQ(net::ERR_IO_PENDING, result);
291 ASSERT_EQ(1u, inner_read_log.size()); 288 ASSERT_EQ(1u, inner_read_log.size());
292 EXPECT_EQ(total_bytes_to_read, inner_read_log[0]); 289 EXPECT_EQ(total_bytes_to_read, inner_read_log[0]);
293 ASSERT_EQ(1u, read_log.size()); 290 ASSERT_EQ(1u, read_log.size());
294 EXPECT_EQ(read_bytes, read_log[0]); 291 EXPECT_EQ(read_bytes, read_log[0]);
295 } 292 }
296 293
297 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, 294 TEST_F(FileSystemProviderBufferingFileStreamReaderTest,
298 Read_LessThanBufferSize_WithoutSpecifiedLength) { 295 Read_LessThanBufferSize_WithoutSpecifiedLength) {
299 std::vector<int> inner_read_log; 296 std::vector<int> inner_read_log;
300 BufferingFileStreamReader reader( 297 BufferingFileStreamReader reader(
301 scoped_ptr<storage::FileStreamReader>( 298 std::unique_ptr<storage::FileStreamReader>(
302 new FakeFileStreamReader(&inner_read_log, net::OK)), 299 new FakeFileStreamReader(&inner_read_log, net::OK)),
303 kPreloadingBufferLength, 300 kPreloadingBufferLength, storage::kMaximumLength);
304 storage::kMaximumLength);
305 301
306 // For the first read, the internal file stream reader is fired, as there is 302 // For the first read, the internal file stream reader is fired, as there is
307 // no data in the preloading buffer. 303 // no data in the preloading buffer.
308 const int read_bytes = 2; 304 const int read_bytes = 2;
309 ASSERT_LT(read_bytes, kPreloadingBufferLength); 305 ASSERT_LT(read_bytes, kPreloadingBufferLength);
310 306
311 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read_bytes)); 307 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read_bytes));
312 std::vector<int> read_log; 308 std::vector<int> read_log;
313 const int result = reader.Read( 309 const int result = reader.Read(
314 buffer.get(), read_bytes, base::Bind(&LogValue<int>, &read_log)); 310 buffer.get(), read_bytes, base::Bind(&LogValue<int>, &read_log));
315 base::RunLoop().RunUntilIdle(); 311 base::RunLoop().RunUntilIdle();
316 312
317 EXPECT_EQ(net::ERR_IO_PENDING, result); 313 EXPECT_EQ(net::ERR_IO_PENDING, result);
318 ASSERT_EQ(1u, inner_read_log.size()); 314 ASSERT_EQ(1u, inner_read_log.size());
319 EXPECT_EQ(kPreloadingBufferLength, inner_read_log[0]); 315 EXPECT_EQ(kPreloadingBufferLength, inner_read_log[0]);
320 ASSERT_EQ(1u, read_log.size()); 316 ASSERT_EQ(1u, read_log.size());
321 EXPECT_EQ(read_bytes, read_log[0]); 317 EXPECT_EQ(read_bytes, read_log[0]);
322 } 318 }
323 319
324 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_WithError) { 320 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, Read_WithError) {
325 std::vector<int> inner_read_log; 321 std::vector<int> inner_read_log;
326 BufferingFileStreamReader reader( 322 BufferingFileStreamReader reader(
327 scoped_ptr<storage::FileStreamReader>( 323 std::unique_ptr<storage::FileStreamReader>(
328 new FakeFileStreamReader(&inner_read_log, net::ERR_ACCESS_DENIED)), 324 new FakeFileStreamReader(&inner_read_log, net::ERR_ACCESS_DENIED)),
329 kPreloadingBufferLength, 325 kPreloadingBufferLength, kFileSize);
330 kFileSize);
331 326
332 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize)); 327 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kChunkSize));
333 std::vector<int> read_log; 328 std::vector<int> read_log;
334 const int result = reader.Read( 329 const int result = reader.Read(
335 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log)); 330 buffer.get(), kChunkSize, base::Bind(&LogValue<int>, &read_log));
336 base::RunLoop().RunUntilIdle(); 331 base::RunLoop().RunUntilIdle();
337 332
338 EXPECT_EQ(net::ERR_IO_PENDING, result); 333 EXPECT_EQ(net::ERR_IO_PENDING, result);
339 ASSERT_EQ(1u, inner_read_log.size()); 334 ASSERT_EQ(1u, inner_read_log.size());
340 EXPECT_EQ(kPreloadingBufferLength, inner_read_log[0]); 335 EXPECT_EQ(kPreloadingBufferLength, inner_read_log[0]);
341 ASSERT_EQ(1u, read_log.size()); 336 ASSERT_EQ(1u, read_log.size());
342 EXPECT_EQ(net::ERR_ACCESS_DENIED, read_log[0]); 337 EXPECT_EQ(net::ERR_ACCESS_DENIED, read_log[0]);
343 } 338 }
344 339
345 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, GetLength) { 340 TEST_F(FileSystemProviderBufferingFileStreamReaderTest, GetLength) {
346 BufferingFileStreamReader reader(scoped_ptr<storage::FileStreamReader>( 341 BufferingFileStreamReader reader(std::unique_ptr<storage::FileStreamReader>(
347 new FakeFileStreamReader(NULL, net::OK)), 342 new FakeFileStreamReader(NULL, net::OK)),
348 kPreloadingBufferLength, 343 kPreloadingBufferLength, kFileSize);
349 kFileSize);
350 344
351 std::vector<int64_t> get_length_log; 345 std::vector<int64_t> get_length_log;
352 const int64_t result = 346 const int64_t result =
353 reader.GetLength(base::Bind(&LogValue<int64_t>, &get_length_log)); 347 reader.GetLength(base::Bind(&LogValue<int64_t>, &get_length_log));
354 base::RunLoop().RunUntilIdle(); 348 base::RunLoop().RunUntilIdle();
355 349
356 EXPECT_EQ(net::ERR_IO_PENDING, result); 350 EXPECT_EQ(net::ERR_IO_PENDING, result);
357 ASSERT_EQ(1u, get_length_log.size()); 351 ASSERT_EQ(1u, get_length_log.size());
358 EXPECT_EQ(kFileSize, get_length_log[0]); 352 EXPECT_EQ(kFileSize, get_length_log[0]);
359 } 353 }
360 354
361 } // namespace file_system_provider 355 } // namespace file_system_provider
362 } // namespace chromeos 356 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698