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

Side by Side Diff: net/http/http_pipelined_host_impl_unittest.cc

Issue 8833003: Revert 113315 (speculative revert for http://crbug.com/106657) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 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
« no previous file with comments | « net/http/http_pipelined_host_impl.cc ('k') | net/http/http_pipelined_host_pool.h » ('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 (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/http/http_pipelined_host_impl.h" 5 #include "net/http/http_pipelined_host_impl.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "net/base/ssl_config_service.h" 8 #include "net/base/ssl_config_service.h"
9 #include "net/http/http_pipelined_connection.h" 9 #include "net/http/http_pipelined_connection.h"
10 #include "net/proxy/proxy_info.h" 10 #include "net/proxy/proxy_info.h"
(...skipping 14 matching lines...) Expand all
25 reinterpret_cast<ClientSocketHandle*>(84); 25 reinterpret_cast<ClientSocketHandle*>(84);
26 HttpPipelinedStream* kDummyStream = 26 HttpPipelinedStream* kDummyStream =
27 reinterpret_cast<HttpPipelinedStream*>(42); 27 reinterpret_cast<HttpPipelinedStream*>(42);
28 28
29 class MockHostDelegate : public HttpPipelinedHost::Delegate { 29 class MockHostDelegate : public HttpPipelinedHost::Delegate {
30 public: 30 public:
31 MOCK_METHOD1(OnHostIdle, void(HttpPipelinedHost* host)); 31 MOCK_METHOD1(OnHostIdle, void(HttpPipelinedHost* host));
32 MOCK_METHOD1(OnHostHasAdditionalCapacity, void(HttpPipelinedHost* host)); 32 MOCK_METHOD1(OnHostHasAdditionalCapacity, void(HttpPipelinedHost* host));
33 MOCK_METHOD2(OnHostDeterminedCapability, 33 MOCK_METHOD2(OnHostDeterminedCapability,
34 void(HttpPipelinedHost* host, 34 void(HttpPipelinedHost* host,
35 HttpPipelinedHostCapability capability)); 35 HttpPipelinedHost::Capability capability));
36 }; 36 };
37 37
38 class MockPipelineFactory : public HttpPipelinedConnection::Factory { 38 class MockPipelineFactory : public HttpPipelinedConnection::Factory {
39 public: 39 public:
40 MOCK_METHOD6(CreateNewPipeline, HttpPipelinedConnection*( 40 MOCK_METHOD6(CreateNewPipeline, HttpPipelinedConnection*(
41 ClientSocketHandle* connection, 41 ClientSocketHandle* connection,
42 HttpPipelinedConnection::Delegate* delegate, 42 HttpPipelinedConnection::Delegate* delegate,
43 const SSLConfig& used_ssl_config, 43 const SSLConfig& used_ssl_config,
44 const ProxyInfo& used_proxy_info, 44 const ProxyInfo& used_proxy_info,
45 const BoundNetLog& net_log, 45 const BoundNetLog& net_log,
(...skipping 30 matching lines...) Expand all
76 bool usable_; 76 bool usable_;
77 bool active_; 77 bool active_;
78 }; 78 };
79 79
80 class HttpPipelinedHostImplTest : public testing::Test { 80 class HttpPipelinedHostImplTest : public testing::Test {
81 public: 81 public:
82 HttpPipelinedHostImplTest() 82 HttpPipelinedHostImplTest()
83 : origin_("host", 123), 83 : origin_("host", 123),
84 factory_(new MockPipelineFactory), // Owned by host_. 84 factory_(new MockPipelineFactory), // Owned by host_.
85 host_(new HttpPipelinedHostImpl(&delegate_, origin_, factory_, 85 host_(new HttpPipelinedHostImpl(&delegate_, origin_, factory_,
86 PIPELINE_CAPABLE)) { 86 HttpPipelinedHost::CAPABLE)) {
87 } 87 }
88 88
89 void SetCapability(HttpPipelinedHostCapability capability) { 89 void SetCapability(HttpPipelinedHost::Capability capability) {
90 factory_ = new MockPipelineFactory; 90 factory_ = new MockPipelineFactory;
91 host_.reset(new HttpPipelinedHostImpl( 91 host_.reset(new HttpPipelinedHostImpl(
92 &delegate_, origin_, factory_, capability)); 92 &delegate_, origin_, factory_, capability));
93 } 93 }
94 94
95 MockPipeline* AddTestPipeline(int depth, bool usable, bool active) { 95 MockPipeline* AddTestPipeline(int depth, bool usable, bool active) {
96 MockPipeline* pipeline = new MockPipeline(depth, usable, active); 96 MockPipeline* pipeline = new MockPipeline(depth, usable, active);
97 EXPECT_CALL(*factory_, CreateNewPipeline(kDummyConnection, host_.get(), 97 EXPECT_CALL(*factory_, CreateNewPipeline(kDummyConnection, host_.get(),
98 Ref(ssl_config_), Ref(proxy_info_), 98 Ref(ssl_config_), Ref(proxy_info_),
99 Ref(net_log_), true)) 99 Ref(net_log_), true))
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 .Times(1) 193 .Times(1)
194 .WillOnce(ReturnNull()); 194 .WillOnce(ReturnNull());
195 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline()); 195 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline());
196 196
197 ClearTestPipeline(full_pipeline); 197 ClearTestPipeline(full_pipeline);
198 ClearTestPipeline(usable_pipeline); 198 ClearTestPipeline(usable_pipeline);
199 ClearTestPipeline(empty_pipeline); 199 ClearTestPipeline(empty_pipeline);
200 } 200 }
201 201
202 TEST_F(HttpPipelinedHostImplTest, OpensUpOnPipelineSuccess) { 202 TEST_F(HttpPipelinedHostImplTest, OpensUpOnPipelineSuccess) {
203 SetCapability(PIPELINE_UNKNOWN); 203 SetCapability(HttpPipelinedHost::UNKNOWN);
204 MockPipeline* pipeline = AddTestPipeline(1, true, true); 204 MockPipeline* pipeline = AddTestPipeline(1, true, true);
205 205
206 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline()); 206 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline());
207 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 207 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
208 .Times(1); 208 .Times(1);
209 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK); 209 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK);
210 210
211 EXPECT_CALL(*pipeline, CreateNewStream()) 211 EXPECT_CALL(*pipeline, CreateNewStream())
212 .Times(1) 212 .Times(1)
213 .WillOnce(Return(kDummyStream)); 213 .WillOnce(Return(kDummyStream));
214 EXPECT_EQ(kDummyStream, host_->CreateStreamOnExistingPipeline()); 214 EXPECT_EQ(kDummyStream, host_->CreateStreamOnExistingPipeline());
215 215
216 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 216 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
217 .Times(1); 217 .Times(1);
218 ClearTestPipeline(pipeline); 218 ClearTestPipeline(pipeline);
219 } 219 }
220 220
221 TEST_F(HttpPipelinedHostImplTest, OpensAllPipelinesOnPipelineSuccess) { 221 TEST_F(HttpPipelinedHostImplTest, OpensAllPipelinesOnPipelineSuccess) {
222 SetCapability(PIPELINE_UNKNOWN); 222 SetCapability(HttpPipelinedHost::UNKNOWN);
223 MockPipeline* pipeline1 = AddTestPipeline(1, false, true); 223 MockPipeline* pipeline1 = AddTestPipeline(1, false, true);
224 MockPipeline* pipeline2 = AddTestPipeline(1, true, true); 224 MockPipeline* pipeline2 = AddTestPipeline(1, true, true);
225 225
226 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline()); 226 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline());
227 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 227 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
228 .Times(1); 228 .Times(1);
229 host_->OnPipelineFeedback(pipeline1, HttpPipelinedConnection::OK); 229 host_->OnPipelineFeedback(pipeline1, HttpPipelinedConnection::OK);
230 230
231 EXPECT_CALL(*pipeline2, CreateNewStream()) 231 EXPECT_CALL(*pipeline2, CreateNewStream())
232 .Times(1) 232 .Times(1)
233 .WillOnce(Return(kDummyStream)); 233 .WillOnce(Return(kDummyStream));
234 EXPECT_EQ(kDummyStream, host_->CreateStreamOnExistingPipeline()); 234 EXPECT_EQ(kDummyStream, host_->CreateStreamOnExistingPipeline());
235 235
236 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 236 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
237 .Times(2); 237 .Times(2);
238 ClearTestPipeline(pipeline1); 238 ClearTestPipeline(pipeline1);
239 ClearTestPipeline(pipeline2); 239 ClearTestPipeline(pipeline2);
240 } 240 }
241 241
242 TEST_F(HttpPipelinedHostImplTest, ShutsDownOnOldVersion) { 242 TEST_F(HttpPipelinedHostImplTest, ShutsDownOnOldVersion) {
243 SetCapability(PIPELINE_UNKNOWN); 243 SetCapability(HttpPipelinedHost::UNKNOWN);
244 MockPipeline* pipeline = AddTestPipeline(1, true, true); 244 MockPipeline* pipeline = AddTestPipeline(1, true, true);
245 245
246 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline()); 246 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline());
247 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 247 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
248 .Times(0); 248 .Times(0);
249 EXPECT_CALL(delegate_, 249 EXPECT_CALL(delegate_,
250 OnHostDeterminedCapability(host_.get(), PIPELINE_INCAPABLE)) 250 OnHostDeterminedCapability(host_.get(),
251 HttpPipelinedHost::INCAPABLE))
251 .Times(1); 252 .Times(1);
252 host_->OnPipelineFeedback(pipeline, 253 host_->OnPipelineFeedback(pipeline,
253 HttpPipelinedConnection::OLD_HTTP_VERSION); 254 HttpPipelinedConnection::OLD_HTTP_VERSION);
254 255
255 ClearTestPipeline(pipeline); 256 ClearTestPipeline(pipeline);
256 EXPECT_EQ(NULL, host_->CreateStreamOnNewPipeline( 257 EXPECT_EQ(NULL, host_->CreateStreamOnNewPipeline(
257 kDummyConnection, ssl_config_, proxy_info_, net_log_, true)); 258 kDummyConnection, ssl_config_, proxy_info_, net_log_, true));
258 } 259 }
259 260
260 TEST_F(HttpPipelinedHostImplTest, ConnectionCloseHasNoEffect) { 261 TEST_F(HttpPipelinedHostImplTest, ConnectionCloseHasNoEffect) {
261 SetCapability(PIPELINE_UNKNOWN); 262 SetCapability(HttpPipelinedHost::UNKNOWN);
262 MockPipeline* pipeline = AddTestPipeline(1, true, true); 263 MockPipeline* pipeline = AddTestPipeline(1, true, true);
263 264
264 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 265 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
265 .Times(0); 266 .Times(0);
266 EXPECT_CALL(delegate_, OnHostDeterminedCapability(host_.get(), _)) 267 EXPECT_CALL(delegate_, OnHostDeterminedCapability(host_.get(), _))
267 .Times(0); 268 .Times(0);
268 host_->OnPipelineFeedback(pipeline, 269 host_->OnPipelineFeedback(pipeline,
269 HttpPipelinedConnection::MUST_CLOSE_CONNECTION); 270 HttpPipelinedConnection::MUST_CLOSE_CONNECTION);
270 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline()); 271 EXPECT_EQ(NULL, host_->CreateStreamOnExistingPipeline());
271 272
272 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 273 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
273 .Times(1); 274 .Times(1);
274 ClearTestPipeline(pipeline); 275 ClearTestPipeline(pipeline);
275 } 276 }
276 277
277 TEST_F(HttpPipelinedHostImplTest, SuccessesLeadToCapable) { 278 TEST_F(HttpPipelinedHostImplTest, SuccessesLeadToCapable) {
278 SetCapability(PIPELINE_UNKNOWN); 279 SetCapability(HttpPipelinedHost::UNKNOWN);
279 MockPipeline* pipeline = AddTestPipeline(1, true, true); 280 MockPipeline* pipeline = AddTestPipeline(1, true, true);
280 281
281 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 282 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
282 .Times(1); 283 .Times(1);
283 EXPECT_CALL(delegate_, 284 EXPECT_CALL(delegate_,
284 OnHostDeterminedCapability(host_.get(), PIPELINE_CAPABLE)) 285 OnHostDeterminedCapability(host_.get(),
286 HttpPipelinedHost::CAPABLE))
285 .Times(1); 287 .Times(1);
286 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK); 288 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK);
287 289
288 pipeline->SetState(3, true, true); 290 pipeline->SetState(3, true, true);
289 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK); 291 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK);
290 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK); 292 host_->OnPipelineFeedback(pipeline, HttpPipelinedConnection::OK);
291 293
292 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get())) 294 EXPECT_CALL(delegate_, OnHostHasAdditionalCapacity(host_.get()))
293 .Times(1); 295 .Times(1);
294 ClearTestPipeline(pipeline); 296 ClearTestPipeline(pipeline);
295 } 297 }
296 298
297 } // anonymous namespace 299 } // anonymous namespace
298 300
299 } // namespace net 301 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_pipelined_host_impl.cc ('k') | net/http/http_pipelined_host_pool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698