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

Side by Side Diff: net/socket/socks_client_socket_pool_unittest.cc

Issue 9419032: Modify the MockConnect constructor to take an enum of ASYNC or SYNC, instead (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fix Test Break Created 8 years, 10 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) 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/socket/socks_client_socket_pool.h" 5 #include "net/socket/socks_client_socket_pool.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "net/base/mock_host_resolver.h" 10 #include "net/base/mock_host_resolver.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 MockTransportClientSocketPool transport_socket_pool_; 90 MockTransportClientSocketPool transport_socket_pool_;
91 91
92 scoped_refptr<SOCKSSocketParams> ignored_socket_params_; 92 scoped_refptr<SOCKSSocketParams> ignored_socket_params_;
93 ClientSocketPoolHistograms socks_histograms_; 93 ClientSocketPoolHistograms socks_histograms_;
94 SOCKSClientSocketPool pool_; 94 SOCKSClientSocketPool pool_;
95 ClientSocketPoolTest test_base_; 95 ClientSocketPoolTest test_base_;
96 }; 96 };
97 97
98 TEST_F(SOCKSClientSocketPoolTest, Simple) { 98 TEST_F(SOCKSClientSocketPoolTest, Simple) {
99 SOCKS5MockData data(false); 99 SOCKS5MockData data(false);
100 data.data_provider()->set_connect_data(MockConnect(false, 0)); 100 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
101 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider()); 101 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
102 102
103 ClientSocketHandle handle; 103 ClientSocketHandle handle;
104 int rv = handle.Init("a", ignored_socket_params_, LOW, CompletionCallback(), 104 int rv = handle.Init("a", ignored_socket_params_, LOW, CompletionCallback(),
105 &pool_, BoundNetLog()); 105 &pool_, BoundNetLog());
106 EXPECT_EQ(OK, rv); 106 EXPECT_EQ(OK, rv);
107 EXPECT_TRUE(handle.is_initialized()); 107 EXPECT_TRUE(handle.is_initialized());
108 EXPECT_TRUE(handle.socket()); 108 EXPECT_TRUE(handle.socket());
109 } 109 }
110 110
111 TEST_F(SOCKSClientSocketPoolTest, Async) { 111 TEST_F(SOCKSClientSocketPoolTest, Async) {
112 SOCKS5MockData data(true); 112 SOCKS5MockData data(true);
113 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider()); 113 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
114 114
115 TestCompletionCallback callback; 115 TestCompletionCallback callback;
116 ClientSocketHandle handle; 116 ClientSocketHandle handle;
117 int rv = handle.Init("a", ignored_socket_params_, LOW, callback.callback(), 117 int rv = handle.Init("a", ignored_socket_params_, LOW, callback.callback(),
118 &pool_, BoundNetLog()); 118 &pool_, BoundNetLog());
119 EXPECT_EQ(ERR_IO_PENDING, rv); 119 EXPECT_EQ(ERR_IO_PENDING, rv);
120 EXPECT_FALSE(handle.is_initialized()); 120 EXPECT_FALSE(handle.is_initialized());
121 EXPECT_FALSE(handle.socket()); 121 EXPECT_FALSE(handle.socket());
122 122
123 EXPECT_EQ(OK, callback.WaitForResult()); 123 EXPECT_EQ(OK, callback.WaitForResult());
124 EXPECT_TRUE(handle.is_initialized()); 124 EXPECT_TRUE(handle.is_initialized());
125 EXPECT_TRUE(handle.socket()); 125 EXPECT_TRUE(handle.socket());
126 } 126 }
127 127
128 TEST_F(SOCKSClientSocketPoolTest, TransportConnectError) { 128 TEST_F(SOCKSClientSocketPoolTest, TransportConnectError) {
129 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider()); 129 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider());
130 socket_data->set_connect_data(MockConnect(false, ERR_CONNECTION_REFUSED)); 130 socket_data->set_connect_data(MockConnect(SYNCHRONOUS,
131 ERR_CONNECTION_REFUSED));
131 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get()); 132 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get());
132 133
133 ClientSocketHandle handle; 134 ClientSocketHandle handle;
134 int rv = handle.Init("a", ignored_socket_params_, LOW, CompletionCallback(), 135 int rv = handle.Init("a", ignored_socket_params_, LOW, CompletionCallback(),
135 &pool_, BoundNetLog()); 136 &pool_, BoundNetLog());
136 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); 137 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv);
137 EXPECT_FALSE(handle.is_initialized()); 138 EXPECT_FALSE(handle.is_initialized());
138 EXPECT_FALSE(handle.socket()); 139 EXPECT_FALSE(handle.socket());
139 } 140 }
140 141
141 TEST_F(SOCKSClientSocketPoolTest, AsyncTransportConnectError) { 142 TEST_F(SOCKSClientSocketPoolTest, AsyncTransportConnectError) {
142 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider()); 143 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider());
143 socket_data->set_connect_data(MockConnect(true, ERR_CONNECTION_REFUSED)); 144 socket_data->set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
144 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get()); 145 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get());
145 146
146 TestCompletionCallback callback; 147 TestCompletionCallback callback;
147 ClientSocketHandle handle; 148 ClientSocketHandle handle;
148 int rv = handle.Init("a", ignored_socket_params_, LOW, callback.callback(), 149 int rv = handle.Init("a", ignored_socket_params_, LOW, callback.callback(),
149 &pool_, BoundNetLog()); 150 &pool_, BoundNetLog());
150 EXPECT_EQ(ERR_IO_PENDING, rv); 151 EXPECT_EQ(ERR_IO_PENDING, rv);
151 EXPECT_FALSE(handle.is_initialized()); 152 EXPECT_FALSE(handle.is_initialized());
152 EXPECT_FALSE(handle.socket()); 153 EXPECT_FALSE(handle.socket());
153 154
154 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback.WaitForResult()); 155 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback.WaitForResult());
155 EXPECT_FALSE(handle.is_initialized()); 156 EXPECT_FALSE(handle.is_initialized());
156 EXPECT_FALSE(handle.socket()); 157 EXPECT_FALSE(handle.socket());
157 } 158 }
158 159
159 TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) { 160 TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) {
160 MockRead failed_read[] = { 161 MockRead failed_read[] = {
161 MockRead(false, 0), 162 MockRead(false, 0),
162 }; 163 };
163 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider( 164 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider(
164 failed_read, arraysize(failed_read), NULL, 0)); 165 failed_read, arraysize(failed_read), NULL, 0));
165 socket_data->set_connect_data(MockConnect(false, 0)); 166 socket_data->set_connect_data(MockConnect(SYNCHRONOUS, OK));
166 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get()); 167 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get());
167 168
168 ClientSocketHandle handle; 169 ClientSocketHandle handle;
169 EXPECT_EQ(0, transport_socket_pool_.release_count()); 170 EXPECT_EQ(0, transport_socket_pool_.release_count());
170 int rv = handle.Init("a", ignored_socket_params_, LOW, CompletionCallback(), 171 int rv = handle.Init("a", ignored_socket_params_, LOW, CompletionCallback(),
171 &pool_, BoundNetLog()); 172 &pool_, BoundNetLog());
172 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv); 173 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv);
173 EXPECT_FALSE(handle.is_initialized()); 174 EXPECT_FALSE(handle.is_initialized());
174 EXPECT_FALSE(handle.socket()); 175 EXPECT_FALSE(handle.socket());
175 EXPECT_EQ(1, transport_socket_pool_.release_count()); 176 EXPECT_EQ(1, transport_socket_pool_.release_count());
176 } 177 }
177 178
178 TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) { 179 TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) {
179 MockRead failed_read[] = { 180 MockRead failed_read[] = {
180 MockRead(true, 0), 181 MockRead(true, 0),
181 }; 182 };
182 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider( 183 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider(
183 failed_read, arraysize(failed_read), NULL, 0)); 184 failed_read, arraysize(failed_read), NULL, 0));
184 socket_data->set_connect_data(MockConnect(false, 0)); 185 socket_data->set_connect_data(MockConnect(SYNCHRONOUS, OK));
185 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get()); 186 transport_client_socket_factory_.AddSocketDataProvider(socket_data.get());
186 187
187 TestCompletionCallback callback; 188 TestCompletionCallback callback;
188 ClientSocketHandle handle; 189 ClientSocketHandle handle;
189 EXPECT_EQ(0, transport_socket_pool_.release_count()); 190 EXPECT_EQ(0, transport_socket_pool_.release_count());
190 int rv = handle.Init("a", ignored_socket_params_, LOW, callback.callback(), 191 int rv = handle.Init("a", ignored_socket_params_, LOW, callback.callback(),
191 &pool_, BoundNetLog()); 192 &pool_, BoundNetLog());
192 EXPECT_EQ(ERR_IO_PENDING, rv); 193 EXPECT_EQ(ERR_IO_PENDING, rv);
193 EXPECT_FALSE(handle.is_initialized()); 194 EXPECT_FALSE(handle.is_initialized());
194 EXPECT_FALSE(handle.socket()); 195 EXPECT_FALSE(handle.socket());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(2)); 227 EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(2));
227 EXPECT_EQ(0, transport_socket_pool_.cancel_count()); 228 EXPECT_EQ(0, transport_socket_pool_.cancel_count());
228 EXPECT_EQ(2, pool_.IdleSocketCount()); 229 EXPECT_EQ(2, pool_.IdleSocketCount());
229 230
230 (*requests())[0]->handle()->Reset(); 231 (*requests())[0]->handle()->Reset();
231 (*requests())[1]->handle()->Reset(); 232 (*requests())[1]->handle()->Reset();
232 } 233 }
233 234
234 TEST_F(SOCKSClientSocketPoolTest, CancelDuringSOCKSConnect) { 235 TEST_F(SOCKSClientSocketPoolTest, CancelDuringSOCKSConnect) {
235 SOCKS5MockData data(true); 236 SOCKS5MockData data(true);
236 data.data_provider()->set_connect_data(MockConnect(false, 0)); 237 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
237 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider()); 238 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
238 // We need two connections because the pool base lets one cancelled 239 // We need two connections because the pool base lets one cancelled
239 // connect job proceed for potential future use. 240 // connect job proceed for potential future use.
240 SOCKS5MockData data2(true); 241 SOCKS5MockData data2(true);
241 data2.data_provider()->set_connect_data(MockConnect(false, 0)); 242 data2.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
242 transport_client_socket_factory_.AddSocketDataProvider(data2.data_provider()); 243 transport_client_socket_factory_.AddSocketDataProvider(data2.data_provider());
243 244
244 EXPECT_EQ(0, transport_socket_pool_.cancel_count()); 245 EXPECT_EQ(0, transport_socket_pool_.cancel_count());
245 EXPECT_EQ(0, transport_socket_pool_.release_count()); 246 EXPECT_EQ(0, transport_socket_pool_.release_count());
246 int rv = StartRequest("a", LOW); 247 int rv = StartRequest("a", LOW);
247 EXPECT_EQ(ERR_IO_PENDING, rv); 248 EXPECT_EQ(ERR_IO_PENDING, rv);
248 249
249 rv = StartRequest("a", LOW); 250 rv = StartRequest("a", LOW);
250 EXPECT_EQ(ERR_IO_PENDING, rv); 251 EXPECT_EQ(ERR_IO_PENDING, rv);
251 252
(...skipping 14 matching lines...) Expand all
266 267
267 (*requests())[0]->handle()->Reset(); 268 (*requests())[0]->handle()->Reset();
268 (*requests())[1]->handle()->Reset(); 269 (*requests())[1]->handle()->Reset();
269 } 270 }
270 271
271 // It would be nice to also test the timeouts in SOCKSClientSocketPool. 272 // It would be nice to also test the timeouts in SOCKSClientSocketPool.
272 273
273 } // namespace 274 } // namespace
274 275
275 } // namespace net 276 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698