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 "jingle/notifier/base/chrome_async_socket.h" | 5 #include "jingle/notifier/base/chrome_async_socket.h" |
6 | 6 |
7 #include <deque> | 7 #include <deque> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 EXPECT_TRUE(writes_.empty()); | 36 EXPECT_TRUE(writes_.empty()); |
37 EXPECT_TRUE(reads_.empty()); | 37 EXPECT_TRUE(reads_.empty()); |
38 } | 38 } |
39 | 39 |
40 // If there's no read, sets the "has pending read" flag. Otherwise, | 40 // If there's no read, sets the "has pending read" flag. Otherwise, |
41 // pops the next read. | 41 // pops the next read. |
42 virtual net::MockRead GetNextRead() { | 42 virtual net::MockRead GetNextRead() { |
43 if (reads_.empty()) { | 43 if (reads_.empty()) { |
44 DCHECK(!has_pending_read_); | 44 DCHECK(!has_pending_read_); |
45 has_pending_read_ = true; | 45 has_pending_read_ = true; |
46 const net::MockRead pending_read(false, net::ERR_IO_PENDING); | 46 const net::MockRead pending_read(net::SYNCHRONOUS, net::ERR_IO_PENDING); |
47 return pending_read; | 47 return pending_read; |
48 } | 48 } |
49 net::MockRead mock_read = reads_.front(); | 49 net::MockRead mock_read = reads_.front(); |
50 reads_.pop_front(); | 50 reads_.pop_front(); |
51 return mock_read; | 51 return mock_read; |
52 } | 52 } |
53 | 53 |
54 // Simply pops the next write and, if applicable, compares it to | 54 // Simply pops the next write and, if applicable, compares it to |
55 // |data|. | 55 // |data|. |
56 virtual net::MockWriteResult OnWrite(const std::string& data) { | 56 virtual net::MockWriteResult OnWrite(const std::string& data) { |
57 DCHECK(!writes_.empty()); | 57 DCHECK(!writes_.empty()); |
58 net::MockWrite mock_write = writes_.front(); | 58 net::MockWrite mock_write = writes_.front(); |
59 writes_.pop_front(); | 59 writes_.pop_front(); |
60 if (mock_write.result != net::OK) { | 60 if (mock_write.result != net::OK) { |
61 return net::MockWriteResult(mock_write.async, mock_write.result); | 61 return net::MockWriteResult(mock_write.mode, mock_write.result); |
62 } | 62 } |
63 std::string expected_data(mock_write.data, mock_write.data_len); | 63 std::string expected_data(mock_write.data, mock_write.data_len); |
64 EXPECT_EQ(expected_data, data); | 64 EXPECT_EQ(expected_data, data); |
65 if (expected_data != data) { | 65 if (expected_data != data) { |
66 return net::MockWriteResult(false, net::ERR_UNEXPECTED); | 66 return net::MockWriteResult(net::SYNCHRONOUS, net::ERR_UNEXPECTED); |
67 } | 67 } |
68 return net::MockWriteResult(mock_write.async, data.size()); | 68 return net::MockWriteResult(mock_write.mode, data.size()); |
69 } | 69 } |
70 | 70 |
71 // We ignore resets so we can pre-load the socket data provider with | 71 // We ignore resets so we can pre-load the socket data provider with |
72 // read/write events. | 72 // read/write events. |
73 virtual void Reset() {} | 73 virtual void Reset() {} |
74 | 74 |
75 // If there is a pending read, completes it with the given read. | 75 // If there is a pending read, completes it with the given read. |
76 // Otherwise, queues up the given read. | 76 // Otherwise, queues up the given read. |
77 void AddRead(const net::MockRead& mock_read) { | 77 void AddRead(const net::MockRead& mock_read) { |
78 DCHECK_NE(mock_read.result, net::ERR_IO_PENDING); | 78 DCHECK_NE(mock_read.result, net::ERR_IO_PENDING); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 net::AddressList address_list_; | 144 net::AddressList address_list_; |
145 net::SSLConfig ssl_config_; | 145 net::SSLConfig ssl_config_; |
146 net::CertVerifier cert_verifier_; | 146 net::CertVerifier cert_verifier_; |
147 }; | 147 }; |
148 | 148 |
149 class ChromeAsyncSocketTest | 149 class ChromeAsyncSocketTest |
150 : public testing::Test, | 150 : public testing::Test, |
151 public sigslot::has_slots<> { | 151 public sigslot::has_slots<> { |
152 protected: | 152 protected: |
153 ChromeAsyncSocketTest() | 153 ChromeAsyncSocketTest() |
154 : ssl_socket_data_provider_(true, net::OK), | 154 : ssl_socket_data_provider_(net::ASYNC, net::OK), |
155 addr_(0xaabbccdd, 35) {} | 155 addr_(0xaabbccdd, 35) {} |
156 | 156 |
157 virtual ~ChromeAsyncSocketTest() {} | 157 virtual ~ChromeAsyncSocketTest() {} |
158 | 158 |
159 virtual void SetUp() { | 159 virtual void SetUp() { |
160 scoped_ptr<net::MockClientSocketFactory> mock_client_socket_factory( | 160 scoped_ptr<net::MockClientSocketFactory> mock_client_socket_factory( |
161 new net::MockClientSocketFactory()); | 161 new net::MockClientSocketFactory()); |
162 mock_client_socket_factory->AddSocketDataProvider( | 162 mock_client_socket_factory->AddSocketDataProvider( |
163 &async_socket_data_provider_); | 163 &async_socket_data_provider_); |
164 mock_client_socket_factory->AddSSLSocketDataProvider( | 164 mock_client_socket_factory->AddSSLSocketDataProvider( |
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
653 DoOpenClosed(); | 653 DoOpenClosed(); |
654 | 654 |
655 ExpectReadSignal(); | 655 ExpectReadSignal(); |
656 ExpectNoSignal(); | 656 ExpectNoSignal(); |
657 | 657 |
658 EXPECT_EQ(kReadData, DrainRead(1)); | 658 EXPECT_EQ(kReadData, DrainRead(1)); |
659 | 659 |
660 message_loop_.RunAllPending(); | 660 message_loop_.RunAllPending(); |
661 | 661 |
662 async_socket_data_provider_.AddRead( | 662 async_socket_data_provider_.AddRead( |
663 net::MockRead(false, net::ERR_TIMED_OUT)); | 663 net::MockRead(net::SYNCHRONOUS, net::ERR_TIMED_OUT)); |
664 | 664 |
665 ExpectSignalSocketState( | 665 ExpectSignalSocketState( |
666 SignalSocketState( | 666 SignalSocketState( |
667 SIGNAL_CLOSE, ChromeAsyncSocket::STATE_CLOSED, | 667 SIGNAL_CLOSE, ChromeAsyncSocket::STATE_CLOSED, |
668 ChromeAsyncSocket::ERROR_WINSOCK, net::ERR_TIMED_OUT)); | 668 ChromeAsyncSocket::ERROR_WINSOCK, net::ERR_TIMED_OUT)); |
669 } | 669 } |
670 | 670 |
671 TEST_F(ChromeAsyncSocketTest, ReadEmpty) { | 671 TEST_F(ChromeAsyncSocketTest, ReadEmpty) { |
672 async_socket_data_provider_.AddRead(net::MockRead("")); | 672 async_socket_data_provider_.AddRead(net::MockRead("")); |
673 DoOpenClosed(); | 673 DoOpenClosed(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
707 SignalSocketState::NoError( | 707 SignalSocketState::NoError( |
708 SIGNAL_CLOSE, ChromeAsyncSocket::STATE_CLOSED)); | 708 SIGNAL_CLOSE, ChromeAsyncSocket::STATE_CLOSED)); |
709 } | 709 } |
710 | 710 |
711 TEST_F(ChromeAsyncSocketTest, PendingReadError) { | 711 TEST_F(ChromeAsyncSocketTest, PendingReadError) { |
712 DoOpenClosed(); | 712 DoOpenClosed(); |
713 | 713 |
714 ExpectNoSignal(); | 714 ExpectNoSignal(); |
715 | 715 |
716 async_socket_data_provider_.AddRead( | 716 async_socket_data_provider_.AddRead( |
717 net::MockRead(true, net::ERR_TIMED_OUT)); | 717 net::MockRead(net::ASYNC, net::ERR_TIMED_OUT)); |
718 | 718 |
719 ExpectSignalSocketState( | 719 ExpectSignalSocketState( |
720 SignalSocketState( | 720 SignalSocketState( |
721 SIGNAL_CLOSE, ChromeAsyncSocket::STATE_CLOSED, | 721 SIGNAL_CLOSE, ChromeAsyncSocket::STATE_CLOSED, |
722 ChromeAsyncSocket::ERROR_WINSOCK, net::ERR_TIMED_OUT)); | 722 ChromeAsyncSocket::ERROR_WINSOCK, net::ERR_TIMED_OUT)); |
723 } | 723 } |
724 | 724 |
725 // After this we can assume non-SSL Read() works as expected. | 725 // After this we can assume non-SSL Read() works as expected. |
726 | 726 |
727 TEST_F(ChromeAsyncSocketTest, WrongWrite) { | 727 TEST_F(ChromeAsyncSocketTest, WrongWrite) { |
728 EXPECT_DEBUG_DEATH({ | 728 EXPECT_DEBUG_DEATH({ |
729 std::string data("foo"); | 729 std::string data("foo"); |
730 EXPECT_FALSE(chrome_async_socket_->Write(data.data(), data.size())); | 730 EXPECT_FALSE(chrome_async_socket_->Write(data.data(), data.size())); |
731 ExpectErrorState(ChromeAsyncSocket::STATE_CLOSED, | 731 ExpectErrorState(ChromeAsyncSocket::STATE_CLOSED, |
732 ChromeAsyncSocket::ERROR_WRONGSTATE); | 732 ChromeAsyncSocket::ERROR_WRONGSTATE); |
733 EXPECT_TRUE(chrome_async_socket_->Close()); | 733 EXPECT_TRUE(chrome_async_socket_->Close()); |
734 }, "non-open"); | 734 }, "non-open"); |
735 } | 735 } |
736 | 736 |
737 const char kWriteData[] = "mydatatowrite"; | 737 const char kWriteData[] = "mydatatowrite"; |
738 | 738 |
739 TEST_F(ChromeAsyncSocketTest, SyncWrite) { | 739 TEST_F(ChromeAsyncSocketTest, SyncWrite) { |
740 async_socket_data_provider_.AddWrite( | 740 async_socket_data_provider_.AddWrite( |
741 net::MockWrite(false, kWriteData, 3)); | 741 net::MockWrite(net::SYNCHRONOUS, kWriteData, 3)); |
742 async_socket_data_provider_.AddWrite( | 742 async_socket_data_provider_.AddWrite( |
743 net::MockWrite(false, kWriteData + 3, 5)); | 743 net::MockWrite(net::SYNCHRONOUS, kWriteData + 3, 5)); |
744 async_socket_data_provider_.AddWrite( | 744 async_socket_data_provider_.AddWrite( |
745 net::MockWrite(false, kWriteData + 8, arraysize(kWriteData) - 8)); | 745 net::MockWrite(net::SYNCHRONOUS, |
| 746 kWriteData + 8, arraysize(kWriteData) - 8)); |
746 DoOpenClosed(); | 747 DoOpenClosed(); |
747 | 748 |
748 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); | 749 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); |
749 message_loop_.RunAllPending(); | 750 message_loop_.RunAllPending(); |
750 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); | 751 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); |
751 message_loop_.RunAllPending(); | 752 message_loop_.RunAllPending(); |
752 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, | 753 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, |
753 arraysize(kWriteData) - 8)); | 754 arraysize(kWriteData) - 8)); |
754 message_loop_.RunAllPending(); | 755 message_loop_.RunAllPending(); |
755 | 756 |
756 ExpectNoSignal(); | 757 ExpectNoSignal(); |
757 | 758 |
758 DoCloseOpenedNoError(); | 759 DoCloseOpenedNoError(); |
759 } | 760 } |
760 | 761 |
761 TEST_F(ChromeAsyncSocketTest, AsyncWrite) { | 762 TEST_F(ChromeAsyncSocketTest, AsyncWrite) { |
762 DoOpenClosed(); | 763 DoOpenClosed(); |
763 | 764 |
764 async_socket_data_provider_.AddWrite( | 765 async_socket_data_provider_.AddWrite( |
765 net::MockWrite(true, kWriteData, 3)); | 766 net::MockWrite(net::ASYNC, kWriteData, 3)); |
766 async_socket_data_provider_.AddWrite( | 767 async_socket_data_provider_.AddWrite( |
767 net::MockWrite(true, kWriteData + 3, 5)); | 768 net::MockWrite(net::ASYNC, kWriteData + 3, 5)); |
768 async_socket_data_provider_.AddWrite( | 769 async_socket_data_provider_.AddWrite( |
769 net::MockWrite(true, kWriteData + 8, arraysize(kWriteData) - 8)); | 770 net::MockWrite(net::ASYNC, kWriteData + 8, arraysize(kWriteData) - 8)); |
770 | 771 |
771 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); | 772 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); |
772 message_loop_.RunAllPending(); | 773 message_loop_.RunAllPending(); |
773 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); | 774 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); |
774 message_loop_.RunAllPending(); | 775 message_loop_.RunAllPending(); |
775 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, | 776 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, |
776 arraysize(kWriteData) - 8)); | 777 arraysize(kWriteData) - 8)); |
777 message_loop_.RunAllPending(); | 778 message_loop_.RunAllPending(); |
778 | 779 |
779 ExpectNoSignal(); | 780 ExpectNoSignal(); |
780 | 781 |
781 DoCloseOpenedNoError(); | 782 DoCloseOpenedNoError(); |
782 } | 783 } |
783 | 784 |
784 TEST_F(ChromeAsyncSocketTest, AsyncWriteError) { | 785 TEST_F(ChromeAsyncSocketTest, AsyncWriteError) { |
785 DoOpenClosed(); | 786 DoOpenClosed(); |
786 | 787 |
787 async_socket_data_provider_.AddWrite( | 788 async_socket_data_provider_.AddWrite( |
788 net::MockWrite(true, kWriteData, 3)); | 789 net::MockWrite(net::ASYNC, kWriteData, 3)); |
789 async_socket_data_provider_.AddWrite( | 790 async_socket_data_provider_.AddWrite( |
790 net::MockWrite(true, kWriteData + 3, 5)); | 791 net::MockWrite(net::ASYNC, kWriteData + 3, 5)); |
791 async_socket_data_provider_.AddWrite( | 792 async_socket_data_provider_.AddWrite( |
792 net::MockWrite(true, net::ERR_TIMED_OUT)); | 793 net::MockWrite(net::ASYNC, net::ERR_TIMED_OUT)); |
793 | 794 |
794 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); | 795 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); |
795 message_loop_.RunAllPending(); | 796 message_loop_.RunAllPending(); |
796 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); | 797 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); |
797 message_loop_.RunAllPending(); | 798 message_loop_.RunAllPending(); |
798 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, | 799 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, |
799 arraysize(kWriteData) - 8)); | 800 arraysize(kWriteData) - 8)); |
800 message_loop_.RunAllPending(); | 801 message_loop_.RunAllPending(); |
801 | 802 |
802 ExpectSignalSocketState( | 803 ExpectSignalSocketState( |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 TEST_F(ChromeAsyncSocketTest, WriteDuringSSLConnecting) { | 949 TEST_F(ChromeAsyncSocketTest, WriteDuringSSLConnecting) { |
949 async_socket_data_provider_.AddRead(net::MockRead(kReadData)); | 950 async_socket_data_provider_.AddRead(net::MockRead(kReadData)); |
950 DoOpenClosed(); | 951 DoOpenClosed(); |
951 ExpectReadSignal(); | 952 ExpectReadSignal(); |
952 | 953 |
953 EXPECT_TRUE(chrome_async_socket_->StartTls("fakedomain.com")); | 954 EXPECT_TRUE(chrome_async_socket_->StartTls("fakedomain.com")); |
954 ExpectNoSignal(); | 955 ExpectNoSignal(); |
955 ExpectNonErrorState(ChromeAsyncSocket::STATE_TLS_CONNECTING); | 956 ExpectNonErrorState(ChromeAsyncSocket::STATE_TLS_CONNECTING); |
956 | 957 |
957 async_socket_data_provider_.AddWrite( | 958 async_socket_data_provider_.AddWrite( |
958 net::MockWrite(true, kWriteData, 3)); | 959 net::MockWrite(net::ASYNC, kWriteData, 3)); |
959 | 960 |
960 // Shouldn't do anything. | 961 // Shouldn't do anything. |
961 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); | 962 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); |
962 | 963 |
963 // TODO(akalin): Figure out how to test that the write happens | 964 // TODO(akalin): Figure out how to test that the write happens |
964 // *after* the SSL connect. | 965 // *after* the SSL connect. |
965 | 966 |
966 message_loop_.RunAllPending(); | 967 message_loop_.RunAllPending(); |
967 ExpectSSLConnectSignal(); | 968 ExpectSSLConnectSignal(); |
968 ExpectNoSignal(); | 969 ExpectNoSignal(); |
(...skipping 15 matching lines...) Expand all Loading... |
984 ChromeAsyncSocket::ERROR_WRONGSTATE, | 985 ChromeAsyncSocket::ERROR_WRONGSTATE, |
985 net::OK)); | 986 net::OK)); |
986 }, "wrong state"); | 987 }, "wrong state"); |
987 } | 988 } |
988 | 989 |
989 TEST_F(ChromeAsyncSocketTest, SSLConnectDuringPostedWrite) { | 990 TEST_F(ChromeAsyncSocketTest, SSLConnectDuringPostedWrite) { |
990 EXPECT_DEBUG_DEATH({ | 991 EXPECT_DEBUG_DEATH({ |
991 DoOpenClosed(); | 992 DoOpenClosed(); |
992 | 993 |
993 async_socket_data_provider_.AddWrite( | 994 async_socket_data_provider_.AddWrite( |
994 net::MockWrite(true, kWriteData, 3)); | 995 net::MockWrite(net::ASYNC, kWriteData, 3)); |
995 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); | 996 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); |
996 | 997 |
997 EXPECT_FALSE(chrome_async_socket_->StartTls("fakedomain.com")); | 998 EXPECT_FALSE(chrome_async_socket_->StartTls("fakedomain.com")); |
998 | 999 |
999 message_loop_.RunAllPending(); | 1000 message_loop_.RunAllPending(); |
1000 | 1001 |
1001 DoCloseOpened( | 1002 DoCloseOpened( |
1002 SignalSocketState(SIGNAL_CLOSE, | 1003 SignalSocketState(SIGNAL_CLOSE, |
1003 ChromeAsyncSocket::STATE_CLOSED, | 1004 ChromeAsyncSocket::STATE_CLOSED, |
1004 ChromeAsyncSocket::ERROR_WRONGSTATE, | 1005 ChromeAsyncSocket::ERROR_WRONGSTATE, |
(...skipping 13 matching lines...) Expand all Loading... |
1018 | 1019 |
1019 EXPECT_EQ(kReadData, DrainRead(1)); | 1020 EXPECT_EQ(kReadData, DrainRead(1)); |
1020 | 1021 |
1021 message_loop_.RunAllPending(); | 1022 message_loop_.RunAllPending(); |
1022 | 1023 |
1023 DoSSLCloseOpenedNoError(); | 1024 DoSSLCloseOpenedNoError(); |
1024 } | 1025 } |
1025 | 1026 |
1026 TEST_F(ChromeAsyncSocketTest, SSLSyncWrite) { | 1027 TEST_F(ChromeAsyncSocketTest, SSLSyncWrite) { |
1027 async_socket_data_provider_.AddWrite( | 1028 async_socket_data_provider_.AddWrite( |
1028 net::MockWrite(false, kWriteData, 3)); | 1029 net::MockWrite(net::SYNCHRONOUS, kWriteData, 3)); |
1029 async_socket_data_provider_.AddWrite( | 1030 async_socket_data_provider_.AddWrite( |
1030 net::MockWrite(false, kWriteData + 3, 5)); | 1031 net::MockWrite(net::SYNCHRONOUS, kWriteData + 3, 5)); |
1031 async_socket_data_provider_.AddWrite( | 1032 async_socket_data_provider_.AddWrite( |
1032 net::MockWrite(false, kWriteData + 8, arraysize(kWriteData) - 8)); | 1033 net::MockWrite(net::SYNCHRONOUS, |
| 1034 kWriteData + 8, arraysize(kWriteData) - 8)); |
1033 DoSSLOpenClosed(); | 1035 DoSSLOpenClosed(); |
1034 | 1036 |
1035 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); | 1037 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); |
1036 message_loop_.RunAllPending(); | 1038 message_loop_.RunAllPending(); |
1037 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); | 1039 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); |
1038 message_loop_.RunAllPending(); | 1040 message_loop_.RunAllPending(); |
1039 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, | 1041 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, |
1040 arraysize(kWriteData) - 8)); | 1042 arraysize(kWriteData) - 8)); |
1041 message_loop_.RunAllPending(); | 1043 message_loop_.RunAllPending(); |
1042 | 1044 |
1043 ExpectNoSignal(); | 1045 ExpectNoSignal(); |
1044 | 1046 |
1045 DoSSLCloseOpenedNoError(); | 1047 DoSSLCloseOpenedNoError(); |
1046 } | 1048 } |
1047 | 1049 |
1048 TEST_F(ChromeAsyncSocketTest, SSLAsyncWrite) { | 1050 TEST_F(ChromeAsyncSocketTest, SSLAsyncWrite) { |
1049 DoSSLOpenClosed(); | 1051 DoSSLOpenClosed(); |
1050 | 1052 |
1051 async_socket_data_provider_.AddWrite( | 1053 async_socket_data_provider_.AddWrite( |
1052 net::MockWrite(true, kWriteData, 3)); | 1054 net::MockWrite(net::ASYNC, kWriteData, 3)); |
1053 async_socket_data_provider_.AddWrite( | 1055 async_socket_data_provider_.AddWrite( |
1054 net::MockWrite(true, kWriteData + 3, 5)); | 1056 net::MockWrite(net::ASYNC, kWriteData + 3, 5)); |
1055 async_socket_data_provider_.AddWrite( | 1057 async_socket_data_provider_.AddWrite( |
1056 net::MockWrite(true, kWriteData + 8, arraysize(kWriteData) - 8)); | 1058 net::MockWrite(net::ASYNC, kWriteData + 8, arraysize(kWriteData) - 8)); |
1057 | 1059 |
1058 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); | 1060 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData, 3)); |
1059 message_loop_.RunAllPending(); | 1061 message_loop_.RunAllPending(); |
1060 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); | 1062 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 3, 5)); |
1061 message_loop_.RunAllPending(); | 1063 message_loop_.RunAllPending(); |
1062 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, | 1064 EXPECT_TRUE(chrome_async_socket_->Write(kWriteData + 8, |
1063 arraysize(kWriteData) - 8)); | 1065 arraysize(kWriteData) - 8)); |
1064 message_loop_.RunAllPending(); | 1066 message_loop_.RunAllPending(); |
1065 | 1067 |
1066 ExpectNoSignal(); | 1068 ExpectNoSignal(); |
1067 | 1069 |
1068 DoSSLCloseOpenedNoError(); | 1070 DoSSLCloseOpenedNoError(); |
1069 } | 1071 } |
1070 | 1072 |
1071 } // namespace | 1073 } // namespace |
1072 | 1074 |
1073 } // namespace notifier | 1075 } // namespace notifier |
OLD | NEW |