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

Side by Side Diff: net/base/elements_upload_data_stream_unittest.cc

Issue 2227503003: Add net log to UploadDataStream. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: typo Created 4 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
« no previous file with comments | « net/base/elements_upload_data_stream.cc ('k') | net/base/upload_data_stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/base/elements_upload_data_stream.h" 5 #include "net/base/elements_upload_data_stream.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 const base::Time& time, 147 const base::Time& time,
148 bool error_expected); 148 bool error_expected);
149 149
150 base::ScopedTempDir temp_dir_; 150 base::ScopedTempDir temp_dir_;
151 std::vector<std::unique_ptr<UploadElementReader>> element_readers_; 151 std::vector<std::unique_ptr<UploadElementReader>> element_readers_;
152 }; 152 };
153 153
154 TEST_F(ElementsUploadDataStreamTest, EmptyUploadData) { 154 TEST_F(ElementsUploadDataStreamTest, EmptyUploadData) {
155 std::unique_ptr<UploadDataStream> stream( 155 std::unique_ptr<UploadDataStream> stream(
156 new ElementsUploadDataStream(std::move(element_readers_), 0)); 156 new ElementsUploadDataStream(std::move(element_readers_), 0));
157 ASSERT_THAT(stream->Init(CompletionCallback()), IsOk()); 157 ASSERT_THAT(stream->Init(CompletionCallback(), BoundNetLog()), IsOk());
158 EXPECT_TRUE(stream->IsInMemory()); 158 EXPECT_TRUE(stream->IsInMemory());
159 EXPECT_EQ(0U, stream->size()); 159 EXPECT_EQ(0U, stream->size());
160 EXPECT_EQ(0U, stream->position()); 160 EXPECT_EQ(0U, stream->position());
161 EXPECT_TRUE(stream->IsEOF()); 161 EXPECT_TRUE(stream->IsEOF());
162 } 162 }
163 163
164 TEST_F(ElementsUploadDataStreamTest, ConsumeAllBytes) { 164 TEST_F(ElementsUploadDataStreamTest, ConsumeAllBytes) {
165 element_readers_.push_back( 165 element_readers_.push_back(
166 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize))); 166 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize)));
167 std::unique_ptr<UploadDataStream> stream( 167 std::unique_ptr<UploadDataStream> stream(
168 new ElementsUploadDataStream(std::move(element_readers_), 0)); 168 new ElementsUploadDataStream(std::move(element_readers_), 0));
169 ASSERT_THAT(stream->Init(CompletionCallback()), IsOk()); 169 ASSERT_THAT(stream->Init(CompletionCallback(), BoundNetLog()), IsOk());
170 EXPECT_TRUE(stream->IsInMemory()); 170 EXPECT_TRUE(stream->IsInMemory());
171 EXPECT_EQ(kTestDataSize, stream->size()); 171 EXPECT_EQ(kTestDataSize, stream->size());
172 EXPECT_EQ(0U, stream->position()); 172 EXPECT_EQ(0U, stream->position());
173 EXPECT_FALSE(stream->IsEOF()); 173 EXPECT_FALSE(stream->IsEOF());
174 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 174 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
175 while (!stream->IsEOF()) { 175 while (!stream->IsEOF()) {
176 int bytes_read = 176 int bytes_read =
177 stream->Read(buf.get(), kTestBufferSize, CompletionCallback()); 177 stream->Read(buf.get(), kTestBufferSize, CompletionCallback());
178 ASSERT_LE(0, bytes_read); // Not an error. 178 ASSERT_LE(0, bytes_read); // Not an error.
179 } 179 }
180 EXPECT_EQ(kTestDataSize, stream->position()); 180 EXPECT_EQ(kTestDataSize, stream->position());
181 ASSERT_TRUE(stream->IsEOF()); 181 ASSERT_TRUE(stream->IsEOF());
182 } 182 }
183 183
184 TEST_F(ElementsUploadDataStreamTest, File) { 184 TEST_F(ElementsUploadDataStreamTest, File) {
185 base::FilePath temp_file_path; 185 base::FilePath temp_file_path;
186 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 186 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
187 &temp_file_path)); 187 &temp_file_path));
188 ASSERT_EQ(static_cast<int>(kTestDataSize), 188 ASSERT_EQ(static_cast<int>(kTestDataSize),
189 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 189 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
190 190
191 element_readers_.push_back(base::WrapUnique(new UploadFileElementReader( 191 element_readers_.push_back(base::WrapUnique(new UploadFileElementReader(
192 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, 192 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0,
193 std::numeric_limits<uint64_t>::max(), base::Time()))); 193 std::numeric_limits<uint64_t>::max(), base::Time())));
194 194
195 TestCompletionCallback init_callback; 195 TestCompletionCallback init_callback;
196 std::unique_ptr<UploadDataStream> stream( 196 std::unique_ptr<UploadDataStream> stream(
197 new ElementsUploadDataStream(std::move(element_readers_), 0)); 197 new ElementsUploadDataStream(std::move(element_readers_), 0));
198 ASSERT_THAT(stream->Init(init_callback.callback()), IsError(ERR_IO_PENDING)); 198 ASSERT_THAT(stream->Init(init_callback.callback(), BoundNetLog()),
199 IsError(ERR_IO_PENDING));
199 ASSERT_THAT(init_callback.WaitForResult(), IsOk()); 200 ASSERT_THAT(init_callback.WaitForResult(), IsOk());
200 EXPECT_FALSE(stream->IsInMemory()); 201 EXPECT_FALSE(stream->IsInMemory());
201 EXPECT_EQ(kTestDataSize, stream->size()); 202 EXPECT_EQ(kTestDataSize, stream->size());
202 EXPECT_EQ(0U, stream->position()); 203 EXPECT_EQ(0U, stream->position());
203 EXPECT_FALSE(stream->IsEOF()); 204 EXPECT_FALSE(stream->IsEOF());
204 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 205 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
205 while (!stream->IsEOF()) { 206 while (!stream->IsEOF()) {
206 TestCompletionCallback read_callback; 207 TestCompletionCallback read_callback;
207 ASSERT_EQ( 208 ASSERT_EQ(
208 ERR_IO_PENDING, 209 ERR_IO_PENDING,
(...skipping 15 matching lines...) Expand all
224 UploadFileElementReader::ScopedOverridingContentLengthForTests 225 UploadFileElementReader::ScopedOverridingContentLengthForTests
225 overriding_content_length(kFakeSize); 226 overriding_content_length(kFakeSize);
226 227
227 element_readers_.push_back(base::WrapUnique(new UploadFileElementReader( 228 element_readers_.push_back(base::WrapUnique(new UploadFileElementReader(
228 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, 229 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0,
229 std::numeric_limits<uint64_t>::max(), base::Time()))); 230 std::numeric_limits<uint64_t>::max(), base::Time())));
230 231
231 TestCompletionCallback init_callback; 232 TestCompletionCallback init_callback;
232 std::unique_ptr<UploadDataStream> stream( 233 std::unique_ptr<UploadDataStream> stream(
233 new ElementsUploadDataStream(std::move(element_readers_), 0)); 234 new ElementsUploadDataStream(std::move(element_readers_), 0));
234 ASSERT_THAT(stream->Init(init_callback.callback()), IsError(ERR_IO_PENDING)); 235 ASSERT_THAT(stream->Init(init_callback.callback(), BoundNetLog()),
236 IsError(ERR_IO_PENDING));
235 ASSERT_THAT(init_callback.WaitForResult(), IsOk()); 237 ASSERT_THAT(init_callback.WaitForResult(), IsOk());
236 EXPECT_FALSE(stream->IsInMemory()); 238 EXPECT_FALSE(stream->IsInMemory());
237 EXPECT_EQ(kFakeSize, stream->size()); 239 EXPECT_EQ(kFakeSize, stream->size());
238 EXPECT_EQ(0U, stream->position()); 240 EXPECT_EQ(0U, stream->position());
239 241
240 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 242 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
241 EXPECT_FALSE(stream->IsEOF()); 243 EXPECT_FALSE(stream->IsEOF());
242 244
243 TestCompletionCallback read_callback; 245 TestCompletionCallback read_callback;
244 ASSERT_EQ(ERR_IO_PENDING, 246 ASSERT_EQ(ERR_IO_PENDING,
(...skipping 20 matching lines...) Expand all
265 element_readers_.push_back(std::move(reader)); 267 element_readers_.push_back(std::move(reader));
266 268
267 // This element is ignored because of the error from the previous reader. 269 // This element is ignored because of the error from the previous reader.
268 element_readers_.push_back( 270 element_readers_.push_back(
269 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize))); 271 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize)));
270 272
271 std::unique_ptr<UploadDataStream> stream( 273 std::unique_ptr<UploadDataStream> stream(
272 new ElementsUploadDataStream(std::move(element_readers_), 0)); 274 new ElementsUploadDataStream(std::move(element_readers_), 0));
273 275
274 // Run Init(). 276 // Run Init().
275 ASSERT_THAT(stream->Init(CompletionCallback()), IsOk()); 277 ASSERT_THAT(stream->Init(CompletionCallback(), BoundNetLog()), IsOk());
276 EXPECT_EQ(kTestDataSize*2, stream->size()); 278 EXPECT_EQ(kTestDataSize*2, stream->size());
277 EXPECT_EQ(0U, stream->position()); 279 EXPECT_EQ(0U, stream->position());
278 EXPECT_FALSE(stream->IsEOF()); 280 EXPECT_FALSE(stream->IsEOF());
279 281
280 // Prepare a buffer filled with non-zero data. 282 // Prepare a buffer filled with non-zero data.
281 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 283 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
282 std::fill_n(buf->data(), kTestBufferSize, -1); 284 std::fill_n(buf->data(), kTestBufferSize, -1);
283 285
284 // Read() results in success even when the reader returns error. 286 // Read() results in success even when the reader returns error.
285 EXPECT_EQ(ERR_FAILED, 287 EXPECT_EQ(ERR_FAILED,
(...skipping 15 matching lines...) Expand all
301 303
302 // This element is ignored because of the error from the previous reader. 304 // This element is ignored because of the error from the previous reader.
303 element_readers_.push_back( 305 element_readers_.push_back(
304 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize))); 306 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize)));
305 307
306 std::unique_ptr<UploadDataStream> stream( 308 std::unique_ptr<UploadDataStream> stream(
307 new ElementsUploadDataStream(std::move(element_readers_), 0)); 309 new ElementsUploadDataStream(std::move(element_readers_), 0));
308 310
309 // Run Init(). 311 // Run Init().
310 TestCompletionCallback init_callback; 312 TestCompletionCallback init_callback;
311 ASSERT_THAT(stream->Init(init_callback.callback()), IsError(ERR_IO_PENDING)); 313 ASSERT_THAT(stream->Init(init_callback.callback(), BoundNetLog()),
314 IsError(ERR_IO_PENDING));
312 EXPECT_THAT(init_callback.WaitForResult(), IsOk()); 315 EXPECT_THAT(init_callback.WaitForResult(), IsOk());
313 EXPECT_EQ(kTestDataSize*2, stream->size()); 316 EXPECT_EQ(kTestDataSize*2, stream->size());
314 EXPECT_EQ(0U, stream->position()); 317 EXPECT_EQ(0U, stream->position());
315 EXPECT_FALSE(stream->IsEOF()); 318 EXPECT_FALSE(stream->IsEOF());
316 319
317 // Prepare a buffer filled with non-zero data. 320 // Prepare a buffer filled with non-zero data.
318 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 321 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
319 std::fill_n(buf->data(), kTestBufferSize, -1); 322 std::fill_n(buf->data(), kTestBufferSize, -1);
320 323
321 // Read() results in success even when the reader returns error. 324 // Read() results in success even when the reader returns error.
(...skipping 21 matching lines...) Expand all
343 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 346 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path,
344 kFileRangeOffset, kFileRangeLength, base::Time()))); 347 kFileRangeOffset, kFileRangeLength, base::Time())));
345 348
346 element_readers_.push_back( 349 element_readers_.push_back(
347 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize))); 350 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize)));
348 351
349 const uint64_t kStreamSize = kTestDataSize + kFileRangeLength; 352 const uint64_t kStreamSize = kTestDataSize + kFileRangeLength;
350 TestCompletionCallback init_callback; 353 TestCompletionCallback init_callback;
351 std::unique_ptr<UploadDataStream> stream( 354 std::unique_ptr<UploadDataStream> stream(
352 new ElementsUploadDataStream(std::move(element_readers_), 0)); 355 new ElementsUploadDataStream(std::move(element_readers_), 0));
353 ASSERT_THAT(stream->Init(init_callback.callback()), IsError(ERR_IO_PENDING)); 356 ASSERT_THAT(stream->Init(init_callback.callback(), BoundNetLog()),
357 IsError(ERR_IO_PENDING));
354 ASSERT_THAT(init_callback.WaitForResult(), IsOk()); 358 ASSERT_THAT(init_callback.WaitForResult(), IsOk());
355 EXPECT_FALSE(stream->IsInMemory()); 359 EXPECT_FALSE(stream->IsInMemory());
356 EXPECT_EQ(kStreamSize, stream->size()); 360 EXPECT_EQ(kStreamSize, stream->size());
357 EXPECT_EQ(0U, stream->position()); 361 EXPECT_EQ(0U, stream->position());
358 EXPECT_FALSE(stream->IsEOF()); 362 EXPECT_FALSE(stream->IsEOF());
359 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 363 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
360 while (!stream->IsEOF()) { 364 while (!stream->IsEOF()) {
361 TestCompletionCallback read_callback; 365 TestCompletionCallback read_callback;
362 const int result = 366 const int result =
363 stream->Read(buf.get(), kTestBufferSize, read_callback.callback()); 367 stream->Read(buf.get(), kTestBufferSize, read_callback.callback());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 std::unique_ptr<MockUploadElementReader> reader5( 399 std::unique_ptr<MockUploadElementReader> reader5(
396 new MockUploadElementReader(kTestDataSize, true)); 400 new MockUploadElementReader(kTestDataSize, true));
397 EXPECT_CALL(*reader5, Init(_)).WillOnce(Return(OK)); 401 EXPECT_CALL(*reader5, Init(_)).WillOnce(Return(OK));
398 element_readers_.push_back(std::move(reader5)); 402 element_readers_.push_back(std::move(reader5));
399 403
400 std::unique_ptr<UploadDataStream> stream( 404 std::unique_ptr<UploadDataStream> stream(
401 new ElementsUploadDataStream(std::move(element_readers_), 0)); 405 new ElementsUploadDataStream(std::move(element_readers_), 0));
402 406
403 // Run Init(). 407 // Run Init().
404 TestCompletionCallback callback; 408 TestCompletionCallback callback;
405 ASSERT_THAT(stream->Init(callback.callback()), IsError(ERR_IO_PENDING)); 409 ASSERT_THAT(stream->Init(callback.callback(), BoundNetLog()),
410 IsError(ERR_IO_PENDING));
406 EXPECT_THAT(callback.WaitForResult(), IsOk()); 411 EXPECT_THAT(callback.WaitForResult(), IsOk());
407 } 412 }
408 413
409 // Init() of a reader fails asynchronously. 414 // Init() of a reader fails asynchronously.
410 TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureAsync) { 415 TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureAsync) {
411 // Create UploadDataStream with a mock reader. 416 // Create UploadDataStream with a mock reader.
412 std::unique_ptr<MockUploadElementReader> reader( 417 std::unique_ptr<MockUploadElementReader> reader(
413 new MockUploadElementReader(kTestDataSize, false)); 418 new MockUploadElementReader(kTestDataSize, false));
414 reader->SetAsyncInitExpectation(ERR_FAILED); 419 reader->SetAsyncInitExpectation(ERR_FAILED);
415 element_readers_.push_back(std::move(reader)); 420 element_readers_.push_back(std::move(reader));
416 421
417 std::unique_ptr<UploadDataStream> stream( 422 std::unique_ptr<UploadDataStream> stream(
418 new ElementsUploadDataStream(std::move(element_readers_), 0)); 423 new ElementsUploadDataStream(std::move(element_readers_), 0));
419 424
420 // Run Init(). 425 // Run Init().
421 TestCompletionCallback callback; 426 TestCompletionCallback callback;
422 ASSERT_THAT(stream->Init(callback.callback()), IsError(ERR_IO_PENDING)); 427 ASSERT_THAT(stream->Init(callback.callback(), BoundNetLog()),
428 IsError(ERR_IO_PENDING));
423 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_FAILED)); 429 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_FAILED));
424 } 430 }
425 431
426 // Init() of a reader fails synchronously. 432 // Init() of a reader fails synchronously.
427 TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureSync) { 433 TEST_F(ElementsUploadDataStreamTest, InitAsyncFailureSync) {
428 // Create UploadDataStream with mock readers. 434 // Create UploadDataStream with mock readers.
429 std::unique_ptr<MockUploadElementReader> reader( 435 std::unique_ptr<MockUploadElementReader> reader(
430 new MockUploadElementReader(kTestDataSize, false)); 436 new MockUploadElementReader(kTestDataSize, false));
431 reader->SetAsyncInitExpectation(OK); 437 reader->SetAsyncInitExpectation(OK);
432 element_readers_.push_back(std::move(reader)); 438 element_readers_.push_back(std::move(reader));
433 439
434 std::unique_ptr<MockUploadElementReader> reader2( 440 std::unique_ptr<MockUploadElementReader> reader2(
435 new MockUploadElementReader(kTestDataSize, true)); 441 new MockUploadElementReader(kTestDataSize, true));
436 EXPECT_CALL(*reader2, Init(_)).WillOnce(Return(ERR_FAILED)); 442 EXPECT_CALL(*reader2, Init(_)).WillOnce(Return(ERR_FAILED));
437 element_readers_.push_back(std::move(reader2)); 443 element_readers_.push_back(std::move(reader2));
438 444
439 std::unique_ptr<UploadDataStream> stream( 445 std::unique_ptr<UploadDataStream> stream(
440 new ElementsUploadDataStream(std::move(element_readers_), 0)); 446 new ElementsUploadDataStream(std::move(element_readers_), 0));
441 447
442 // Run Init(). 448 // Run Init().
443 TestCompletionCallback callback; 449 TestCompletionCallback callback;
444 ASSERT_THAT(stream->Init(callback.callback()), IsError(ERR_IO_PENDING)); 450 ASSERT_THAT(stream->Init(callback.callback(), BoundNetLog()),
451 IsError(ERR_IO_PENDING));
445 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_FAILED)); 452 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_FAILED));
446 } 453 }
447 454
448 // Read with a buffer whose size is same as the data. 455 // Read with a buffer whose size is same as the data.
449 TEST_F(ElementsUploadDataStreamTest, ReadAsyncWithExactSizeBuffer) { 456 TEST_F(ElementsUploadDataStreamTest, ReadAsyncWithExactSizeBuffer) {
450 element_readers_.push_back( 457 element_readers_.push_back(
451 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize))); 458 base::WrapUnique(new UploadBytesElementReader(kTestData, kTestDataSize)));
452 std::unique_ptr<UploadDataStream> stream( 459 std::unique_ptr<UploadDataStream> stream(
453 new ElementsUploadDataStream(std::move(element_readers_), 0)); 460 new ElementsUploadDataStream(std::move(element_readers_), 0));
454 461
455 ASSERT_THAT(stream->Init(CompletionCallback()), IsOk()); 462 ASSERT_THAT(stream->Init(CompletionCallback(), BoundNetLog()), IsOk());
456 EXPECT_TRUE(stream->IsInMemory()); 463 EXPECT_TRUE(stream->IsInMemory());
457 EXPECT_EQ(kTestDataSize, stream->size()); 464 EXPECT_EQ(kTestDataSize, stream->size());
458 EXPECT_EQ(0U, stream->position()); 465 EXPECT_EQ(0U, stream->position());
459 EXPECT_FALSE(stream->IsEOF()); 466 EXPECT_FALSE(stream->IsEOF());
460 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestDataSize); 467 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestDataSize);
461 int bytes_read = stream->Read(buf.get(), kTestDataSize, CompletionCallback()); 468 int bytes_read = stream->Read(buf.get(), kTestDataSize, CompletionCallback());
462 ASSERT_EQ(static_cast<int>(kTestDataSize), bytes_read); // Not an error. 469 ASSERT_EQ(static_cast<int>(kTestDataSize), bytes_read); // Not an error.
463 EXPECT_EQ(kTestDataSize, stream->position()); 470 EXPECT_EQ(kTestDataSize, stream->position());
464 ASSERT_TRUE(stream->IsEOF()); 471 ASSERT_TRUE(stream->IsEOF());
465 } 472 }
(...skipping 23 matching lines...) Expand all
489 new MockUploadElementReader(kTestDataSize, false)); 496 new MockUploadElementReader(kTestDataSize, false));
490 reader4->SetAsyncInitExpectation(OK); 497 reader4->SetAsyncInitExpectation(OK);
491 reader4->SetReadExpectation(kTestDataSize); 498 reader4->SetReadExpectation(kTestDataSize);
492 element_readers_.push_back(std::move(reader4)); 499 element_readers_.push_back(std::move(reader4));
493 500
494 std::unique_ptr<UploadDataStream> stream( 501 std::unique_ptr<UploadDataStream> stream(
495 new ElementsUploadDataStream(std::move(element_readers_), 0)); 502 new ElementsUploadDataStream(std::move(element_readers_), 0));
496 503
497 // Run Init(). 504 // Run Init().
498 TestCompletionCallback init_callback; 505 TestCompletionCallback init_callback;
499 EXPECT_THAT(stream->Init(init_callback.callback()), IsError(ERR_IO_PENDING)); 506 EXPECT_THAT(stream->Init(init_callback.callback(), BoundNetLog()),
507 IsError(ERR_IO_PENDING));
500 EXPECT_THAT(init_callback.WaitForResult(), IsOk()); 508 EXPECT_THAT(init_callback.WaitForResult(), IsOk());
501 509
502 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 510 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
503 511
504 // Consume the first element. 512 // Consume the first element.
505 TestCompletionCallback read_callback1; 513 TestCompletionCallback read_callback1;
506 EXPECT_EQ(static_cast<int>(kTestDataSize), 514 EXPECT_EQ(static_cast<int>(kTestDataSize),
507 stream->Read(buf.get(), kTestDataSize, read_callback1.callback())); 515 stream->Read(buf.get(), kTestDataSize, read_callback1.callback()));
508 base::RunLoop().RunUntilIdle(); 516 base::RunLoop().RunUntilIdle();
509 EXPECT_FALSE(read_callback1.have_result()); 517 EXPECT_FALSE(read_callback1.have_result());
(...skipping 19 matching lines...) Expand all
529 bool error_expected) { 537 bool error_expected) {
530 // Don't use element_readers_ here, as this function is called twice, and 538 // Don't use element_readers_ here, as this function is called twice, and
531 // reusing element_readers_ is wrong. 539 // reusing element_readers_ is wrong.
532 std::vector<std::unique_ptr<UploadElementReader>> element_readers; 540 std::vector<std::unique_ptr<UploadElementReader>> element_readers;
533 element_readers.push_back(base::WrapUnique(new UploadFileElementReader( 541 element_readers.push_back(base::WrapUnique(new UploadFileElementReader(
534 base::ThreadTaskRunnerHandle::Get().get(), file_path, 1, 2, time))); 542 base::ThreadTaskRunnerHandle::Get().get(), file_path, 1, 2, time)));
535 543
536 TestCompletionCallback init_callback; 544 TestCompletionCallback init_callback;
537 std::unique_ptr<UploadDataStream> stream( 545 std::unique_ptr<UploadDataStream> stream(
538 new ElementsUploadDataStream(std::move(element_readers), 0)); 546 new ElementsUploadDataStream(std::move(element_readers), 0));
539 ASSERT_THAT(stream->Init(init_callback.callback()), IsError(ERR_IO_PENDING)); 547 ASSERT_THAT(stream->Init(init_callback.callback(), BoundNetLog()),
548 IsError(ERR_IO_PENDING));
540 int error_code = init_callback.WaitForResult(); 549 int error_code = init_callback.WaitForResult();
541 if (error_expected) 550 if (error_expected)
542 ASSERT_THAT(error_code, IsError(ERR_UPLOAD_FILE_CHANGED)); 551 ASSERT_THAT(error_code, IsError(ERR_UPLOAD_FILE_CHANGED));
543 else 552 else
544 ASSERT_THAT(error_code, IsOk()); 553 ASSERT_THAT(error_code, IsOk());
545 } 554 }
546 555
547 TEST_F(ElementsUploadDataStreamTest, FileChanged) { 556 TEST_F(ElementsUploadDataStreamTest, FileChanged) {
548 base::FilePath temp_file_path; 557 base::FilePath temp_file_path;
549 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 558 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
(...skipping 27 matching lines...) Expand all
577 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, 586 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0,
578 std::numeric_limits<uint64_t>::max(), base::Time()))); 587 std::numeric_limits<uint64_t>::max(), base::Time())));
579 std::unique_ptr<UploadDataStream> stream( 588 std::unique_ptr<UploadDataStream> stream(
580 new ElementsUploadDataStream(std::move(element_readers_), 0)); 589 new ElementsUploadDataStream(std::move(element_readers_), 0));
581 590
582 std::string expected_data(kTestData, kTestData + kTestDataSize); 591 std::string expected_data(kTestData, kTestData + kTestDataSize);
583 expected_data += expected_data; 592 expected_data += expected_data;
584 593
585 // Call Init(). 594 // Call Init().
586 TestCompletionCallback init_callback1; 595 TestCompletionCallback init_callback1;
587 ASSERT_THAT(stream->Init(init_callback1.callback()), IsError(ERR_IO_PENDING)); 596 ASSERT_THAT(stream->Init(init_callback1.callback(), BoundNetLog()),
597 IsError(ERR_IO_PENDING));
588 ASSERT_THAT(init_callback1.WaitForResult(), IsOk()); 598 ASSERT_THAT(init_callback1.WaitForResult(), IsOk());
589 EXPECT_FALSE(stream->IsEOF()); 599 EXPECT_FALSE(stream->IsEOF());
590 EXPECT_EQ(kTestDataSize*2, stream->size()); 600 EXPECT_EQ(kTestDataSize*2, stream->size());
591 601
592 // Read. 602 // Read.
593 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get())); 603 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
594 EXPECT_TRUE(stream->IsEOF()); 604 EXPECT_TRUE(stream->IsEOF());
595 605
596 // Call Init() again to reset. 606 // Call Init() again to reset.
597 TestCompletionCallback init_callback2; 607 TestCompletionCallback init_callback2;
598 ASSERT_THAT(stream->Init(init_callback2.callback()), IsError(ERR_IO_PENDING)); 608 ASSERT_THAT(stream->Init(init_callback2.callback(), BoundNetLog()),
609 IsError(ERR_IO_PENDING));
599 ASSERT_THAT(init_callback2.WaitForResult(), IsOk()); 610 ASSERT_THAT(init_callback2.WaitForResult(), IsOk());
600 EXPECT_FALSE(stream->IsEOF()); 611 EXPECT_FALSE(stream->IsEOF());
601 EXPECT_EQ(kTestDataSize*2, stream->size()); 612 EXPECT_EQ(kTestDataSize*2, stream->size());
602 613
603 // Read again. 614 // Read again.
604 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get())); 615 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
605 EXPECT_TRUE(stream->IsEOF()); 616 EXPECT_TRUE(stream->IsEOF());
606 } 617 }
607 618
608 TEST_F(ElementsUploadDataStreamTest, MultipleInitAsync) { 619 TEST_F(ElementsUploadDataStreamTest, MultipleInitAsync) {
(...skipping 10 matching lines...) Expand all
619 element_readers_.push_back(base::WrapUnique(new UploadFileElementReader( 630 element_readers_.push_back(base::WrapUnique(new UploadFileElementReader(
620 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0, 631 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, 0,
621 std::numeric_limits<uint64_t>::max(), base::Time()))); 632 std::numeric_limits<uint64_t>::max(), base::Time())));
622 std::unique_ptr<UploadDataStream> stream( 633 std::unique_ptr<UploadDataStream> stream(
623 new ElementsUploadDataStream(std::move(element_readers_), 0)); 634 new ElementsUploadDataStream(std::move(element_readers_), 0));
624 635
625 std::string expected_data(kTestData, kTestData + kTestDataSize); 636 std::string expected_data(kTestData, kTestData + kTestDataSize);
626 expected_data += expected_data; 637 expected_data += expected_data;
627 638
628 // Call Init(). 639 // Call Init().
629 ASSERT_THAT(stream->Init(test_callback.callback()), IsError(ERR_IO_PENDING)); 640 ASSERT_THAT(stream->Init(test_callback.callback(), BoundNetLog()),
641 IsError(ERR_IO_PENDING));
630 EXPECT_THAT(test_callback.WaitForResult(), IsOk()); 642 EXPECT_THAT(test_callback.WaitForResult(), IsOk());
631 EXPECT_FALSE(stream->IsEOF()); 643 EXPECT_FALSE(stream->IsEOF());
632 EXPECT_EQ(kTestDataSize*2, stream->size()); 644 EXPECT_EQ(kTestDataSize*2, stream->size());
633 645
634 // Read. 646 // Read.
635 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get())); 647 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
636 EXPECT_TRUE(stream->IsEOF()); 648 EXPECT_TRUE(stream->IsEOF());
637 649
638 // Call Init() again to reset. 650 // Call Init() again to reset.
639 ASSERT_THAT(stream->Init(test_callback.callback()), IsError(ERR_IO_PENDING)); 651 ASSERT_THAT(stream->Init(test_callback.callback(), BoundNetLog()),
652 IsError(ERR_IO_PENDING));
640 EXPECT_THAT(test_callback.WaitForResult(), IsOk()); 653 EXPECT_THAT(test_callback.WaitForResult(), IsOk());
641 EXPECT_FALSE(stream->IsEOF()); 654 EXPECT_FALSE(stream->IsEOF());
642 EXPECT_EQ(kTestDataSize*2, stream->size()); 655 EXPECT_EQ(kTestDataSize*2, stream->size());
643 656
644 // Read again. 657 // Read again.
645 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get())); 658 EXPECT_EQ(expected_data, ReadFromUploadDataStream(stream.get()));
646 EXPECT_TRUE(stream->IsEOF()); 659 EXPECT_TRUE(stream->IsEOF());
647 } 660 }
648 661
649 TEST_F(ElementsUploadDataStreamTest, InitToReset) { 662 TEST_F(ElementsUploadDataStreamTest, InitToReset) {
(...skipping 11 matching lines...) Expand all
661 std::numeric_limits<uint64_t>::max(), base::Time()))); 674 std::numeric_limits<uint64_t>::max(), base::Time())));
662 std::unique_ptr<UploadDataStream> stream( 675 std::unique_ptr<UploadDataStream> stream(
663 new ElementsUploadDataStream(std::move(element_readers_), 0)); 676 new ElementsUploadDataStream(std::move(element_readers_), 0));
664 677
665 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); 678 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
666 expected_data.insert(expected_data.end(), kTestData, 679 expected_data.insert(expected_data.end(), kTestData,
667 kTestData + kTestDataSize); 680 kTestData + kTestDataSize);
668 681
669 // Call Init(). 682 // Call Init().
670 TestCompletionCallback init_callback1; 683 TestCompletionCallback init_callback1;
671 ASSERT_THAT(stream->Init(init_callback1.callback()), IsError(ERR_IO_PENDING)); 684 ASSERT_THAT(stream->Init(init_callback1.callback(), BoundNetLog()),
685 IsError(ERR_IO_PENDING));
672 EXPECT_THAT(init_callback1.WaitForResult(), IsOk()); 686 EXPECT_THAT(init_callback1.WaitForResult(), IsOk());
673 EXPECT_FALSE(stream->IsEOF()); 687 EXPECT_FALSE(stream->IsEOF());
674 EXPECT_EQ(kTestDataSize*2, stream->size()); 688 EXPECT_EQ(kTestDataSize*2, stream->size());
675 689
676 // Read some. 690 // Read some.
677 TestCompletionCallback read_callback1; 691 TestCompletionCallback read_callback1;
678 std::vector<char> buf(kTestDataSize + kTestDataSize/2); 692 std::vector<char> buf(kTestDataSize + kTestDataSize/2);
679 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); 693 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]);
680 EXPECT_EQ( 694 EXPECT_EQ(
681 ERR_IO_PENDING, 695 ERR_IO_PENDING,
682 stream->Read(wrapped_buffer.get(), buf.size(), 696 stream->Read(wrapped_buffer.get(), buf.size(),
683 read_callback1.callback())); 697 read_callback1.callback()));
684 EXPECT_EQ(static_cast<int>(buf.size()), read_callback1.WaitForResult()); 698 EXPECT_EQ(static_cast<int>(buf.size()), read_callback1.WaitForResult());
685 EXPECT_EQ(buf.size(), stream->position()); 699 EXPECT_EQ(buf.size(), stream->position());
686 700
687 // Call Init to reset the state. 701 // Call Init to reset the state.
688 TestCompletionCallback init_callback2; 702 TestCompletionCallback init_callback2;
689 ASSERT_THAT(stream->Init(init_callback2.callback()), IsError(ERR_IO_PENDING)); 703 ASSERT_THAT(stream->Init(init_callback2.callback(), BoundNetLog()),
704 IsError(ERR_IO_PENDING));
690 EXPECT_THAT(init_callback2.WaitForResult(), IsOk()); 705 EXPECT_THAT(init_callback2.WaitForResult(), IsOk());
691 EXPECT_FALSE(stream->IsEOF()); 706 EXPECT_FALSE(stream->IsEOF());
692 EXPECT_EQ(kTestDataSize*2, stream->size()); 707 EXPECT_EQ(kTestDataSize*2, stream->size());
693 708
694 // Read. 709 // Read.
695 TestCompletionCallback read_callback2; 710 TestCompletionCallback read_callback2;
696 std::vector<char> buf2(kTestDataSize*2); 711 std::vector<char> buf2(kTestDataSize*2);
697 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]); 712 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
698 EXPECT_EQ(ERR_IO_PENDING, 713 EXPECT_EQ(ERR_IO_PENDING,
699 stream->Read( 714 stream->Read(
(...skipping 17 matching lines...) Expand all
717 std::numeric_limits<uint64_t>::max(), base::Time()))); 732 std::numeric_limits<uint64_t>::max(), base::Time())));
718 std::unique_ptr<UploadDataStream> stream( 733 std::unique_ptr<UploadDataStream> stream(
719 new ElementsUploadDataStream(std::move(element_readers_), 0)); 734 new ElementsUploadDataStream(std::move(element_readers_), 0));
720 735
721 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); 736 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
722 expected_data.insert(expected_data.end(), kTestData, 737 expected_data.insert(expected_data.end(), kTestData,
723 kTestData + kTestDataSize); 738 kTestData + kTestDataSize);
724 739
725 // Start Init. 740 // Start Init.
726 TestCompletionCallback init_callback1; 741 TestCompletionCallback init_callback1;
727 EXPECT_THAT(stream->Init(init_callback1.callback()), IsError(ERR_IO_PENDING)); 742 EXPECT_THAT(stream->Init(init_callback1.callback(), BoundNetLog()),
743 IsError(ERR_IO_PENDING));
728 744
729 // Call Init again to cancel the previous init. 745 // Call Init again to cancel the previous init.
730 TestCompletionCallback init_callback2; 746 TestCompletionCallback init_callback2;
731 EXPECT_THAT(stream->Init(init_callback2.callback()), IsError(ERR_IO_PENDING)); 747 EXPECT_THAT(stream->Init(init_callback2.callback(), BoundNetLog()),
748 IsError(ERR_IO_PENDING));
732 EXPECT_THAT(init_callback2.WaitForResult(), IsOk()); 749 EXPECT_THAT(init_callback2.WaitForResult(), IsOk());
733 EXPECT_FALSE(stream->IsEOF()); 750 EXPECT_FALSE(stream->IsEOF());
734 EXPECT_EQ(kTestDataSize*2, stream->size()); 751 EXPECT_EQ(kTestDataSize*2, stream->size());
735 752
736 // Read. 753 // Read.
737 TestCompletionCallback read_callback2; 754 TestCompletionCallback read_callback2;
738 std::vector<char> buf2(kTestDataSize*2); 755 std::vector<char> buf2(kTestDataSize*2);
739 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]); 756 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
740 EXPECT_EQ(ERR_IO_PENDING, 757 EXPECT_EQ(ERR_IO_PENDING,
741 stream->Read( 758 stream->Read(
(...skipping 21 matching lines...) Expand all
763 std::numeric_limits<uint64_t>::max(), base::Time()))); 780 std::numeric_limits<uint64_t>::max(), base::Time())));
764 std::unique_ptr<UploadDataStream> stream( 781 std::unique_ptr<UploadDataStream> stream(
765 new ElementsUploadDataStream(std::move(element_readers_), 0)); 782 new ElementsUploadDataStream(std::move(element_readers_), 0));
766 783
767 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); 784 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
768 expected_data.insert(expected_data.end(), kTestData, 785 expected_data.insert(expected_data.end(), kTestData,
769 kTestData + kTestDataSize); 786 kTestData + kTestDataSize);
770 787
771 // Call Init(). 788 // Call Init().
772 TestCompletionCallback init_callback1; 789 TestCompletionCallback init_callback1;
773 ASSERT_THAT(stream->Init(init_callback1.callback()), IsError(ERR_IO_PENDING)); 790 ASSERT_THAT(stream->Init(init_callback1.callback(), BoundNetLog()),
791 IsError(ERR_IO_PENDING));
774 EXPECT_THAT(init_callback1.WaitForResult(), IsOk()); 792 EXPECT_THAT(init_callback1.WaitForResult(), IsOk());
775 EXPECT_FALSE(stream->IsEOF()); 793 EXPECT_FALSE(stream->IsEOF());
776 EXPECT_EQ(kTestDataSize*2, stream->size()); 794 EXPECT_EQ(kTestDataSize*2, stream->size());
777 795
778 // Start reading. 796 // Start reading.
779 TestCompletionCallback read_callback1; 797 TestCompletionCallback read_callback1;
780 std::vector<char> buf(kTestDataSize*2); 798 std::vector<char> buf(kTestDataSize*2);
781 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); 799 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]);
782 EXPECT_EQ( 800 EXPECT_EQ(
783 ERR_IO_PENDING, 801 ERR_IO_PENDING,
784 stream->Read(wrapped_buffer.get(), buf.size(), 802 stream->Read(wrapped_buffer.get(), buf.size(),
785 read_callback1.callback())); 803 read_callback1.callback()));
786 804
787 // Call Init to cancel the previous read. 805 // Call Init to cancel the previous read.
788 TestCompletionCallback init_callback2; 806 TestCompletionCallback init_callback2;
789 EXPECT_THAT(stream->Init(init_callback2.callback()), IsError(ERR_IO_PENDING)); 807 EXPECT_THAT(stream->Init(init_callback2.callback(), BoundNetLog()),
808 IsError(ERR_IO_PENDING));
790 EXPECT_THAT(init_callback2.WaitForResult(), IsOk()); 809 EXPECT_THAT(init_callback2.WaitForResult(), IsOk());
791 EXPECT_FALSE(stream->IsEOF()); 810 EXPECT_FALSE(stream->IsEOF());
792 EXPECT_EQ(kTestDataSize*2, stream->size()); 811 EXPECT_EQ(kTestDataSize*2, stream->size());
793 812
794 // Read. 813 // Read.
795 TestCompletionCallback read_callback2; 814 TestCompletionCallback read_callback2;
796 std::vector<char> buf2(kTestDataSize*2); 815 std::vector<char> buf2(kTestDataSize*2);
797 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]); 816 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
798 EXPECT_EQ(ERR_IO_PENDING, 817 EXPECT_EQ(ERR_IO_PENDING,
799 stream->Read( 818 stream->Read(
800 wrapped_buffer2.get(), buf2.size(), read_callback2.callback())); 819 wrapped_buffer2.get(), buf2.size(), read_callback2.callback()));
801 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult()); 820 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult());
802 EXPECT_EQ(expected_data, buf2); 821 EXPECT_EQ(expected_data, buf2);
803 EXPECT_TRUE(stream->IsEOF()); 822 EXPECT_TRUE(stream->IsEOF());
804 823
805 // Make sure callbacks are not called for cancelled operations. 824 // Make sure callbacks are not called for cancelled operations.
806 EXPECT_FALSE(read_callback1.have_result()); 825 EXPECT_FALSE(read_callback1.have_result());
807 } 826 }
808 827
809 } // namespace net 828 } // namespace net
OLDNEW
« no previous file with comments | « net/base/elements_upload_data_stream.cc ('k') | net/base/upload_data_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698