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

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

Issue 451383002: Plumbing for TCP FastOpen for SSL sockets. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing linker error for Windows. Created 6 years, 3 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
« no previous file with comments | « net/socket/transport_client_socket_pool_unittest.cc ('k') | net/spdy/spdy_session_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/websocket_transport_client_socket_pool.h" 5 #include "net/socket/websocket_transport_client_socket_pool.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 base::RunLoop run_loop; 44 base::RunLoop run_loop;
45 base::Closure quit_closure(run_loop.QuitClosure()); 45 base::Closure quit_closure(run_loop.QuitClosure());
46 base::MessageLoop::current()->PostDelayedTask( 46 base::MessageLoop::current()->PostDelayedTask(
47 FROM_HERE, quit_closure, period); 47 FROM_HERE, quit_closure, period);
48 run_loop.Run(); 48 run_loop.Run();
49 } 49 }
50 50
51 class WebSocketTransportClientSocketPoolTest : public testing::Test { 51 class WebSocketTransportClientSocketPoolTest : public testing::Test {
52 protected: 52 protected:
53 WebSocketTransportClientSocketPoolTest() 53 WebSocketTransportClientSocketPoolTest()
54 : params_(new TransportSocketParams(HostPortPair("www.google.com", 80), 54 : params_(new TransportSocketParams(
55 false, 55 HostPortPair("www.google.com", 80),
56 false, 56 false,
57 OnHostResolutionCallback())), 57 false,
58 OnHostResolutionCallback(),
59 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)),
58 histograms_(new ClientSocketPoolHistograms("TCPUnitTest")), 60 histograms_(new ClientSocketPoolHistograms("TCPUnitTest")),
59 host_resolver_(new MockHostResolver), 61 host_resolver_(new MockHostResolver),
60 client_socket_factory_(&net_log_), 62 client_socket_factory_(&net_log_),
61 pool_(kMaxSockets, 63 pool_(kMaxSockets,
62 kMaxSocketsPerGroup, 64 kMaxSocketsPerGroup,
63 histograms_.get(), 65 histograms_.get(),
64 host_resolver_.get(), 66 host_resolver_.get(),
65 &client_socket_factory_, 67 &client_socket_factory_,
66 NULL) {} 68 NULL) {}
67 69
68 virtual ~WebSocketTransportClientSocketPoolTest() { 70 virtual ~WebSocketTransportClientSocketPoolTest() {
69 ReleaseAllConnections(ClientSocketPoolTest::NO_KEEP_ALIVE); 71 ReleaseAllConnections(ClientSocketPoolTest::NO_KEEP_ALIVE);
70 EXPECT_TRUE(WebSocketEndpointLockManager::GetInstance()->IsEmpty()); 72 EXPECT_TRUE(WebSocketEndpointLockManager::GetInstance()->IsEmpty());
71 } 73 }
72 74
73 int StartRequest(const std::string& group_name, RequestPriority priority) { 75 int StartRequest(const std::string& group_name, RequestPriority priority) {
74 scoped_refptr<TransportSocketParams> params( 76 scoped_refptr<TransportSocketParams> params(
75 new TransportSocketParams(HostPortPair("www.google.com", 80), 77 new TransportSocketParams(
76 false, 78 HostPortPair("www.google.com", 80),
77 false, 79 false,
78 OnHostResolutionCallback())); 80 false,
81 OnHostResolutionCallback(),
82 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
79 return test_base_.StartRequestUsingPool( 83 return test_base_.StartRequestUsingPool(
80 &pool_, group_name, priority, params); 84 &pool_, group_name, priority, params);
81 } 85 }
82 86
83 int GetOrderOfRequest(size_t index) { 87 int GetOrderOfRequest(size_t index) {
84 return test_base_.GetOrderOfRequest(index); 88 return test_base_.GetOrderOfRequest(index);
85 } 89 }
86 90
87 bool ReleaseOneConnection(ClientSocketPoolTest::KeepAlive keep_alive) { 91 bool ReleaseOneConnection(ClientSocketPoolTest::KeepAlive keep_alive) {
88 return test_base_.ReleaseOneConnection(keep_alive); 92 return test_base_.ReleaseOneConnection(keep_alive);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 EXPECT_EQ(priority, host_resolver_->last_request_priority()); 145 EXPECT_EQ(priority, host_resolver_->last_request_priority());
142 } 146 }
143 } 147 }
144 148
145 TEST_F(WebSocketTransportClientSocketPoolTest, InitHostResolutionFailure) { 149 TEST_F(WebSocketTransportClientSocketPoolTest, InitHostResolutionFailure) {
146 host_resolver_->rules()->AddSimulatedFailure("unresolvable.host.name"); 150 host_resolver_->rules()->AddSimulatedFailure("unresolvable.host.name");
147 TestCompletionCallback callback; 151 TestCompletionCallback callback;
148 ClientSocketHandle handle; 152 ClientSocketHandle handle;
149 HostPortPair host_port_pair("unresolvable.host.name", 80); 153 HostPortPair host_port_pair("unresolvable.host.name", 80);
150 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams( 154 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams(
151 host_port_pair, false, false, OnHostResolutionCallback())); 155 host_port_pair, false, false, OnHostResolutionCallback(),
156 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
152 EXPECT_EQ(ERR_IO_PENDING, 157 EXPECT_EQ(ERR_IO_PENDING,
153 handle.Init("a", 158 handle.Init("a",
154 dest, 159 dest,
155 kDefaultPriority, 160 kDefaultPriority,
156 callback.callback(), 161 callback.callback(),
157 &pool_, 162 &pool_,
158 BoundNetLog())); 163 BoundNetLog()));
159 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback.WaitForResult()); 164 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback.WaitForResult());
160 } 165 }
161 166
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 // run through the MessageLoop once to get it completely released. 396 // run through the MessageLoop once to get it completely released.
392 handle_->socket()->Disconnect(); 397 handle_->socket()->Disconnect();
393 handle_->Reset(); 398 handle_->Reset();
394 { 399 {
395 base::MessageLoop::ScopedNestableTaskAllower allow( 400 base::MessageLoop::ScopedNestableTaskAllower allow(
396 base::MessageLoop::current()); 401 base::MessageLoop::current());
397 base::MessageLoop::current()->RunUntilIdle(); 402 base::MessageLoop::current()->RunUntilIdle();
398 } 403 }
399 within_callback_ = true; 404 within_callback_ = true;
400 scoped_refptr<TransportSocketParams> dest( 405 scoped_refptr<TransportSocketParams> dest(
401 new TransportSocketParams(HostPortPair("www.google.com", 80), 406 new TransportSocketParams(
402 false, 407 HostPortPair("www.google.com", 80),
403 false, 408 false,
404 OnHostResolutionCallback())); 409 false,
410 OnHostResolutionCallback(),
411 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
405 int rv = 412 int rv =
406 handle_->Init("a", dest, LOWEST, callback(), pool_, BoundNetLog()); 413 handle_->Init("a", dest, LOWEST, callback(), pool_, BoundNetLog());
407 EXPECT_EQ(OK, rv); 414 EXPECT_EQ(OK, rv);
408 } 415 }
409 } 416 }
410 417
411 ClientSocketHandle* const handle_; 418 ClientSocketHandle* const handle_;
412 WebSocketTransportClientSocketPool* const pool_; 419 WebSocketTransportClientSocketPool* const pool_;
413 bool within_callback_; 420 bool within_callback_;
414 CompletionCallback callback_; 421 CompletionCallback callback_;
415 422
416 DISALLOW_COPY_AND_ASSIGN(RequestSocketCallback); 423 DISALLOW_COPY_AND_ASSIGN(RequestSocketCallback);
417 }; 424 };
418 425
419 TEST_F(WebSocketTransportClientSocketPoolTest, RequestTwice) { 426 TEST_F(WebSocketTransportClientSocketPoolTest, RequestTwice) {
420 ClientSocketHandle handle; 427 ClientSocketHandle handle;
421 RequestSocketCallback callback(&handle, &pool_); 428 RequestSocketCallback callback(&handle, &pool_);
422 scoped_refptr<TransportSocketParams> dest( 429 scoped_refptr<TransportSocketParams> dest(
423 new TransportSocketParams(HostPortPair("www.google.com", 80), 430 new TransportSocketParams(
424 false, 431 HostPortPair("www.google.com", 80),
425 false, 432 false,
426 OnHostResolutionCallback())); 433 false,
434 OnHostResolutionCallback(),
435 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
427 int rv = handle.Init( 436 int rv = handle.Init(
428 "a", dest, LOWEST, callback.callback(), &pool_, BoundNetLog()); 437 "a", dest, LOWEST, callback.callback(), &pool_, BoundNetLog());
429 ASSERT_EQ(ERR_IO_PENDING, rv); 438 ASSERT_EQ(ERR_IO_PENDING, rv);
430 439
431 // The callback is going to request "www.google.com". We want it to complete 440 // The callback is going to request "www.google.com". We want it to complete
432 // synchronously this time. 441 // synchronously this time.
433 host_resolver_->set_synchronous_mode(true); 442 host_resolver_->set_synchronous_mode(true);
434 443
435 EXPECT_EQ(OK, callback.WaitForResult()); 444 EXPECT_EQ(OK, callback.WaitForResult());
436 445
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after
1125 EXPECT_EQ(OK, request(1)->WaitForResult()); 1134 EXPECT_EQ(OK, request(1)->WaitForResult());
1126 // Third socket should still be waiting for endpoint. 1135 // Third socket should still be waiting for endpoint.
1127 ASSERT_FALSE(request(2)->handle()->is_initialized()); 1136 ASSERT_FALSE(request(2)->handle()->is_initialized());
1128 EXPECT_EQ(LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET, 1137 EXPECT_EQ(LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET,
1129 request(2)->handle()->GetLoadState()); 1138 request(2)->handle()->GetLoadState());
1130 } 1139 }
1131 1140
1132 } // namespace 1141 } // namespace
1133 1142
1134 } // namespace net 1143 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/transport_client_socket_pool_unittest.cc ('k') | net/spdy/spdy_session_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698