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

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

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 (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/upload_data_stream.h" 5 #include "net/base/upload_data_stream.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 init_result_(OK), 63 init_result_(OK),
64 read_result_(OK) {} 64 read_result_(OK) {}
65 65
66 virtual ~MockUploadElementReader() {} 66 virtual ~MockUploadElementReader() {}
67 67
68 // UploadElementReader overrides. 68 // UploadElementReader overrides.
69 MOCK_METHOD1(Init, int(const CompletionCallback& callback)); 69 MOCK_METHOD1(Init, int(const CompletionCallback& callback));
70 virtual uint64 GetContentLength() const OVERRIDE { return content_length_; } 70 virtual uint64 GetContentLength() const OVERRIDE { return content_length_; }
71 virtual uint64 BytesRemaining() const OVERRIDE { return bytes_remaining_; } 71 virtual uint64 BytesRemaining() const OVERRIDE { return bytes_remaining_; }
72 virtual bool IsInMemory() const OVERRIDE { return is_in_memory_; } 72 virtual bool IsInMemory() const OVERRIDE { return is_in_memory_; }
73 MOCK_METHOD3(Read, int(IOBuffer* buf, 73 MOCK_METHOD3(Read,
74 int buf_length, 74 int(IOBuffer* buf,
75 const CompletionCallback& callback)); 75 int buf_length,
76 const CompletionCallback& callback));
76 77
77 // Sets expectation to return the specified result from Init() asynchronously. 78 // Sets expectation to return the specified result from Init() asynchronously.
78 void SetAsyncInitExpectation(int result) { 79 void SetAsyncInitExpectation(int result) {
79 init_result_ = result; 80 init_result_ = result;
80 EXPECT_CALL(*this, Init(_)) 81 EXPECT_CALL(*this, Init(_))
81 .WillOnce(DoAll(Invoke(this, &MockUploadElementReader::OnInit), 82 .WillOnce(DoAll(Invoke(this, &MockUploadElementReader::OnInit),
82 Return(ERR_IO_PENDING))); 83 Return(ERR_IO_PENDING)));
83 } 84 }
84 85
85 // Sets expectation to return the specified result from Read(). 86 // Sets expectation to return the specified result from Read().
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 TEST_F(UploadDataStreamTest, EmptyUploadData) { 145 TEST_F(UploadDataStreamTest, EmptyUploadData) {
145 UploadDataStream stream(element_readers_.Pass(), 0); 146 UploadDataStream stream(element_readers_.Pass(), 0);
146 ASSERT_EQ(OK, stream.Init(CompletionCallback())); 147 ASSERT_EQ(OK, stream.Init(CompletionCallback()));
147 EXPECT_TRUE(stream.IsInMemory()); 148 EXPECT_TRUE(stream.IsInMemory());
148 EXPECT_EQ(0U, stream.size()); 149 EXPECT_EQ(0U, stream.size());
149 EXPECT_EQ(0U, stream.position()); 150 EXPECT_EQ(0U, stream.position());
150 EXPECT_TRUE(stream.IsEOF()); 151 EXPECT_TRUE(stream.IsEOF());
151 } 152 }
152 153
153 TEST_F(UploadDataStreamTest, ConsumeAllBytes) { 154 TEST_F(UploadDataStreamTest, ConsumeAllBytes) {
154 element_readers_.push_back(new UploadBytesElementReader( 155 element_readers_.push_back(
155 kTestData, kTestDataSize)); 156 new UploadBytesElementReader(kTestData, kTestDataSize));
156 UploadDataStream stream(element_readers_.Pass(), 0); 157 UploadDataStream stream(element_readers_.Pass(), 0);
157 ASSERT_EQ(OK, stream.Init(CompletionCallback())); 158 ASSERT_EQ(OK, stream.Init(CompletionCallback()));
158 EXPECT_TRUE(stream.IsInMemory()); 159 EXPECT_TRUE(stream.IsInMemory());
159 EXPECT_EQ(kTestDataSize, stream.size()); 160 EXPECT_EQ(kTestDataSize, stream.size());
160 EXPECT_EQ(0U, stream.position()); 161 EXPECT_EQ(0U, stream.position());
161 EXPECT_FALSE(stream.IsEOF()); 162 EXPECT_FALSE(stream.IsEOF());
162 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 163 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
163 while (!stream.IsEOF()) { 164 while (!stream.IsEOF()) {
164 int bytes_read = 165 int bytes_read =
165 stream.Read(buf.get(), kTestBufferSize, CompletionCallback()); 166 stream.Read(buf.get(), kTestBufferSize, CompletionCallback());
166 ASSERT_LE(0, bytes_read); // Not an error. 167 ASSERT_LE(0, bytes_read); // Not an error.
167 } 168 }
168 EXPECT_EQ(kTestDataSize, stream.position()); 169 EXPECT_EQ(kTestDataSize, stream.position());
169 ASSERT_TRUE(stream.IsEOF()); 170 ASSERT_TRUE(stream.IsEOF());
170 } 171 }
171 172
172 TEST_F(UploadDataStreamTest, File) { 173 TEST_F(UploadDataStreamTest, File) {
173 base::FilePath temp_file_path; 174 base::FilePath temp_file_path;
174 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 175 ASSERT_TRUE(
175 &temp_file_path)); 176 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
176 ASSERT_EQ(static_cast<int>(kTestDataSize), 177 ASSERT_EQ(static_cast<int>(kTestDataSize),
177 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 178 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
178 179
179 element_readers_.push_back( 180 element_readers_.push_back(
180 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 181 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
181 temp_file_path, 182 temp_file_path,
182 0, 183 0,
183 kuint64max, 184 kuint64max,
184 base::Time())); 185 base::Time()));
185 186
(...skipping 12 matching lines...) Expand all
198 ERR_IO_PENDING, 199 ERR_IO_PENDING,
199 stream.Read(buf.get(), kTestBufferSize, read_callback.callback())); 200 stream.Read(buf.get(), kTestBufferSize, read_callback.callback()));
200 ASSERT_LE(0, read_callback.WaitForResult()); // Not an error. 201 ASSERT_LE(0, read_callback.WaitForResult()); // Not an error.
201 } 202 }
202 EXPECT_EQ(kTestDataSize, stream.position()); 203 EXPECT_EQ(kTestDataSize, stream.position());
203 ASSERT_TRUE(stream.IsEOF()); 204 ASSERT_TRUE(stream.IsEOF());
204 } 205 }
205 206
206 TEST_F(UploadDataStreamTest, FileSmallerThanLength) { 207 TEST_F(UploadDataStreamTest, FileSmallerThanLength) {
207 base::FilePath temp_file_path; 208 base::FilePath temp_file_path;
208 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 209 ASSERT_TRUE(
209 &temp_file_path)); 210 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
210 ASSERT_EQ(static_cast<int>(kTestDataSize), 211 ASSERT_EQ(static_cast<int>(kTestDataSize),
211 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 212 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
212 const uint64 kFakeSize = kTestDataSize*2; 213 const uint64 kFakeSize = kTestDataSize * 2;
213 214
214 UploadFileElementReader::ScopedOverridingContentLengthForTests 215 UploadFileElementReader::ScopedOverridingContentLengthForTests
215 overriding_content_length(kFakeSize); 216 overriding_content_length(kFakeSize);
216 217
217 element_readers_.push_back( 218 element_readers_.push_back(
218 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 219 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
219 temp_file_path, 220 temp_file_path,
220 0, 221 0,
221 kuint64max, 222 kuint64max,
222 base::Time())); 223 base::Time()));
(...skipping 26 matching lines...) Expand all
249 250
250 TEST_F(UploadDataStreamTest, ReadErrorSync) { 251 TEST_F(UploadDataStreamTest, ReadErrorSync) {
251 // This element cannot be read. 252 // This element cannot be read.
252 MockUploadElementReader* reader = 253 MockUploadElementReader* reader =
253 new MockUploadElementReader(kTestDataSize, true); 254 new MockUploadElementReader(kTestDataSize, true);
254 EXPECT_CALL(*reader, Init(_)).WillOnce(Return(OK)); 255 EXPECT_CALL(*reader, Init(_)).WillOnce(Return(OK));
255 reader->SetReadExpectation(ERR_FAILED); 256 reader->SetReadExpectation(ERR_FAILED);
256 element_readers_.push_back(reader); 257 element_readers_.push_back(reader);
257 258
258 // This element is ignored because of the error from the previous reader. 259 // This element is ignored because of the error from the previous reader.
259 element_readers_.push_back(new UploadBytesElementReader( 260 element_readers_.push_back(
260 kTestData, kTestDataSize)); 261 new UploadBytesElementReader(kTestData, kTestDataSize));
261 262
262 UploadDataStream stream(element_readers_.Pass(), 0); 263 UploadDataStream stream(element_readers_.Pass(), 0);
263 264
264 // Run Init(). 265 // Run Init().
265 ASSERT_EQ(OK, stream.Init(CompletionCallback())); 266 ASSERT_EQ(OK, stream.Init(CompletionCallback()));
266 EXPECT_EQ(kTestDataSize*2, stream.size()); 267 EXPECT_EQ(kTestDataSize * 2, stream.size());
267 EXPECT_EQ(0U, stream.position()); 268 EXPECT_EQ(0U, stream.position());
268 EXPECT_FALSE(stream.IsEOF()); 269 EXPECT_FALSE(stream.IsEOF());
269 270
270 // Prepare a buffer filled with non-zero data. 271 // Prepare a buffer filled with non-zero data.
271 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 272 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
272 std::fill_n(buf->data(), kTestBufferSize, -1); 273 std::fill_n(buf->data(), kTestBufferSize, -1);
273 274
274 // Read() results in success even when the reader returns error. 275 // Read() results in success even when the reader returns error.
275 EXPECT_EQ(static_cast<int>(kTestDataSize * 2), 276 EXPECT_EQ(static_cast<int>(kTestDataSize * 2),
276 stream.Read(buf.get(), kTestBufferSize, CompletionCallback())); 277 stream.Read(buf.get(), kTestBufferSize, CompletionCallback()));
277 EXPECT_EQ(kTestDataSize * 2, stream.position()); 278 EXPECT_EQ(kTestDataSize * 2, stream.position());
278 EXPECT_TRUE(stream.IsEOF()); 279 EXPECT_TRUE(stream.IsEOF());
279 280
280 // The buffer is filled with zero. 281 // The buffer is filled with zero.
281 EXPECT_EQ(static_cast<int>(kTestDataSize*2), 282 EXPECT_EQ(static_cast<int>(kTestDataSize * 2),
282 std::count(buf->data(), buf->data() + kTestBufferSize, 0)); 283 std::count(buf->data(), buf->data() + kTestBufferSize, 0));
283 } 284 }
284 285
285 TEST_F(UploadDataStreamTest, ReadErrorAsync) { 286 TEST_F(UploadDataStreamTest, ReadErrorAsync) {
286 // This element cannot be read. 287 // This element cannot be read.
287 MockUploadElementReader* reader = 288 MockUploadElementReader* reader =
288 new MockUploadElementReader(kTestDataSize, false); 289 new MockUploadElementReader(kTestDataSize, false);
289 reader->SetAsyncInitExpectation(OK); 290 reader->SetAsyncInitExpectation(OK);
290 reader->SetReadExpectation(ERR_FAILED); 291 reader->SetReadExpectation(ERR_FAILED);
291 element_readers_.push_back(reader); 292 element_readers_.push_back(reader);
292 293
293 // This element is ignored because of the error from the previous reader. 294 // This element is ignored because of the error from the previous reader.
294 element_readers_.push_back(new UploadBytesElementReader( 295 element_readers_.push_back(
295 kTestData, kTestDataSize)); 296 new UploadBytesElementReader(kTestData, kTestDataSize));
296 297
297 UploadDataStream stream(element_readers_.Pass(), 0); 298 UploadDataStream stream(element_readers_.Pass(), 0);
298 299
299 // Run Init(). 300 // Run Init().
300 TestCompletionCallback init_callback; 301 TestCompletionCallback init_callback;
301 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback())); 302 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
302 EXPECT_EQ(OK, init_callback.WaitForResult()); 303 EXPECT_EQ(OK, init_callback.WaitForResult());
303 EXPECT_EQ(kTestDataSize*2, stream.size()); 304 EXPECT_EQ(kTestDataSize * 2, stream.size());
304 EXPECT_EQ(0U, stream.position()); 305 EXPECT_EQ(0U, stream.position());
305 EXPECT_FALSE(stream.IsEOF()); 306 EXPECT_FALSE(stream.IsEOF());
306 307
307 // Prepare a buffer filled with non-zero data. 308 // Prepare a buffer filled with non-zero data.
308 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 309 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
309 std::fill_n(buf->data(), kTestBufferSize, -1); 310 std::fill_n(buf->data(), kTestBufferSize, -1);
310 311
311 // Read() results in success even when the reader returns error. 312 // Read() results in success even when the reader returns error.
312 TestCompletionCallback read_callback; 313 TestCompletionCallback read_callback;
313 ASSERT_EQ(ERR_IO_PENDING, 314 ASSERT_EQ(ERR_IO_PENDING,
314 stream.Read(buf.get(), kTestBufferSize, read_callback.callback())); 315 stream.Read(buf.get(), kTestBufferSize, read_callback.callback()));
315 EXPECT_EQ(static_cast<int>(kTestDataSize * 2), read_callback.WaitForResult()); 316 EXPECT_EQ(static_cast<int>(kTestDataSize * 2), read_callback.WaitForResult());
316 EXPECT_EQ(kTestDataSize*2, stream.position()); 317 EXPECT_EQ(kTestDataSize * 2, stream.position());
317 EXPECT_TRUE(stream.IsEOF()); 318 EXPECT_TRUE(stream.IsEOF());
318 319
319 // The buffer is filled with zero. 320 // The buffer is filled with zero.
320 EXPECT_EQ(static_cast<int>(kTestDataSize*2), 321 EXPECT_EQ(static_cast<int>(kTestDataSize * 2),
321 std::count(buf->data(), buf->data() + kTestBufferSize, 0)); 322 std::count(buf->data(), buf->data() + kTestBufferSize, 0));
322 } 323 }
323 324
324 TEST_F(UploadDataStreamTest, FileAndBytes) { 325 TEST_F(UploadDataStreamTest, FileAndBytes) {
325 base::FilePath temp_file_path; 326 base::FilePath temp_file_path;
326 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 327 ASSERT_TRUE(
327 &temp_file_path)); 328 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
328 ASSERT_EQ(static_cast<int>(kTestDataSize), 329 ASSERT_EQ(static_cast<int>(kTestDataSize),
329 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 330 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
330 331
331 const uint64 kFileRangeOffset = 1; 332 const uint64 kFileRangeOffset = 1;
332 const uint64 kFileRangeLength = 4; 333 const uint64 kFileRangeLength = 4;
333 element_readers_.push_back( 334 element_readers_.push_back(
334 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 335 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
335 temp_file_path, 336 temp_file_path,
336 kFileRangeOffset, 337 kFileRangeOffset,
337 kFileRangeLength, 338 kFileRangeLength,
338 base::Time())); 339 base::Time()));
339 340
340 element_readers_.push_back(new UploadBytesElementReader( 341 element_readers_.push_back(
341 kTestData, kTestDataSize)); 342 new UploadBytesElementReader(kTestData, kTestDataSize));
342 343
343 const uint64 kStreamSize = kTestDataSize + kFileRangeLength; 344 const uint64 kStreamSize = kTestDataSize + kFileRangeLength;
344 TestCompletionCallback init_callback; 345 TestCompletionCallback init_callback;
345 UploadDataStream stream(element_readers_.Pass(), 0); 346 UploadDataStream stream(element_readers_.Pass(), 0);
346 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback())); 347 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
347 ASSERT_EQ(OK, init_callback.WaitForResult()); 348 ASSERT_EQ(OK, init_callback.WaitForResult());
348 EXPECT_FALSE(stream.IsInMemory()); 349 EXPECT_FALSE(stream.IsInMemory());
349 EXPECT_EQ(kStreamSize, stream.size()); 350 EXPECT_EQ(kStreamSize, stream.size());
350 EXPECT_EQ(0U, stream.position()); 351 EXPECT_EQ(0U, stream.position());
351 EXPECT_FALSE(stream.IsEOF()); 352 EXPECT_FALSE(stream.IsEOF());
352 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 353 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
353 while (!stream.IsEOF()) { 354 while (!stream.IsEOF()) {
354 TestCompletionCallback read_callback; 355 TestCompletionCallback read_callback;
355 const int result = 356 const int result =
356 stream.Read(buf.get(), kTestBufferSize, read_callback.callback()); 357 stream.Read(buf.get(), kTestBufferSize, read_callback.callback());
357 const int bytes_read = 358 const int bytes_read =
358 result != ERR_IO_PENDING ? result : read_callback.WaitForResult(); 359 result != ERR_IO_PENDING ? result : read_callback.WaitForResult();
359 ASSERT_LE(0, bytes_read); // Not an error. 360 ASSERT_LE(0, bytes_read); // Not an error.
360 } 361 }
361 EXPECT_EQ(kStreamSize, stream.position()); 362 EXPECT_EQ(kStreamSize, stream.position());
362 ASSERT_TRUE(stream.IsEOF()); 363 ASSERT_TRUE(stream.IsEOF());
363 } 364 }
364 365
365 TEST_F(UploadDataStreamTest, Chunk) { 366 TEST_F(UploadDataStreamTest, Chunk) {
366 const uint64 kStreamSize = kTestDataSize*2; 367 const uint64 kStreamSize = kTestDataSize * 2;
367 UploadDataStream stream(UploadDataStream::CHUNKED, 0); 368 UploadDataStream stream(UploadDataStream::CHUNKED, 0);
368 stream.AppendChunk(kTestData, kTestDataSize, false); 369 stream.AppendChunk(kTestData, kTestDataSize, false);
369 stream.AppendChunk(kTestData, kTestDataSize, true); 370 stream.AppendChunk(kTestData, kTestDataSize, true);
370 371
371 ASSERT_EQ(OK, stream.Init(CompletionCallback())); 372 ASSERT_EQ(OK, stream.Init(CompletionCallback()));
372 EXPECT_FALSE(stream.IsInMemory()); 373 EXPECT_FALSE(stream.IsInMemory());
373 EXPECT_EQ(0U, stream.size()); // Content-Length is 0 for chunked data. 374 EXPECT_EQ(0U, stream.size()); // Content-Length is 0 for chunked data.
374 EXPECT_EQ(0U, stream.position()); 375 EXPECT_EQ(0U, stream.position());
375 EXPECT_FALSE(stream.IsEOF()); 376 EXPECT_FALSE(stream.IsEOF());
376 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 377 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 UploadDataStream stream(element_readers_.Pass(), 0); 450 UploadDataStream stream(element_readers_.Pass(), 0);
450 451
451 // Run Init(). 452 // Run Init().
452 TestCompletionCallback callback; 453 TestCompletionCallback callback;
453 ASSERT_EQ(ERR_IO_PENDING, stream.Init(callback.callback())); 454 ASSERT_EQ(ERR_IO_PENDING, stream.Init(callback.callback()));
454 EXPECT_EQ(ERR_FAILED, callback.WaitForResult()); 455 EXPECT_EQ(ERR_FAILED, callback.WaitForResult());
455 } 456 }
456 457
457 // Read with a buffer whose size is same as the data. 458 // Read with a buffer whose size is same as the data.
458 TEST_F(UploadDataStreamTest, ReadAsyncWithExactSizeBuffer) { 459 TEST_F(UploadDataStreamTest, ReadAsyncWithExactSizeBuffer) {
459 element_readers_.push_back(new UploadBytesElementReader( 460 element_readers_.push_back(
460 kTestData, kTestDataSize)); 461 new UploadBytesElementReader(kTestData, kTestDataSize));
461 UploadDataStream stream(element_readers_.Pass(), 0); 462 UploadDataStream stream(element_readers_.Pass(), 0);
462 463
463 ASSERT_EQ(OK, stream.Init(CompletionCallback())); 464 ASSERT_EQ(OK, stream.Init(CompletionCallback()));
464 EXPECT_TRUE(stream.IsInMemory()); 465 EXPECT_TRUE(stream.IsInMemory());
465 EXPECT_EQ(kTestDataSize, stream.size()); 466 EXPECT_EQ(kTestDataSize, stream.size());
466 EXPECT_EQ(0U, stream.position()); 467 EXPECT_EQ(0U, stream.position());
467 EXPECT_FALSE(stream.IsEOF()); 468 EXPECT_FALSE(stream.IsEOF());
468 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestDataSize); 469 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestDataSize);
469 int bytes_read = stream.Read(buf.get(), kTestDataSize, CompletionCallback()); 470 int bytes_read = stream.Read(buf.get(), kTestDataSize, CompletionCallback());
470 ASSERT_EQ(static_cast<int>(kTestDataSize), bytes_read); // Not an error. 471 ASSERT_EQ(static_cast<int>(kTestDataSize), bytes_read); // Not an error.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback())); 543 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback.callback()));
543 int error_code = init_callback.WaitForResult(); 544 int error_code = init_callback.WaitForResult();
544 if (error_expected) 545 if (error_expected)
545 ASSERT_EQ(ERR_UPLOAD_FILE_CHANGED, error_code); 546 ASSERT_EQ(ERR_UPLOAD_FILE_CHANGED, error_code);
546 else 547 else
547 ASSERT_EQ(OK, error_code); 548 ASSERT_EQ(OK, error_code);
548 } 549 }
549 550
550 TEST_F(UploadDataStreamTest, FileChanged) { 551 TEST_F(UploadDataStreamTest, FileChanged) {
551 base::FilePath temp_file_path; 552 base::FilePath temp_file_path;
552 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 553 ASSERT_TRUE(
553 &temp_file_path)); 554 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
554 ASSERT_EQ(static_cast<int>(kTestDataSize), 555 ASSERT_EQ(static_cast<int>(kTestDataSize),
555 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 556 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
556 557
557 base::File::Info file_info; 558 base::File::Info file_info;
558 ASSERT_TRUE(base::GetFileInfo(temp_file_path, &file_info)); 559 ASSERT_TRUE(base::GetFileInfo(temp_file_path, &file_info));
559 560
560 // Test file not changed. 561 // Test file not changed.
561 FileChangedHelper(temp_file_path, file_info.last_modified, false); 562 FileChangedHelper(temp_file_path, file_info.last_modified, false);
562 563
563 // Test file changed. 564 // Test file changed.
564 FileChangedHelper(temp_file_path, 565 FileChangedHelper(temp_file_path,
565 file_info.last_modified - base::TimeDelta::FromSeconds(1), 566 file_info.last_modified - base::TimeDelta::FromSeconds(1),
566 true); 567 true);
567 } 568 }
568 569
569 TEST_F(UploadDataStreamTest, MultipleInit) { 570 TEST_F(UploadDataStreamTest, MultipleInit) {
570 base::FilePath temp_file_path; 571 base::FilePath temp_file_path;
571 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 572 ASSERT_TRUE(
572 &temp_file_path)); 573 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
573 ASSERT_EQ(static_cast<int>(kTestDataSize), 574 ASSERT_EQ(static_cast<int>(kTestDataSize),
574 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 575 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
575 576
576 // Prepare data. 577 // Prepare data.
577 element_readers_.push_back(new UploadBytesElementReader( 578 element_readers_.push_back(
578 kTestData, kTestDataSize)); 579 new UploadBytesElementReader(kTestData, kTestDataSize));
579 element_readers_.push_back( 580 element_readers_.push_back(
580 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 581 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
581 temp_file_path, 582 temp_file_path,
582 0, 583 0,
583 kuint64max, 584 kuint64max,
584 base::Time())); 585 base::Time()));
585 UploadDataStream stream(element_readers_.Pass(), 0); 586 UploadDataStream stream(element_readers_.Pass(), 0);
586 587
587 std::string expected_data(kTestData, kTestData + kTestDataSize); 588 std::string expected_data(kTestData, kTestData + kTestDataSize);
588 expected_data += expected_data; 589 expected_data += expected_data;
589 590
590 // Call Init(). 591 // Call Init().
591 TestCompletionCallback init_callback1; 592 TestCompletionCallback init_callback1;
592 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback())); 593 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
593 ASSERT_EQ(OK, init_callback1.WaitForResult()); 594 ASSERT_EQ(OK, init_callback1.WaitForResult());
594 EXPECT_FALSE(stream.IsEOF()); 595 EXPECT_FALSE(stream.IsEOF());
595 EXPECT_EQ(kTestDataSize*2, stream.size()); 596 EXPECT_EQ(kTestDataSize * 2, stream.size());
596 597
597 // Read. 598 // Read.
598 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream)); 599 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
599 EXPECT_TRUE(stream.IsEOF()); 600 EXPECT_TRUE(stream.IsEOF());
600 601
601 // Call Init() again to reset. 602 // Call Init() again to reset.
602 TestCompletionCallback init_callback2; 603 TestCompletionCallback init_callback2;
603 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback())); 604 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
604 ASSERT_EQ(OK, init_callback2.WaitForResult()); 605 ASSERT_EQ(OK, init_callback2.WaitForResult());
605 EXPECT_FALSE(stream.IsEOF()); 606 EXPECT_FALSE(stream.IsEOF());
606 EXPECT_EQ(kTestDataSize*2, stream.size()); 607 EXPECT_EQ(kTestDataSize * 2, stream.size());
607 608
608 // Read again. 609 // Read again.
609 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream)); 610 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
610 EXPECT_TRUE(stream.IsEOF()); 611 EXPECT_TRUE(stream.IsEOF());
611 } 612 }
612 613
613 TEST_F(UploadDataStreamTest, MultipleInitAsync) { 614 TEST_F(UploadDataStreamTest, MultipleInitAsync) {
614 base::FilePath temp_file_path; 615 base::FilePath temp_file_path;
615 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 616 ASSERT_TRUE(
616 &temp_file_path)); 617 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
617 ASSERT_EQ(static_cast<int>(kTestDataSize), 618 ASSERT_EQ(static_cast<int>(kTestDataSize),
618 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 619 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
619 TestCompletionCallback test_callback; 620 TestCompletionCallback test_callback;
620 621
621 // Prepare data. 622 // Prepare data.
622 element_readers_.push_back(new UploadBytesElementReader( 623 element_readers_.push_back(
623 kTestData, kTestDataSize)); 624 new UploadBytesElementReader(kTestData, kTestDataSize));
624 element_readers_.push_back( 625 element_readers_.push_back(
625 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 626 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
626 temp_file_path, 627 temp_file_path,
627 0, 628 0,
628 kuint64max, 629 kuint64max,
629 base::Time())); 630 base::Time()));
630 UploadDataStream stream(element_readers_.Pass(), 0); 631 UploadDataStream stream(element_readers_.Pass(), 0);
631 632
632 std::string expected_data(kTestData, kTestData + kTestDataSize); 633 std::string expected_data(kTestData, kTestData + kTestDataSize);
633 expected_data += expected_data; 634 expected_data += expected_data;
634 635
635 // Call Init(). 636 // Call Init().
636 ASSERT_EQ(ERR_IO_PENDING, stream.Init(test_callback.callback())); 637 ASSERT_EQ(ERR_IO_PENDING, stream.Init(test_callback.callback()));
637 EXPECT_EQ(OK, test_callback.WaitForResult()); 638 EXPECT_EQ(OK, test_callback.WaitForResult());
638 EXPECT_FALSE(stream.IsEOF()); 639 EXPECT_FALSE(stream.IsEOF());
639 EXPECT_EQ(kTestDataSize*2, stream.size()); 640 EXPECT_EQ(kTestDataSize * 2, stream.size());
640 641
641 // Read. 642 // Read.
642 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream)); 643 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
643 EXPECT_TRUE(stream.IsEOF()); 644 EXPECT_TRUE(stream.IsEOF());
644 645
645 // Call Init() again to reset. 646 // Call Init() again to reset.
646 ASSERT_EQ(ERR_IO_PENDING, stream.Init(test_callback.callback())); 647 ASSERT_EQ(ERR_IO_PENDING, stream.Init(test_callback.callback()));
647 EXPECT_EQ(OK, test_callback.WaitForResult()); 648 EXPECT_EQ(OK, test_callback.WaitForResult());
648 EXPECT_FALSE(stream.IsEOF()); 649 EXPECT_FALSE(stream.IsEOF());
649 EXPECT_EQ(kTestDataSize*2, stream.size()); 650 EXPECT_EQ(kTestDataSize * 2, stream.size());
650 651
651 // Read again. 652 // Read again.
652 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream)); 653 EXPECT_EQ(expected_data, ReadFromUploadDataStream(&stream));
653 EXPECT_TRUE(stream.IsEOF()); 654 EXPECT_TRUE(stream.IsEOF());
654 } 655 }
655 656
656 TEST_F(UploadDataStreamTest, InitToReset) { 657 TEST_F(UploadDataStreamTest, InitToReset) {
657 base::FilePath temp_file_path; 658 base::FilePath temp_file_path;
658 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 659 ASSERT_TRUE(
659 &temp_file_path)); 660 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
660 ASSERT_EQ(static_cast<int>(kTestDataSize), 661 ASSERT_EQ(static_cast<int>(kTestDataSize),
661 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 662 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
662 663
663 // Prepare data. 664 // Prepare data.
664 element_readers_.push_back(new UploadBytesElementReader( 665 element_readers_.push_back(
665 kTestData, kTestDataSize)); 666 new UploadBytesElementReader(kTestData, kTestDataSize));
666 element_readers_.push_back( 667 element_readers_.push_back(
667 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 668 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
668 temp_file_path, 669 temp_file_path,
669 0, 670 0,
670 kuint64max, 671 kuint64max,
671 base::Time())); 672 base::Time()));
672 UploadDataStream stream(element_readers_.Pass(), 0); 673 UploadDataStream stream(element_readers_.Pass(), 0);
673 674
674 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); 675 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
675 expected_data.insert(expected_data.end(), expected_data.begin(), 676 expected_data.insert(expected_data.end(),
677 expected_data.begin(),
676 expected_data.begin() + kTestDataSize); 678 expected_data.begin() + kTestDataSize);
677 679
678 // Call Init(). 680 // Call Init().
679 TestCompletionCallback init_callback1; 681 TestCompletionCallback init_callback1;
680 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback())); 682 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
681 EXPECT_EQ(OK, init_callback1.WaitForResult()); 683 EXPECT_EQ(OK, init_callback1.WaitForResult());
682 EXPECT_FALSE(stream.IsEOF()); 684 EXPECT_FALSE(stream.IsEOF());
683 EXPECT_EQ(kTestDataSize*2, stream.size()); 685 EXPECT_EQ(kTestDataSize * 2, stream.size());
684 686
685 // Read some. 687 // Read some.
686 TestCompletionCallback read_callback1; 688 TestCompletionCallback read_callback1;
687 std::vector<char> buf(kTestDataSize + kTestDataSize/2); 689 std::vector<char> buf(kTestDataSize + kTestDataSize / 2);
688 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); 690 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]);
689 EXPECT_EQ( 691 EXPECT_EQ(
690 ERR_IO_PENDING, 692 ERR_IO_PENDING,
691 stream.Read(wrapped_buffer.get(), buf.size(), read_callback1.callback())); 693 stream.Read(wrapped_buffer.get(), buf.size(), read_callback1.callback()));
692 EXPECT_EQ(static_cast<int>(buf.size()), read_callback1.WaitForResult()); 694 EXPECT_EQ(static_cast<int>(buf.size()), read_callback1.WaitForResult());
693 EXPECT_EQ(buf.size(), stream.position()); 695 EXPECT_EQ(buf.size(), stream.position());
694 696
695 // Call Init to reset the state. 697 // Call Init to reset the state.
696 TestCompletionCallback init_callback2; 698 TestCompletionCallback init_callback2;
697 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback())); 699 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
698 EXPECT_EQ(OK, init_callback2.WaitForResult()); 700 EXPECT_EQ(OK, init_callback2.WaitForResult());
699 EXPECT_FALSE(stream.IsEOF()); 701 EXPECT_FALSE(stream.IsEOF());
700 EXPECT_EQ(kTestDataSize*2, stream.size()); 702 EXPECT_EQ(kTestDataSize * 2, stream.size());
701 703
702 // Read. 704 // Read.
703 TestCompletionCallback read_callback2; 705 TestCompletionCallback read_callback2;
704 std::vector<char> buf2(kTestDataSize*2); 706 std::vector<char> buf2(kTestDataSize * 2);
705 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]); 707 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
706 EXPECT_EQ(ERR_IO_PENDING, 708 EXPECT_EQ(ERR_IO_PENDING,
707 stream.Read( 709 stream.Read(
708 wrapped_buffer2.get(), buf2.size(), read_callback2.callback())); 710 wrapped_buffer2.get(), buf2.size(), read_callback2.callback()));
709 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult()); 711 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult());
710 EXPECT_EQ(expected_data, buf2); 712 EXPECT_EQ(expected_data, buf2);
711 } 713 }
712 714
713 TEST_F(UploadDataStreamTest, InitDuringAsyncInit) { 715 TEST_F(UploadDataStreamTest, InitDuringAsyncInit) {
714 base::FilePath temp_file_path; 716 base::FilePath temp_file_path;
715 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 717 ASSERT_TRUE(
716 &temp_file_path)); 718 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
717 ASSERT_EQ(static_cast<int>(kTestDataSize), 719 ASSERT_EQ(static_cast<int>(kTestDataSize),
718 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 720 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
719 721
720 // Prepare data. 722 // Prepare data.
721 element_readers_.push_back(new UploadBytesElementReader( 723 element_readers_.push_back(
722 kTestData, kTestDataSize)); 724 new UploadBytesElementReader(kTestData, kTestDataSize));
723 element_readers_.push_back( 725 element_readers_.push_back(
724 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 726 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
725 temp_file_path, 727 temp_file_path,
726 0, 728 0,
727 kuint64max, 729 kuint64max,
728 base::Time())); 730 base::Time()));
729 UploadDataStream stream(element_readers_.Pass(), 0); 731 UploadDataStream stream(element_readers_.Pass(), 0);
730 732
731 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); 733 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
732 expected_data.insert(expected_data.end(), expected_data.begin(), 734 expected_data.insert(expected_data.end(),
735 expected_data.begin(),
733 expected_data.begin() + kTestDataSize); 736 expected_data.begin() + kTestDataSize);
734 737
735 // Start Init. 738 // Start Init.
736 TestCompletionCallback init_callback1; 739 TestCompletionCallback init_callback1;
737 EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback())); 740 EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
738 741
739 // Call Init again to cancel the previous init. 742 // Call Init again to cancel the previous init.
740 TestCompletionCallback init_callback2; 743 TestCompletionCallback init_callback2;
741 EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback())); 744 EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
742 EXPECT_EQ(OK, init_callback2.WaitForResult()); 745 EXPECT_EQ(OK, init_callback2.WaitForResult());
743 EXPECT_FALSE(stream.IsEOF()); 746 EXPECT_FALSE(stream.IsEOF());
744 EXPECT_EQ(kTestDataSize*2, stream.size()); 747 EXPECT_EQ(kTestDataSize * 2, stream.size());
745 748
746 // Read. 749 // Read.
747 TestCompletionCallback read_callback2; 750 TestCompletionCallback read_callback2;
748 std::vector<char> buf2(kTestDataSize*2); 751 std::vector<char> buf2(kTestDataSize * 2);
749 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]); 752 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
750 EXPECT_EQ(ERR_IO_PENDING, 753 EXPECT_EQ(ERR_IO_PENDING,
751 stream.Read( 754 stream.Read(
752 wrapped_buffer2.get(), buf2.size(), read_callback2.callback())); 755 wrapped_buffer2.get(), buf2.size(), read_callback2.callback()));
753 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult()); 756 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult());
754 EXPECT_EQ(expected_data, buf2); 757 EXPECT_EQ(expected_data, buf2);
755 EXPECT_TRUE(stream.IsEOF()); 758 EXPECT_TRUE(stream.IsEOF());
756 759
757 // Make sure callbacks are not called for cancelled operations. 760 // Make sure callbacks are not called for cancelled operations.
758 EXPECT_FALSE(init_callback1.have_result()); 761 EXPECT_FALSE(init_callback1.have_result());
759 } 762 }
760 763
761 TEST_F(UploadDataStreamTest, InitDuringAsyncRead) { 764 TEST_F(UploadDataStreamTest, InitDuringAsyncRead) {
762 base::FilePath temp_file_path; 765 base::FilePath temp_file_path;
763 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), 766 ASSERT_TRUE(
764 &temp_file_path)); 767 base::CreateTemporaryFileInDir(temp_dir_.path(), &temp_file_path));
765 ASSERT_EQ(static_cast<int>(kTestDataSize), 768 ASSERT_EQ(static_cast<int>(kTestDataSize),
766 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); 769 base::WriteFile(temp_file_path, kTestData, kTestDataSize));
767 770
768 // Prepare data. 771 // Prepare data.
769 element_readers_.push_back(new UploadBytesElementReader( 772 element_readers_.push_back(
770 kTestData, kTestDataSize)); 773 new UploadBytesElementReader(kTestData, kTestDataSize));
771 element_readers_.push_back( 774 element_readers_.push_back(
772 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 775 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
773 temp_file_path, 776 temp_file_path,
774 0, 777 0,
775 kuint64max, 778 kuint64max,
776 base::Time())); 779 base::Time()));
777 UploadDataStream stream(element_readers_.Pass(), 0); 780 UploadDataStream stream(element_readers_.Pass(), 0);
778 781
779 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); 782 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize);
780 expected_data.insert(expected_data.end(), expected_data.begin(), 783 expected_data.insert(expected_data.end(),
784 expected_data.begin(),
781 expected_data.begin() + kTestDataSize); 785 expected_data.begin() + kTestDataSize);
782 786
783 // Call Init(). 787 // Call Init().
784 TestCompletionCallback init_callback1; 788 TestCompletionCallback init_callback1;
785 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback())); 789 ASSERT_EQ(ERR_IO_PENDING, stream.Init(init_callback1.callback()));
786 EXPECT_EQ(OK, init_callback1.WaitForResult()); 790 EXPECT_EQ(OK, init_callback1.WaitForResult());
787 EXPECT_FALSE(stream.IsEOF()); 791 EXPECT_FALSE(stream.IsEOF());
788 EXPECT_EQ(kTestDataSize*2, stream.size()); 792 EXPECT_EQ(kTestDataSize * 2, stream.size());
789 793
790 // Start reading. 794 // Start reading.
791 TestCompletionCallback read_callback1; 795 TestCompletionCallback read_callback1;
792 std::vector<char> buf(kTestDataSize*2); 796 std::vector<char> buf(kTestDataSize * 2);
793 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); 797 scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]);
794 EXPECT_EQ( 798 EXPECT_EQ(
795 ERR_IO_PENDING, 799 ERR_IO_PENDING,
796 stream.Read(wrapped_buffer.get(), buf.size(), read_callback1.callback())); 800 stream.Read(wrapped_buffer.get(), buf.size(), read_callback1.callback()));
797 801
798 // Call Init to cancel the previous read. 802 // Call Init to cancel the previous read.
799 TestCompletionCallback init_callback2; 803 TestCompletionCallback init_callback2;
800 EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback())); 804 EXPECT_EQ(ERR_IO_PENDING, stream.Init(init_callback2.callback()));
801 EXPECT_EQ(OK, init_callback2.WaitForResult()); 805 EXPECT_EQ(OK, init_callback2.WaitForResult());
802 EXPECT_FALSE(stream.IsEOF()); 806 EXPECT_FALSE(stream.IsEOF());
803 EXPECT_EQ(kTestDataSize*2, stream.size()); 807 EXPECT_EQ(kTestDataSize * 2, stream.size());
804 808
805 // Read. 809 // Read.
806 TestCompletionCallback read_callback2; 810 TestCompletionCallback read_callback2;
807 std::vector<char> buf2(kTestDataSize*2); 811 std::vector<char> buf2(kTestDataSize * 2);
808 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]); 812 scoped_refptr<IOBuffer> wrapped_buffer2 = new WrappedIOBuffer(&buf2[0]);
809 EXPECT_EQ(ERR_IO_PENDING, 813 EXPECT_EQ(ERR_IO_PENDING,
810 stream.Read( 814 stream.Read(
811 wrapped_buffer2.get(), buf2.size(), read_callback2.callback())); 815 wrapped_buffer2.get(), buf2.size(), read_callback2.callback()));
812 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult()); 816 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult());
813 EXPECT_EQ(expected_data, buf2); 817 EXPECT_EQ(expected_data, buf2);
814 EXPECT_TRUE(stream.IsEOF()); 818 EXPECT_TRUE(stream.IsEOF());
815 819
816 // Make sure callbacks are not called for cancelled operations. 820 // Make sure callbacks are not called for cancelled operations.
817 EXPECT_FALSE(read_callback1.have_result()); 821 EXPECT_FALSE(read_callback1.have_result());
818 } 822 }
819 823
820 } // namespace net 824 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698