OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/spdy/spdy_proxy_client_socket.h" | 5 #include "net/spdy/spdy_proxy_client_socket.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "net/base/address_list.h" | 8 #include "net/base/address_list.h" |
9 #include "net/base/net_log.h" | 9 #include "net/base/net_log.h" |
10 #include "net/base/net_log_unittest.h" | 10 #include "net/base/net_log_unittest.h" |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
142 endpoint_host_port_pair_(kOriginHost, kOriginPort), | 142 endpoint_host_port_pair_(kOriginHost, kOriginPort), |
143 proxy_(ProxyServer::SCHEME_HTTPS, proxy_host_port_), | 143 proxy_(ProxyServer::SCHEME_HTTPS, proxy_host_port_), |
144 endpoint_host_port_proxy_pair_(endpoint_host_port_pair_, proxy_), | 144 endpoint_host_port_proxy_pair_(endpoint_host_port_pair_, proxy_), |
145 transport_params_(new TransportSocketParams(proxy_host_port_, | 145 transport_params_(new TransportSocketParams(proxy_host_port_, |
146 LOWEST, | 146 LOWEST, |
147 false, | 147 false, |
148 false)) { | 148 false)) { |
149 } | 149 } |
150 | 150 |
151 void SpdyProxyClientSocketTest::TearDown() { | 151 void SpdyProxyClientSocketTest::TearDown() { |
152 sock_.reset(NULL); | |
152 if (session_ != NULL) | 153 if (session_ != NULL) |
153 session_->spdy_session_pool()->CloseAllSessions(); | 154 session_->spdy_session_pool()->CloseAllSessions(); |
154 | 155 |
155 spdy::SpdyFramer::set_enable_compression_default(true); | 156 spdy::SpdyFramer::set_enable_compression_default(true); |
156 // Empty the current queue. | 157 // Empty the current queue. |
157 MessageLoop::current()->RunAllPending(); | 158 MessageLoop::current()->RunAllPending(); |
158 PlatformTest::TearDown(); | 159 PlatformTest::TearDown(); |
159 } | 160 } |
160 | 161 |
161 void SpdyProxyClientSocketTest::Initialize(MockRead* reads, | 162 void SpdyProxyClientSocketTest::Initialize(MockRead* reads, |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
605 | 606 |
606 Initialize(reads, arraysize(reads), writes, arraysize(writes)); | 607 Initialize(reads, arraysize(reads), writes, arraysize(writes)); |
607 | 608 |
608 net::AddressList addr; | 609 net::AddressList addr; |
609 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->GetPeerAddress(&addr)); | 610 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->GetPeerAddress(&addr)); |
610 | 611 |
611 AssertConnectSucceeds(); | 612 AssertConnectSucceeds(); |
612 EXPECT_TRUE(sock_->IsConnected()); | 613 EXPECT_TRUE(sock_->IsConnected()); |
613 EXPECT_EQ(OK, sock_->GetPeerAddress(&addr)); | 614 EXPECT_EQ(OK, sock_->GetPeerAddress(&addr)); |
614 | 615 |
616 Run(1); | |
617 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->GetPeerAddress(&addr)); | |
wtc
2011/12/02 23:16:40
Should we also do
EXPECT_FALSE(sock_->IsConnecte
Ryan Hamilton
2011/12/02 23:59:17
Done.
| |
618 | |
615 sock_->Disconnect(); | 619 sock_->Disconnect(); |
620 | |
616 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->GetPeerAddress(&addr)); | 621 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->GetPeerAddress(&addr)); |
617 } | 622 } |
618 | 623 |
619 // ----------- Write | 624 // ----------- Write |
620 | 625 |
621 TEST_F(SpdyProxyClientSocketTest, WriteSendsDataInDataFrame) { | 626 TEST_F(SpdyProxyClientSocketTest, WriteSendsDataInDataFrame) { |
622 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); | 627 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); |
623 scoped_ptr<spdy::SpdyFrame> msg1(ConstructBodyFrame(kMsg1, kLen1)); | 628 scoped_ptr<spdy::SpdyFrame> msg1(ConstructBodyFrame(kMsg1, kLen1)); |
624 scoped_ptr<spdy::SpdyFrame> msg2(ConstructBodyFrame(kMsg2, kLen2)); | 629 scoped_ptr<spdy::SpdyFrame> msg2(ConstructBodyFrame(kMsg2, kLen2)); |
625 MockWrite writes[] = { | 630 MockWrite writes[] = { |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1015 CreateMockRead(*resp, 1, true), | 1020 CreateMockRead(*resp, 1, true), |
1016 MockRead(true, 0, 2), // EOF | 1021 MockRead(true, 0, 2), // EOF |
1017 }; | 1022 }; |
1018 | 1023 |
1019 Initialize(reads, arraysize(reads), writes, arraysize(writes)); | 1024 Initialize(reads, arraysize(reads), writes, arraysize(writes)); |
1020 | 1025 |
1021 AssertConnectSucceeds(); | 1026 AssertConnectSucceeds(); |
1022 | 1027 |
1023 Run(1); | 1028 Run(1); |
1024 | 1029 |
1030 ASSERT_FALSE(sock_->IsConnected()); | |
1025 ASSERT_EQ(0, sock_->Read(NULL, 1, NULL)); | 1031 ASSERT_EQ(0, sock_->Read(NULL, 1, NULL)); |
1026 ASSERT_EQ(ERR_CONNECTION_CLOSED, sock_->Read(NULL, 1, NULL)); | 1032 |
1027 ASSERT_EQ(ERR_CONNECTION_CLOSED, sock_->Read(NULL, 1, NULL)); | 1033 ASSERT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->Read(NULL, 1, NULL)); |
1034 ASSERT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->Read(NULL, 1, NULL)); | |
1028 ASSERT_FALSE(sock_->IsConnectedAndIdle()); | 1035 ASSERT_FALSE(sock_->IsConnectedAndIdle()); |
1029 } | 1036 } |
1030 | 1037 |
1031 // Read pending when socket is closed should return 0 | 1038 // Read pending when socket is closed should return 0 |
1032 TEST_F(SpdyProxyClientSocketTest, PendingReadOnCloseReturnsZero) { | 1039 TEST_F(SpdyProxyClientSocketTest, PendingReadOnCloseReturnsZero) { |
1033 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); | 1040 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); |
1034 MockWrite writes[] = { | 1041 MockWrite writes[] = { |
1035 CreateMockWrite(*conn, 0, false), | 1042 CreateMockWrite(*conn, 0, false), |
1036 }; | 1043 }; |
1037 | 1044 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1089 CreateMockRead(*msg1, 2, true), | 1096 CreateMockRead(*msg1, 2, true), |
1090 MockRead(true, 0, 3), // EOF | 1097 MockRead(true, 0, 3), // EOF |
1091 }; | 1098 }; |
1092 | 1099 |
1093 Initialize(reads, arraysize(reads), writes, arraysize(writes)); | 1100 Initialize(reads, arraysize(reads), writes, arraysize(writes)); |
1094 | 1101 |
1095 AssertConnectSucceeds(); | 1102 AssertConnectSucceeds(); |
1096 | 1103 |
1097 Run(2); | 1104 Run(2); |
1098 | 1105 |
1099 AssertSyncReadEquals(kMsg1, kLen1); | 1106 scoped_refptr<IOBuffer> buf(new IOBuffer(kLen1)); |
1107 ASSERT_EQ(kLen1, sock_->Read(buf, kLen1, NULL)); | |
1108 ASSERT_EQ(std::string(kMsg1, kLen1), std::string(buf->data(), kLen1)); | |
1109 | |
1100 ASSERT_EQ(0, sock_->Read(NULL, 1, NULL)); | 1110 ASSERT_EQ(0, sock_->Read(NULL, 1, NULL)); |
1101 ASSERT_EQ(ERR_CONNECTION_CLOSED, sock_->Read(NULL, 1, NULL)); | 1111 ASSERT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->Read(NULL, 1, NULL)); |
1102 // Verify that read *still* returns ERR_CONNECTION_CLOSED | 1112 // Verify that read *still* returns ERR_CONNECTION_CLOSED |
1103 ASSERT_EQ(ERR_CONNECTION_CLOSED, sock_->Read(NULL, 1, NULL)); | 1113 ASSERT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->Read(NULL, 1, NULL)); |
1104 } | 1114 } |
1105 | 1115 |
1106 // Calling Write() on a closed socket is an error | 1116 // Calling Write() on a closed socket is an error |
1107 TEST_F(SpdyProxyClientSocketTest, WriteOnClosedStream) { | 1117 TEST_F(SpdyProxyClientSocketTest, WriteOnClosedStream) { |
1108 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); | 1118 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); |
1109 MockWrite writes[] = { | 1119 MockWrite writes[] = { |
1110 CreateMockWrite(*conn, 0, false), | 1120 CreateMockWrite(*conn, 0, false), |
1111 }; | 1121 }; |
1112 | 1122 |
1113 scoped_ptr<spdy::SpdyFrame> resp(ConstructConnectReplyFrame()); | 1123 scoped_ptr<spdy::SpdyFrame> resp(ConstructConnectReplyFrame()); |
1114 scoped_ptr<spdy::SpdyFrame> msg1(ConstructBodyFrame(kMsg1, kLen1)); | 1124 scoped_ptr<spdy::SpdyFrame> msg1(ConstructBodyFrame(kMsg1, kLen1)); |
1115 MockRead reads[] = { | 1125 MockRead reads[] = { |
1116 CreateMockRead(*resp, 1, true), | 1126 CreateMockRead(*resp, 1, true), |
1117 MockRead(true, 0, 2), // EOF | 1127 MockRead(true, 0, 2), // EOF |
1118 }; | 1128 }; |
1119 | 1129 |
1120 Initialize(reads, arraysize(reads), writes, arraysize(writes)); | 1130 Initialize(reads, arraysize(reads), writes, arraysize(writes)); |
1121 | 1131 |
1122 AssertConnectSucceeds(); | 1132 AssertConnectSucceeds(); |
1123 | 1133 |
1124 Run(1); // Read EOF which will close the stream | 1134 Run(1); // Read EOF which will close the stream |
1125 scoped_refptr<IOBufferWithSize> buf(CreateBuffer(kMsg1, kLen1)); | 1135 scoped_refptr<IOBufferWithSize> buf(CreateBuffer(kMsg1, kLen1)); |
1126 EXPECT_EQ(ERR_CONNECTION_CLOSED, sock_->Write(buf, buf->size(), NULL)); | 1136 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, sock_->Write(buf, buf->size(), NULL)); |
1127 } | 1137 } |
1128 | 1138 |
1129 // Calling Write() on a disconnected socket is an error | 1139 // Calling Write() on a disconnected socket is an error |
1130 TEST_F(SpdyProxyClientSocketTest, WriteOnDisconnectedSocket) { | 1140 TEST_F(SpdyProxyClientSocketTest, WriteOnDisconnectedSocket) { |
1131 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); | 1141 scoped_ptr<spdy::SpdyFrame> conn(ConstructConnectRequestFrame()); |
1132 MockWrite writes[] = { | 1142 MockWrite writes[] = { |
1133 CreateMockWrite(*conn, 0, false), | 1143 CreateMockWrite(*conn, 0, false), |
1134 }; | 1144 }; |
1135 | 1145 |
1136 scoped_ptr<spdy::SpdyFrame> resp(ConstructConnectReplyFrame()); | 1146 scoped_ptr<spdy::SpdyFrame> resp(ConstructConnectReplyFrame()); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1327 &write_callback_)); | 1337 &write_callback_)); |
1328 | 1338 |
1329 Run(2); | 1339 Run(2); |
1330 | 1340 |
1331 EXPECT_FALSE(sock_.get()); | 1341 EXPECT_FALSE(sock_.get()); |
1332 EXPECT_TRUE(read_callback.have_result()); | 1342 EXPECT_TRUE(read_callback.have_result()); |
1333 EXPECT_FALSE(write_callback_.have_result()); | 1343 EXPECT_FALSE(write_callback_.have_result()); |
1334 } | 1344 } |
1335 | 1345 |
1336 } // namespace net | 1346 } // namespace net |
OLD | NEW |