OLD | NEW |
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 <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/bind.h" | 11 #include "base/bind.h" |
12 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
13 #include "base/files/file_util.h" | 13 #include "base/files/file_util.h" |
14 #include "base/files/scoped_temp_dir.h" | 14 #include "base/files/scoped_temp_dir.h" |
15 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
16 #include "base/message_loop/message_loop.h" | 16 #include "base/message_loop/message_loop.h" |
17 #include "base/run_loop.h" | 17 #include "base/run_loop.h" |
| 18 #include "base/thread_task_runner_handle.h" |
18 #include "base/time/time.h" | 19 #include "base/time/time.h" |
19 #include "net/base/io_buffer.h" | 20 #include "net/base/io_buffer.h" |
20 #include "net/base/net_errors.h" | 21 #include "net/base/net_errors.h" |
21 #include "net/base/test_completion_callback.h" | 22 #include "net/base/test_completion_callback.h" |
22 #include "net/base/upload_bytes_element_reader.h" | 23 #include "net/base/upload_bytes_element_reader.h" |
23 #include "net/base/upload_data_stream.h" | 24 #include "net/base/upload_data_stream.h" |
24 #include "net/base/upload_file_element_reader.h" | 25 #include "net/base/upload_file_element_reader.h" |
25 #include "testing/gmock/include/gmock/gmock.h" | 26 #include "testing/gmock/include/gmock/gmock.h" |
26 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
27 #include "testing/platform_test.h" | 28 #include "testing/platform_test.h" |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 } | 174 } |
174 | 175 |
175 TEST_F(ElementsUploadDataStreamTest, File) { | 176 TEST_F(ElementsUploadDataStreamTest, File) { |
176 base::FilePath temp_file_path; | 177 base::FilePath temp_file_path; |
177 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 178 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
178 &temp_file_path)); | 179 &temp_file_path)); |
179 ASSERT_EQ(static_cast<int>(kTestDataSize), | 180 ASSERT_EQ(static_cast<int>(kTestDataSize), |
180 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 181 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
181 | 182 |
182 element_readers_.push_back( | 183 element_readers_.push_back( |
183 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 184 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
184 temp_file_path, | 185 temp_file_path, 0, kuint64max, base::Time())); |
185 0, | |
186 kuint64max, | |
187 base::Time())); | |
188 | 186 |
189 TestCompletionCallback init_callback; | 187 TestCompletionCallback init_callback; |
190 scoped_ptr<UploadDataStream> stream( | 188 scoped_ptr<UploadDataStream> stream( |
191 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 189 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
192 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); | 190 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); |
193 ASSERT_EQ(OK, init_callback.WaitForResult()); | 191 ASSERT_EQ(OK, init_callback.WaitForResult()); |
194 EXPECT_FALSE(stream->IsInMemory()); | 192 EXPECT_FALSE(stream->IsInMemory()); |
195 EXPECT_EQ(kTestDataSize, stream->size()); | 193 EXPECT_EQ(kTestDataSize, stream->size()); |
196 EXPECT_EQ(0U, stream->position()); | 194 EXPECT_EQ(0U, stream->position()); |
197 EXPECT_FALSE(stream->IsEOF()); | 195 EXPECT_FALSE(stream->IsEOF()); |
(...skipping 14 matching lines...) Expand all Loading... |
212 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 210 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
213 &temp_file_path)); | 211 &temp_file_path)); |
214 ASSERT_EQ(static_cast<int>(kTestDataSize), | 212 ASSERT_EQ(static_cast<int>(kTestDataSize), |
215 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 213 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
216 const uint64 kFakeSize = kTestDataSize*2; | 214 const uint64 kFakeSize = kTestDataSize*2; |
217 | 215 |
218 UploadFileElementReader::ScopedOverridingContentLengthForTests | 216 UploadFileElementReader::ScopedOverridingContentLengthForTests |
219 overriding_content_length(kFakeSize); | 217 overriding_content_length(kFakeSize); |
220 | 218 |
221 element_readers_.push_back( | 219 element_readers_.push_back( |
222 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 220 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
223 temp_file_path, | 221 temp_file_path, 0, kuint64max, base::Time())); |
224 0, | |
225 kuint64max, | |
226 base::Time())); | |
227 | 222 |
228 TestCompletionCallback init_callback; | 223 TestCompletionCallback init_callback; |
229 scoped_ptr<UploadDataStream> stream( | 224 scoped_ptr<UploadDataStream> stream( |
230 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 225 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
231 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); | 226 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); |
232 ASSERT_EQ(OK, init_callback.WaitForResult()); | 227 ASSERT_EQ(OK, init_callback.WaitForResult()); |
233 EXPECT_FALSE(stream->IsInMemory()); | 228 EXPECT_FALSE(stream->IsInMemory()); |
234 EXPECT_EQ(kFakeSize, stream->size()); | 229 EXPECT_EQ(kFakeSize, stream->size()); |
235 EXPECT_EQ(0U, stream->position()); | 230 EXPECT_EQ(0U, stream->position()); |
236 EXPECT_FALSE(stream->IsEOF()); | 231 EXPECT_FALSE(stream->IsEOF()); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 | 325 |
331 TEST_F(ElementsUploadDataStreamTest, FileAndBytes) { | 326 TEST_F(ElementsUploadDataStreamTest, FileAndBytes) { |
332 base::FilePath temp_file_path; | 327 base::FilePath temp_file_path; |
333 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 328 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
334 &temp_file_path)); | 329 &temp_file_path)); |
335 ASSERT_EQ(static_cast<int>(kTestDataSize), | 330 ASSERT_EQ(static_cast<int>(kTestDataSize), |
336 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 331 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
337 | 332 |
338 const uint64 kFileRangeOffset = 1; | 333 const uint64 kFileRangeOffset = 1; |
339 const uint64 kFileRangeLength = 4; | 334 const uint64 kFileRangeLength = 4; |
340 element_readers_.push_back( | 335 element_readers_.push_back(new UploadFileElementReader( |
341 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 336 base::ThreadTaskRunnerHandle::Get().get(), temp_file_path, |
342 temp_file_path, | 337 kFileRangeOffset, kFileRangeLength, base::Time())); |
343 kFileRangeOffset, | |
344 kFileRangeLength, | |
345 base::Time())); | |
346 | 338 |
347 element_readers_.push_back(new UploadBytesElementReader( | 339 element_readers_.push_back(new UploadBytesElementReader( |
348 kTestData, kTestDataSize)); | 340 kTestData, kTestDataSize)); |
349 | 341 |
350 const uint64 kStreamSize = kTestDataSize + kFileRangeLength; | 342 const uint64 kStreamSize = kTestDataSize + kFileRangeLength; |
351 TestCompletionCallback init_callback; | 343 TestCompletionCallback init_callback; |
352 scoped_ptr<UploadDataStream> stream( | 344 scoped_ptr<UploadDataStream> stream( |
353 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 345 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
354 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); | 346 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); |
355 ASSERT_EQ(OK, init_callback.WaitForResult()); | 347 ASSERT_EQ(OK, init_callback.WaitForResult()); |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 } | 513 } |
522 | 514 |
523 void ElementsUploadDataStreamTest::FileChangedHelper( | 515 void ElementsUploadDataStreamTest::FileChangedHelper( |
524 const base::FilePath& file_path, | 516 const base::FilePath& file_path, |
525 const base::Time& time, | 517 const base::Time& time, |
526 bool error_expected) { | 518 bool error_expected) { |
527 // Don't use element_readers_ here, as this function is called twice, and | 519 // Don't use element_readers_ here, as this function is called twice, and |
528 // reusing element_readers_ is wrong. | 520 // reusing element_readers_ is wrong. |
529 ScopedVector<UploadElementReader> element_readers; | 521 ScopedVector<UploadElementReader> element_readers; |
530 element_readers.push_back(new UploadFileElementReader( | 522 element_readers.push_back(new UploadFileElementReader( |
531 base::MessageLoopProxy::current().get(), file_path, 1, 2, time)); | 523 base::ThreadTaskRunnerHandle::Get().get(), file_path, 1, 2, time)); |
532 | 524 |
533 TestCompletionCallback init_callback; | 525 TestCompletionCallback init_callback; |
534 scoped_ptr<UploadDataStream> stream( | 526 scoped_ptr<UploadDataStream> stream( |
535 new ElementsUploadDataStream(element_readers.Pass(), 0)); | 527 new ElementsUploadDataStream(element_readers.Pass(), 0)); |
536 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); | 528 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback.callback())); |
537 int error_code = init_callback.WaitForResult(); | 529 int error_code = init_callback.WaitForResult(); |
538 if (error_expected) | 530 if (error_expected) |
539 ASSERT_EQ(ERR_UPLOAD_FILE_CHANGED, error_code); | 531 ASSERT_EQ(ERR_UPLOAD_FILE_CHANGED, error_code); |
540 else | 532 else |
541 ASSERT_EQ(OK, error_code); | 533 ASSERT_EQ(OK, error_code); |
(...skipping 22 matching lines...) Expand all Loading... |
564 base::FilePath temp_file_path; | 556 base::FilePath temp_file_path; |
565 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 557 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
566 &temp_file_path)); | 558 &temp_file_path)); |
567 ASSERT_EQ(static_cast<int>(kTestDataSize), | 559 ASSERT_EQ(static_cast<int>(kTestDataSize), |
568 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 560 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
569 | 561 |
570 // Prepare data. | 562 // Prepare data. |
571 element_readers_.push_back(new UploadBytesElementReader( | 563 element_readers_.push_back(new UploadBytesElementReader( |
572 kTestData, kTestDataSize)); | 564 kTestData, kTestDataSize)); |
573 element_readers_.push_back( | 565 element_readers_.push_back( |
574 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 566 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
575 temp_file_path, | 567 temp_file_path, 0, kuint64max, base::Time())); |
576 0, | |
577 kuint64max, | |
578 base::Time())); | |
579 scoped_ptr<UploadDataStream> stream( | 568 scoped_ptr<UploadDataStream> stream( |
580 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 569 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
581 | 570 |
582 std::string expected_data(kTestData, kTestData + kTestDataSize); | 571 std::string expected_data(kTestData, kTestData + kTestDataSize); |
583 expected_data += expected_data; | 572 expected_data += expected_data; |
584 | 573 |
585 // Call Init(). | 574 // Call Init(). |
586 TestCompletionCallback init_callback1; | 575 TestCompletionCallback init_callback1; |
587 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); | 576 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); |
588 ASSERT_EQ(OK, init_callback1.WaitForResult()); | 577 ASSERT_EQ(OK, init_callback1.WaitForResult()); |
(...skipping 21 matching lines...) Expand all Loading... |
610 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 599 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
611 &temp_file_path)); | 600 &temp_file_path)); |
612 ASSERT_EQ(static_cast<int>(kTestDataSize), | 601 ASSERT_EQ(static_cast<int>(kTestDataSize), |
613 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 602 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
614 TestCompletionCallback test_callback; | 603 TestCompletionCallback test_callback; |
615 | 604 |
616 // Prepare data. | 605 // Prepare data. |
617 element_readers_.push_back(new UploadBytesElementReader( | 606 element_readers_.push_back(new UploadBytesElementReader( |
618 kTestData, kTestDataSize)); | 607 kTestData, kTestDataSize)); |
619 element_readers_.push_back( | 608 element_readers_.push_back( |
620 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 609 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
621 temp_file_path, | 610 temp_file_path, 0, kuint64max, base::Time())); |
622 0, | |
623 kuint64max, | |
624 base::Time())); | |
625 scoped_ptr<UploadDataStream> stream( | 611 scoped_ptr<UploadDataStream> stream( |
626 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 612 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
627 | 613 |
628 std::string expected_data(kTestData, kTestData + kTestDataSize); | 614 std::string expected_data(kTestData, kTestData + kTestDataSize); |
629 expected_data += expected_data; | 615 expected_data += expected_data; |
630 | 616 |
631 // Call Init(). | 617 // Call Init(). |
632 ASSERT_EQ(ERR_IO_PENDING, stream->Init(test_callback.callback())); | 618 ASSERT_EQ(ERR_IO_PENDING, stream->Init(test_callback.callback())); |
633 EXPECT_EQ(OK, test_callback.WaitForResult()); | 619 EXPECT_EQ(OK, test_callback.WaitForResult()); |
634 EXPECT_FALSE(stream->IsEOF()); | 620 EXPECT_FALSE(stream->IsEOF()); |
(...skipping 18 matching lines...) Expand all Loading... |
653 base::FilePath temp_file_path; | 639 base::FilePath temp_file_path; |
654 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 640 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
655 &temp_file_path)); | 641 &temp_file_path)); |
656 ASSERT_EQ(static_cast<int>(kTestDataSize), | 642 ASSERT_EQ(static_cast<int>(kTestDataSize), |
657 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 643 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
658 | 644 |
659 // Prepare data. | 645 // Prepare data. |
660 element_readers_.push_back(new UploadBytesElementReader( | 646 element_readers_.push_back(new UploadBytesElementReader( |
661 kTestData, kTestDataSize)); | 647 kTestData, kTestDataSize)); |
662 element_readers_.push_back( | 648 element_readers_.push_back( |
663 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 649 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
664 temp_file_path, | 650 temp_file_path, 0, kuint64max, base::Time())); |
665 0, | |
666 kuint64max, | |
667 base::Time())); | |
668 scoped_ptr<UploadDataStream> stream( | 651 scoped_ptr<UploadDataStream> stream( |
669 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 652 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
670 | 653 |
671 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); | 654 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); |
672 expected_data.insert(expected_data.end(), kTestData, | 655 expected_data.insert(expected_data.end(), kTestData, |
673 kTestData + kTestDataSize); | 656 kTestData + kTestDataSize); |
674 | 657 |
675 // Call Init(). | 658 // Call Init(). |
676 TestCompletionCallback init_callback1; | 659 TestCompletionCallback init_callback1; |
677 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); | 660 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 base::FilePath temp_file_path; | 695 base::FilePath temp_file_path; |
713 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 696 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
714 &temp_file_path)); | 697 &temp_file_path)); |
715 ASSERT_EQ(static_cast<int>(kTestDataSize), | 698 ASSERT_EQ(static_cast<int>(kTestDataSize), |
716 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 699 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
717 | 700 |
718 // Prepare data. | 701 // Prepare data. |
719 element_readers_.push_back(new UploadBytesElementReader( | 702 element_readers_.push_back(new UploadBytesElementReader( |
720 kTestData, kTestDataSize)); | 703 kTestData, kTestDataSize)); |
721 element_readers_.push_back( | 704 element_readers_.push_back( |
722 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 705 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
723 temp_file_path, | 706 temp_file_path, 0, kuint64max, base::Time())); |
724 0, | |
725 kuint64max, | |
726 base::Time())); | |
727 scoped_ptr<UploadDataStream> stream( | 707 scoped_ptr<UploadDataStream> stream( |
728 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 708 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
729 | 709 |
730 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); | 710 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); |
731 expected_data.insert(expected_data.end(), kTestData, | 711 expected_data.insert(expected_data.end(), kTestData, |
732 kTestData + kTestDataSize); | 712 kTestData + kTestDataSize); |
733 | 713 |
734 // Start Init. | 714 // Start Init. |
735 TestCompletionCallback init_callback1; | 715 TestCompletionCallback init_callback1; |
736 EXPECT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); | 716 EXPECT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); |
(...skipping 24 matching lines...) Expand all Loading... |
761 base::FilePath temp_file_path; | 741 base::FilePath temp_file_path; |
762 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), | 742 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
763 &temp_file_path)); | 743 &temp_file_path)); |
764 ASSERT_EQ(static_cast<int>(kTestDataSize), | 744 ASSERT_EQ(static_cast<int>(kTestDataSize), |
765 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); | 745 base::WriteFile(temp_file_path, kTestData, kTestDataSize)); |
766 | 746 |
767 // Prepare data. | 747 // Prepare data. |
768 element_readers_.push_back(new UploadBytesElementReader( | 748 element_readers_.push_back(new UploadBytesElementReader( |
769 kTestData, kTestDataSize)); | 749 kTestData, kTestDataSize)); |
770 element_readers_.push_back( | 750 element_readers_.push_back( |
771 new UploadFileElementReader(base::MessageLoopProxy::current().get(), | 751 new UploadFileElementReader(base::ThreadTaskRunnerHandle::Get().get(), |
772 temp_file_path, | 752 temp_file_path, 0, kuint64max, base::Time())); |
773 0, | |
774 kuint64max, | |
775 base::Time())); | |
776 scoped_ptr<UploadDataStream> stream( | 753 scoped_ptr<UploadDataStream> stream( |
777 new ElementsUploadDataStream(element_readers_.Pass(), 0)); | 754 new ElementsUploadDataStream(element_readers_.Pass(), 0)); |
778 | 755 |
779 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); | 756 std::vector<char> expected_data(kTestData, kTestData + kTestDataSize); |
780 expected_data.insert(expected_data.end(), kTestData, | 757 expected_data.insert(expected_data.end(), kTestData, |
781 kTestData + kTestDataSize); | 758 kTestData + kTestDataSize); |
782 | 759 |
783 // Call Init(). | 760 // Call Init(). |
784 TestCompletionCallback init_callback1; | 761 TestCompletionCallback init_callback1; |
785 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); | 762 ASSERT_EQ(ERR_IO_PENDING, stream->Init(init_callback1.callback())); |
(...skipping 26 matching lines...) Expand all Loading... |
812 wrapped_buffer2.get(), buf2.size(), read_callback2.callback())); | 789 wrapped_buffer2.get(), buf2.size(), read_callback2.callback())); |
813 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult()); | 790 EXPECT_EQ(static_cast<int>(buf2.size()), read_callback2.WaitForResult()); |
814 EXPECT_EQ(expected_data, buf2); | 791 EXPECT_EQ(expected_data, buf2); |
815 EXPECT_TRUE(stream->IsEOF()); | 792 EXPECT_TRUE(stream->IsEOF()); |
816 | 793 |
817 // Make sure callbacks are not called for cancelled operations. | 794 // Make sure callbacks are not called for cancelled operations. |
818 EXPECT_FALSE(read_callback1.have_result()); | 795 EXPECT_FALSE(read_callback1.have_result()); |
819 } | 796 } |
820 | 797 |
821 } // namespace net | 798 } // namespace net |
OLD | NEW |