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

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

Issue 4118004: Update NetLog to be thread safe. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Final sync with trunk Created 10 years 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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.h" 5 #include "net/socket/socks_client_socket.h"
6 6
7 #include "net/base/address_list.h" 7 #include "net/base/address_list.h"
8 #include "net/base/net_log.h" 8 #include "net/base/net_log.h"
9 #include "net/base/net_log_unittest.h" 9 #include "net/base/net_log_unittest.h"
10 #include "net/base/mock_host_resolver.h" 10 #include "net/base/mock_host_resolver.h"
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 host_resolver_.get(), 135 host_resolver_.get(),
136 "localhost", 80, 136 "localhost", 80,
137 &log)); 137 &log));
138 138
139 // At this state the TCP connection is completed but not the SOCKS handshake. 139 // At this state the TCP connection is completed but not the SOCKS handshake.
140 EXPECT_TRUE(tcp_sock_->IsConnected()); 140 EXPECT_TRUE(tcp_sock_->IsConnected());
141 EXPECT_FALSE(user_sock_->IsConnected()); 141 EXPECT_FALSE(user_sock_->IsConnected());
142 142
143 int rv = user_sock_->Connect(&callback_); 143 int rv = user_sock_->Connect(&callback_);
144 EXPECT_EQ(ERR_IO_PENDING, rv); 144 EXPECT_EQ(ERR_IO_PENDING, rv);
145
146 net::CapturingNetLog::EntryList entries;
147 log.GetEntries(&entries);
145 EXPECT_TRUE( 148 EXPECT_TRUE(
146 LogContainsBeginEvent(log.entries(), 0, NetLog::TYPE_SOCKS_CONNECT)); 149 LogContainsBeginEvent(entries, 0, NetLog::TYPE_SOCKS_CONNECT));
147 EXPECT_FALSE(user_sock_->IsConnected()); 150 EXPECT_FALSE(user_sock_->IsConnected());
151
148 rv = callback_.WaitForResult(); 152 rv = callback_.WaitForResult();
149
150 EXPECT_EQ(OK, rv); 153 EXPECT_EQ(OK, rv);
151 EXPECT_TRUE(user_sock_->IsConnected()); 154 EXPECT_TRUE(user_sock_->IsConnected());
152 EXPECT_EQ(SOCKSClientSocket::kSOCKS4, user_sock_->socks_version_); 155 EXPECT_EQ(SOCKSClientSocket::kSOCKS4, user_sock_->socks_version_);
156 log.GetEntries(&entries);
153 EXPECT_TRUE(LogContainsEndEvent( 157 EXPECT_TRUE(LogContainsEndEvent(
154 log.entries(), -1, NetLog::TYPE_SOCKS_CONNECT)); 158 entries, -1, NetLog::TYPE_SOCKS_CONNECT));
155 159
156 scoped_refptr<IOBuffer> buffer(new IOBuffer(payload_write.size())); 160 scoped_refptr<IOBuffer> buffer(new IOBuffer(payload_write.size()));
157 memcpy(buffer->data(), payload_write.data(), payload_write.size()); 161 memcpy(buffer->data(), payload_write.data(), payload_write.size());
158 rv = user_sock_->Write(buffer, payload_write.size(), &callback_); 162 rv = user_sock_->Write(buffer, payload_write.size(), &callback_);
159 EXPECT_EQ(ERR_IO_PENDING, rv); 163 EXPECT_EQ(ERR_IO_PENDING, rv);
160 rv = callback_.WaitForResult(); 164 rv = callback_.WaitForResult();
161 EXPECT_EQ(static_cast<int>(payload_write.size()), rv); 165 EXPECT_EQ(static_cast<int>(payload_write.size()), rv);
162 166
163 buffer = new IOBuffer(payload_read.size()); 167 buffer = new IOBuffer(payload_read.size());
164 rv = user_sock_->Read(buffer, payload_read.size(), &callback_); 168 rv = user_sock_->Read(buffer, payload_read.size(), &callback_);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 CapturingNetLog log(CapturingNetLog::kUnbounded); 205 CapturingNetLog log(CapturingNetLog::kUnbounded);
202 206
203 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), 207 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads),
204 data_writes, arraysize(data_writes), 208 data_writes, arraysize(data_writes),
205 host_resolver_.get(), 209 host_resolver_.get(),
206 "localhost", 80, 210 "localhost", 80,
207 &log)); 211 &log));
208 212
209 int rv = user_sock_->Connect(&callback_); 213 int rv = user_sock_->Connect(&callback_);
210 EXPECT_EQ(ERR_IO_PENDING, rv); 214 EXPECT_EQ(ERR_IO_PENDING, rv);
215
216 net::CapturingNetLog::EntryList entries;
217 log.GetEntries(&entries);
211 EXPECT_TRUE(LogContainsBeginEvent( 218 EXPECT_TRUE(LogContainsBeginEvent(
212 log.entries(), 0, NetLog::TYPE_SOCKS_CONNECT)); 219 entries, 0, NetLog::TYPE_SOCKS_CONNECT));
220
213 rv = callback_.WaitForResult(); 221 rv = callback_.WaitForResult();
214 EXPECT_EQ(tests[i].fail_code, rv); 222 EXPECT_EQ(tests[i].fail_code, rv);
215 EXPECT_FALSE(user_sock_->IsConnected()); 223 EXPECT_FALSE(user_sock_->IsConnected());
216 EXPECT_TRUE(tcp_sock_->IsConnected()); 224 EXPECT_TRUE(tcp_sock_->IsConnected());
225 log.GetEntries(&entries);
217 EXPECT_TRUE(LogContainsEndEvent( 226 EXPECT_TRUE(LogContainsEndEvent(
218 log.entries(), -1, NetLog::TYPE_SOCKS_CONNECT)); 227 entries, -1, NetLog::TYPE_SOCKS_CONNECT));
219 } 228 }
220 } 229 }
221 230
222 // Tests scenario when the server sends the handshake response in 231 // Tests scenario when the server sends the handshake response in
223 // more than one packet. 232 // more than one packet.
224 TEST_F(SOCKSClientSocketTest, PartialServerReads) { 233 TEST_F(SOCKSClientSocketTest, PartialServerReads) {
225 const char kSOCKSPartialReply1[] = { 0x00 }; 234 const char kSOCKSPartialReply1[] = { 0x00 };
226 const char kSOCKSPartialReply2[] = { 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; 235 const char kSOCKSPartialReply2[] = { 0x5A, 0x00, 0x00, 0, 0, 0, 0 };
227 236
228 MockWrite data_writes[] = { 237 MockWrite data_writes[] = {
229 MockWrite(true, kSOCKSOkRequest, arraysize(kSOCKSOkRequest)) }; 238 MockWrite(true, kSOCKSOkRequest, arraysize(kSOCKSOkRequest)) };
230 MockRead data_reads[] = { 239 MockRead data_reads[] = {
231 MockRead(true, kSOCKSPartialReply1, arraysize(kSOCKSPartialReply1)), 240 MockRead(true, kSOCKSPartialReply1, arraysize(kSOCKSPartialReply1)),
232 MockRead(true, kSOCKSPartialReply2, arraysize(kSOCKSPartialReply2)) }; 241 MockRead(true, kSOCKSPartialReply2, arraysize(kSOCKSPartialReply2)) };
233 CapturingNetLog log(CapturingNetLog::kUnbounded); 242 CapturingNetLog log(CapturingNetLog::kUnbounded);
234 243
235 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), 244 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads),
236 data_writes, arraysize(data_writes), 245 data_writes, arraysize(data_writes),
237 host_resolver_.get(), 246 host_resolver_.get(),
238 "localhost", 80, 247 "localhost", 80,
239 &log)); 248 &log));
240 249
241 int rv = user_sock_->Connect(&callback_); 250 int rv = user_sock_->Connect(&callback_);
242 EXPECT_EQ(ERR_IO_PENDING, rv); 251 EXPECT_EQ(ERR_IO_PENDING, rv);
252 net::CapturingNetLog::EntryList entries;
253 log.GetEntries(&entries);
243 EXPECT_TRUE(LogContainsBeginEvent( 254 EXPECT_TRUE(LogContainsBeginEvent(
244 log.entries(), 0, NetLog::TYPE_SOCKS_CONNECT)); 255 entries, 0, NetLog::TYPE_SOCKS_CONNECT));
256
245 rv = callback_.WaitForResult(); 257 rv = callback_.WaitForResult();
246 EXPECT_EQ(OK, rv); 258 EXPECT_EQ(OK, rv);
247 EXPECT_TRUE(user_sock_->IsConnected()); 259 EXPECT_TRUE(user_sock_->IsConnected());
260 log.GetEntries(&entries);
248 EXPECT_TRUE(LogContainsEndEvent( 261 EXPECT_TRUE(LogContainsEndEvent(
249 log.entries(), -1, NetLog::TYPE_SOCKS_CONNECT)); 262 entries, -1, NetLog::TYPE_SOCKS_CONNECT));
250 } 263 }
251 264
252 // Tests scenario when the client sends the handshake request in 265 // Tests scenario when the client sends the handshake request in
253 // more than one packet. 266 // more than one packet.
254 TEST_F(SOCKSClientSocketTest, PartialClientWrites) { 267 TEST_F(SOCKSClientSocketTest, PartialClientWrites) {
255 const char kSOCKSPartialRequest1[] = { 0x04, 0x01 }; 268 const char kSOCKSPartialRequest1[] = { 0x04, 0x01 };
256 const char kSOCKSPartialRequest2[] = { 0x00, 0x50, 127, 0, 0, 1, 0 }; 269 const char kSOCKSPartialRequest2[] = { 0x00, 0x50, 127, 0, 0, 1, 0 };
257 270
258 MockWrite data_writes[] = { 271 MockWrite data_writes[] = {
259 MockWrite(true, arraysize(kSOCKSPartialRequest1)), 272 MockWrite(true, arraysize(kSOCKSPartialRequest1)),
260 // simulate some empty writes 273 // simulate some empty writes
261 MockWrite(true, 0), 274 MockWrite(true, 0),
262 MockWrite(true, 0), 275 MockWrite(true, 0),
263 MockWrite(true, kSOCKSPartialRequest2, 276 MockWrite(true, kSOCKSPartialRequest2,
264 arraysize(kSOCKSPartialRequest2)) }; 277 arraysize(kSOCKSPartialRequest2)) };
265 MockRead data_reads[] = { 278 MockRead data_reads[] = {
266 MockRead(true, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; 279 MockRead(true, kSOCKSOkReply, arraysize(kSOCKSOkReply)) };
267 CapturingNetLog log(CapturingNetLog::kUnbounded); 280 CapturingNetLog log(CapturingNetLog::kUnbounded);
268 281
269 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), 282 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads),
270 data_writes, arraysize(data_writes), 283 data_writes, arraysize(data_writes),
271 host_resolver_.get(), 284 host_resolver_.get(),
272 "localhost", 80, 285 "localhost", 80,
273 &log)); 286 &log));
274 287
275 int rv = user_sock_->Connect(&callback_); 288 int rv = user_sock_->Connect(&callback_);
276 EXPECT_EQ(ERR_IO_PENDING, rv); 289 EXPECT_EQ(ERR_IO_PENDING, rv);
290 net::CapturingNetLog::EntryList entries;
291 log.GetEntries(&entries);
277 EXPECT_TRUE(LogContainsBeginEvent( 292 EXPECT_TRUE(LogContainsBeginEvent(
278 log.entries(), 0, NetLog::TYPE_SOCKS_CONNECT)); 293 entries, 0, NetLog::TYPE_SOCKS_CONNECT));
294
279 rv = callback_.WaitForResult(); 295 rv = callback_.WaitForResult();
280 EXPECT_EQ(OK, rv); 296 EXPECT_EQ(OK, rv);
281 EXPECT_TRUE(user_sock_->IsConnected()); 297 EXPECT_TRUE(user_sock_->IsConnected());
298 log.GetEntries(&entries);
282 EXPECT_TRUE(LogContainsEndEvent( 299 EXPECT_TRUE(LogContainsEndEvent(
283 log.entries(), -1, NetLog::TYPE_SOCKS_CONNECT)); 300 entries, -1, NetLog::TYPE_SOCKS_CONNECT));
284 } 301 }
285 302
286 // Tests the case when the server sends a smaller sized handshake data 303 // Tests the case when the server sends a smaller sized handshake data
287 // and closes the connection. 304 // and closes the connection.
288 TEST_F(SOCKSClientSocketTest, FailedSocketRead) { 305 TEST_F(SOCKSClientSocketTest, FailedSocketRead) {
289 MockWrite data_writes[] = { 306 MockWrite data_writes[] = {
290 MockWrite(true, kSOCKSOkRequest, arraysize(kSOCKSOkRequest)) }; 307 MockWrite(true, kSOCKSOkRequest, arraysize(kSOCKSOkRequest)) };
291 MockRead data_reads[] = { 308 MockRead data_reads[] = {
292 MockRead(true, kSOCKSOkReply, arraysize(kSOCKSOkReply) - 2), 309 MockRead(true, kSOCKSOkReply, arraysize(kSOCKSOkReply) - 2),
293 // close connection unexpectedly 310 // close connection unexpectedly
294 MockRead(false, 0) }; 311 MockRead(false, 0) };
295 CapturingNetLog log(CapturingNetLog::kUnbounded); 312 CapturingNetLog log(CapturingNetLog::kUnbounded);
296 313
297 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), 314 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads),
298 data_writes, arraysize(data_writes), 315 data_writes, arraysize(data_writes),
299 host_resolver_.get(), 316 host_resolver_.get(),
300 "localhost", 80, 317 "localhost", 80,
301 &log)); 318 &log));
302 319
303 int rv = user_sock_->Connect(&callback_); 320 int rv = user_sock_->Connect(&callback_);
304 EXPECT_EQ(ERR_IO_PENDING, rv); 321 EXPECT_EQ(ERR_IO_PENDING, rv);
322 net::CapturingNetLog::EntryList entries;
323 log.GetEntries(&entries);
305 EXPECT_TRUE(LogContainsBeginEvent( 324 EXPECT_TRUE(LogContainsBeginEvent(
306 log.entries(), 0, NetLog::TYPE_SOCKS_CONNECT)); 325 entries, 0, NetLog::TYPE_SOCKS_CONNECT));
326
307 rv = callback_.WaitForResult(); 327 rv = callback_.WaitForResult();
308 EXPECT_EQ(ERR_CONNECTION_CLOSED, rv); 328 EXPECT_EQ(ERR_CONNECTION_CLOSED, rv);
309 EXPECT_FALSE(user_sock_->IsConnected()); 329 EXPECT_FALSE(user_sock_->IsConnected());
330 log.GetEntries(&entries);
310 EXPECT_TRUE(LogContainsEndEvent( 331 EXPECT_TRUE(LogContainsEndEvent(
311 log.entries(), -1, NetLog::TYPE_SOCKS_CONNECT)); 332 entries, -1, NetLog::TYPE_SOCKS_CONNECT));
312 } 333 }
313 334
314 // Tries to connect to an unknown DNS and on failure should revert to SOCKS4A. 335 // Tries to connect to an unknown DNS and on failure should revert to SOCKS4A.
315 TEST_F(SOCKSClientSocketTest, SOCKS4AFailedDNS) { 336 TEST_F(SOCKSClientSocketTest, SOCKS4AFailedDNS) {
316 const char hostname[] = "unresolved.ipv4.address"; 337 const char hostname[] = "unresolved.ipv4.address";
317 338
318 host_resolver_->rules()->AddSimulatedFailure(hostname); 339 host_resolver_->rules()->AddSimulatedFailure(hostname);
319 340
320 std::string request(kSOCKS4aInitialRequest, 341 std::string request(kSOCKS4aInitialRequest,
321 arraysize(kSOCKS4aInitialRequest)); 342 arraysize(kSOCKS4aInitialRequest));
322 request.append(hostname, arraysize(hostname)); 343 request.append(hostname, arraysize(hostname));
323 344
324 MockWrite data_writes[] = { 345 MockWrite data_writes[] = {
325 MockWrite(false, request.data(), request.size()) }; 346 MockWrite(false, request.data(), request.size()) };
326 MockRead data_reads[] = { 347 MockRead data_reads[] = {
327 MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; 348 MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) };
328 CapturingNetLog log(CapturingNetLog::kUnbounded); 349 CapturingNetLog log(CapturingNetLog::kUnbounded);
329 350
330 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), 351 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads),
331 data_writes, arraysize(data_writes), 352 data_writes, arraysize(data_writes),
332 host_resolver_.get(), 353 host_resolver_.get(),
333 hostname, 80, 354 hostname, 80,
334 &log)); 355 &log));
335 356
336 int rv = user_sock_->Connect(&callback_); 357 int rv = user_sock_->Connect(&callback_);
337 EXPECT_EQ(ERR_IO_PENDING, rv); 358 EXPECT_EQ(ERR_IO_PENDING, rv);
359 net::CapturingNetLog::EntryList entries;
360 log.GetEntries(&entries);
338 EXPECT_TRUE(LogContainsBeginEvent( 361 EXPECT_TRUE(LogContainsBeginEvent(
339 log.entries(), 0, NetLog::TYPE_SOCKS_CONNECT)); 362 entries, 0, NetLog::TYPE_SOCKS_CONNECT));
363
340 rv = callback_.WaitForResult(); 364 rv = callback_.WaitForResult();
341 EXPECT_EQ(OK, rv); 365 EXPECT_EQ(OK, rv);
342 EXPECT_TRUE(user_sock_->IsConnected()); 366 EXPECT_TRUE(user_sock_->IsConnected());
343 EXPECT_EQ(SOCKSClientSocket::kSOCKS4a, user_sock_->socks_version_); 367 EXPECT_EQ(SOCKSClientSocket::kSOCKS4a, user_sock_->socks_version_);
368 log.GetEntries(&entries);
344 EXPECT_TRUE(LogContainsEndEvent( 369 EXPECT_TRUE(LogContainsEndEvent(
345 log.entries(), -1, NetLog::TYPE_SOCKS_CONNECT)); 370 entries, -1, NetLog::TYPE_SOCKS_CONNECT));
346 } 371 }
347 372
348 // Tries to connect to a domain that resolves to IPv6. 373 // Tries to connect to a domain that resolves to IPv6.
349 // Should revert to SOCKS4a. 374 // Should revert to SOCKS4a.
350 TEST_F(SOCKSClientSocketTest, SOCKS4AIfDomainInIPv6) { 375 TEST_F(SOCKSClientSocketTest, SOCKS4AIfDomainInIPv6) {
351 const char hostname[] = "an.ipv6.address"; 376 const char hostname[] = "an.ipv6.address";
352 377
353 host_resolver_->rules()->AddIPLiteralRule(hostname, 378 host_resolver_->rules()->AddIPLiteralRule(hostname,
354 "2001:db8:8714:3a90::12", ""); 379 "2001:db8:8714:3a90::12", "");
355 380
356 std::string request(kSOCKS4aInitialRequest, 381 std::string request(kSOCKS4aInitialRequest,
357 arraysize(kSOCKS4aInitialRequest)); 382 arraysize(kSOCKS4aInitialRequest));
358 request.append(hostname, arraysize(hostname)); 383 request.append(hostname, arraysize(hostname));
359 384
360 MockWrite data_writes[] = { 385 MockWrite data_writes[] = {
361 MockWrite(false, request.data(), request.size()) }; 386 MockWrite(false, request.data(), request.size()) };
362 MockRead data_reads[] = { 387 MockRead data_reads[] = {
363 MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; 388 MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) };
364 CapturingNetLog log(CapturingNetLog::kUnbounded); 389 CapturingNetLog log(CapturingNetLog::kUnbounded);
365 390
366 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads), 391 user_sock_.reset(BuildMockSocket(data_reads, arraysize(data_reads),
367 data_writes, arraysize(data_writes), 392 data_writes, arraysize(data_writes),
368 host_resolver_.get(), 393 host_resolver_.get(),
369 hostname, 80, 394 hostname, 80,
370 &log)); 395 &log));
371 396
372 int rv = user_sock_->Connect(&callback_); 397 int rv = user_sock_->Connect(&callback_);
373 EXPECT_EQ(ERR_IO_PENDING, rv); 398 EXPECT_EQ(ERR_IO_PENDING, rv);
399 net::CapturingNetLog::EntryList entries;
400 log.GetEntries(&entries);
374 EXPECT_TRUE(LogContainsBeginEvent( 401 EXPECT_TRUE(LogContainsBeginEvent(
375 log.entries(), 0, NetLog::TYPE_SOCKS_CONNECT)); 402 entries, 0, NetLog::TYPE_SOCKS_CONNECT));
403
376 rv = callback_.WaitForResult(); 404 rv = callback_.WaitForResult();
377 EXPECT_EQ(OK, rv); 405 EXPECT_EQ(OK, rv);
378 EXPECT_TRUE(user_sock_->IsConnected()); 406 EXPECT_TRUE(user_sock_->IsConnected());
379 EXPECT_EQ(SOCKSClientSocket::kSOCKS4a, user_sock_->socks_version_); 407 EXPECT_EQ(SOCKSClientSocket::kSOCKS4a, user_sock_->socks_version_);
408 log.GetEntries(&entries);
380 EXPECT_TRUE(LogContainsEndEvent( 409 EXPECT_TRUE(LogContainsEndEvent(
381 log.entries(), -1, NetLog::TYPE_SOCKS_CONNECT)); 410 entries, -1, NetLog::TYPE_SOCKS_CONNECT));
382 } 411 }
383 412
384 // Calls Disconnect() while a host resolve is in progress. The outstanding host 413 // Calls Disconnect() while a host resolve is in progress. The outstanding host
385 // resolve should be cancelled. 414 // resolve should be cancelled.
386 TEST_F(SOCKSClientSocketTest, DisconnectWhileHostResolveInProgress) { 415 TEST_F(SOCKSClientSocketTest, DisconnectWhileHostResolveInProgress) {
387 scoped_ptr<HangingHostResolver> hanging_resolver(new HangingHostResolver()); 416 scoped_ptr<HangingHostResolver> hanging_resolver(new HangingHostResolver());
388 417
389 // Doesn't matter what the socket data is, we will never use it -- garbage. 418 // Doesn't matter what the socket data is, we will never use it -- garbage.
390 MockWrite data_writes[] = { MockWrite(false, "", 0) }; 419 MockWrite data_writes[] = { MockWrite(false, "", 0) };
391 MockRead data_reads[] = { MockRead(false, "", 0) }; 420 MockRead data_reads[] = { MockRead(false, "", 0) };
(...skipping 17 matching lines...) Expand all
409 // Disconnect the SOCKS socket -- this should cancel the outstanding resolve. 438 // Disconnect the SOCKS socket -- this should cancel the outstanding resolve.
410 user_sock_->Disconnect(); 439 user_sock_->Disconnect();
411 440
412 EXPECT_FALSE(hanging_resolver->HasOutstandingRequest()); 441 EXPECT_FALSE(hanging_resolver->HasOutstandingRequest());
413 442
414 EXPECT_FALSE(user_sock_->IsConnected()); 443 EXPECT_FALSE(user_sock_->IsConnected());
415 EXPECT_FALSE(user_sock_->IsConnectedAndIdle()); 444 EXPECT_FALSE(user_sock_->IsConnectedAndIdle());
416 } 445 }
417 446
418 } // namespace net 447 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/socks5_client_socket_unittest.cc ('k') | net/socket/ssl_client_socket_snapstart_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698