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

Side by Side Diff: net/spdy/spdy_network_transaction_unittest.cc

Issue 8423028: Persist dynamically learned SPDY settings (like CWND). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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_server_properties_impl_unittest.cc ('k') | net/spdy/spdy_session.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_network_transaction.h" 5 #include "net/http/http_network_transaction.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "net/base/auth.h" 10 #include "net/base/auth.h"
(...skipping 4188 matching lines...) Expand 10 before | Expand all | Expand 10 after
4199 "version", "HTTP/1.1" 4199 "version", "HTTP/1.1"
4200 }; 4200 };
4201 4201
4202 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4202 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4203 BoundNetLog(), GetParam()); 4203 BoundNetLog(), GetParam());
4204 helper.RunPreTestSetup(); 4204 helper.RunPreTestSetup();
4205 4205
4206 // Verify that no settings exist initially. 4206 // Verify that no settings exist initially.
4207 HostPortPair host_port_pair("www.google.com", helper.port()); 4207 HostPortPair host_port_pair("www.google.com", helper.port());
4208 SpdySessionPool* spdy_session_pool = helper.session()->spdy_session_pool(); 4208 SpdySessionPool* spdy_session_pool = helper.session()->spdy_session_pool();
4209 EXPECT_TRUE(spdy_session_pool->spdy_settings().Get(host_port_pair).empty()); 4209 EXPECT_TRUE(spdy_session_pool->http_server_properties()->GetSpdySettings(
4210 host_port_pair).empty());
4210 4211
4211 // Construct the request. 4212 // Construct the request.
4212 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4213 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4213 MockWrite writes[] = { CreateMockWrite(*req) }; 4214 MockWrite writes[] = { CreateMockWrite(*req) };
4214 4215
4215 // Construct the reply. 4216 // Construct the reply.
4216 scoped_ptr<spdy::SpdyFrame> reply( 4217 scoped_ptr<spdy::SpdyFrame> reply(
4217 ConstructSpdyPacket(kSynReplyInfo, 4218 ConstructSpdyPacket(kSynReplyInfo,
4218 kExtraHeaders, 4219 kExtraHeaders,
4219 arraysize(kExtraHeaders) / 2, 4220 arraysize(kExtraHeaders) / 2,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
4261 helper.RunDefaultTest(); 4262 helper.RunDefaultTest();
4262 helper.VerifyDataConsumed(); 4263 helper.VerifyDataConsumed();
4263 TransactionHelperResult out = helper.output(); 4264 TransactionHelperResult out = helper.output();
4264 EXPECT_EQ(OK, out.rv); 4265 EXPECT_EQ(OK, out.rv);
4265 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4266 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4266 EXPECT_EQ("hello!", out.response_data); 4267 EXPECT_EQ("hello!", out.response_data);
4267 4268
4268 { 4269 {
4269 // Verify we had two persisted settings. 4270 // Verify we had two persisted settings.
4270 spdy::SpdySettings saved_settings = 4271 spdy::SpdySettings saved_settings =
4271 spdy_session_pool->spdy_settings().Get(host_port_pair); 4272 spdy_session_pool->http_server_properties()->GetSpdySettings(
4273 host_port_pair);
4272 ASSERT_EQ(2u, saved_settings.size()); 4274 ASSERT_EQ(2u, saved_settings.size());
4273 4275
4274 // Verify the first persisted setting. 4276 // Verify the first persisted setting.
4275 spdy::SpdySetting setting = saved_settings.front(); 4277 spdy::SpdySetting setting = saved_settings.front();
4276 saved_settings.pop_front(); 4278 saved_settings.pop_front();
4277 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, setting.first.flags()); 4279 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, setting.first.flags());
4278 EXPECT_EQ(kSampleId1, setting.first.id()); 4280 EXPECT_EQ(kSampleId1, setting.first.id());
4279 EXPECT_EQ(kSampleValue1, setting.second); 4281 EXPECT_EQ(kSampleValue1, setting.second);
4280 4282
4281 // Verify the second persisted setting. 4283 // Verify the second persisted setting.
(...skipping 26 matching lines...) Expand all
4308 "version", "HTTP/1.1" 4310 "version", "HTTP/1.1"
4309 }; 4311 };
4310 4312
4311 NormalSpdyTransactionHelper helper(CreateGetRequest(), 4313 NormalSpdyTransactionHelper helper(CreateGetRequest(),
4312 BoundNetLog(), GetParam()); 4314 BoundNetLog(), GetParam());
4313 helper.RunPreTestSetup(); 4315 helper.RunPreTestSetup();
4314 4316
4315 // Verify that no settings exist initially. 4317 // Verify that no settings exist initially.
4316 HostPortPair host_port_pair("www.google.com", helper.port()); 4318 HostPortPair host_port_pair("www.google.com", helper.port());
4317 SpdySessionPool* spdy_session_pool = helper.session()->spdy_session_pool(); 4319 SpdySessionPool* spdy_session_pool = helper.session()->spdy_session_pool();
4318 EXPECT_TRUE(spdy_session_pool->spdy_settings().Get(host_port_pair).empty()); 4320 EXPECT_TRUE(spdy_session_pool->http_server_properties()->GetSpdySettings(
4321 host_port_pair).empty());
4319 4322
4320 unsigned int kSampleId1 = 0x1; 4323 unsigned int kSampleId1 = 0x1;
4321 unsigned int kSampleValue1 = 0x0a0a0a0a; 4324 unsigned int kSampleValue1 = 0x0a0a0a0a;
4322 unsigned int kSampleId2 = 0xababab; 4325 unsigned int kSampleId2 = 0xababab;
4323 unsigned int kSampleValue2 = 0x0c0c0c0c; 4326 unsigned int kSampleValue2 = 0x0c0c0c0c;
4324 // Manually insert settings into the SpdySettingsStorage here. 4327 // Manually insert settings into the SpdySettingsStorage here.
4325 { 4328 {
4326 spdy::SpdySettings settings; 4329 spdy::SpdySettings settings;
4327 spdy::SettingsFlagsAndId setting(0); 4330 spdy::SettingsFlagsAndId setting(0);
4328 // First add a persisted setting 4331 // First add a persisted setting
4329 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); 4332 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST);
4330 setting.set_id(kSampleId1); 4333 setting.set_id(kSampleId1);
4331 settings.push_back(std::make_pair(setting, kSampleValue1)); 4334 settings.push_back(std::make_pair(setting, kSampleValue1));
4332 // Next add another persisted setting 4335 // Next add another persisted setting
4333 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); 4336 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST);
4334 setting.set_id(kSampleId2); 4337 setting.set_id(kSampleId2);
4335 settings.push_back(std::make_pair(setting, kSampleValue2)); 4338 settings.push_back(std::make_pair(setting, kSampleValue2));
4336 4339
4337 spdy_session_pool->mutable_spdy_settings()->Set(host_port_pair, settings); 4340 spdy_session_pool->http_server_properties()->SetSpdySettings(
4341 host_port_pair, settings);
4338 } 4342 }
4339 4343
4340 EXPECT_EQ(2u, spdy_session_pool->spdy_settings().Get(host_port_pair).size()); 4344 EXPECT_EQ(2u, spdy_session_pool->http_server_properties()->GetSpdySettings(
4345 host_port_pair).size());
4341 4346
4342 // Construct the SETTINGS frame. 4347 // Construct the SETTINGS frame.
4343 const spdy::SpdySettings& settings = 4348 const spdy::SpdySettings& settings =
4344 spdy_session_pool->spdy_settings().Get(host_port_pair); 4349 spdy_session_pool->http_server_properties()->GetSpdySettings(
4350 host_port_pair);
4345 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); 4351 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings));
4346 4352
4347 // Construct the request. 4353 // Construct the request.
4348 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); 4354 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST));
4349 4355
4350 MockWrite writes[] = { 4356 MockWrite writes[] = {
4351 CreateMockWrite(*settings_frame), 4357 CreateMockWrite(*settings_frame),
4352 CreateMockWrite(*req), 4358 CreateMockWrite(*req),
4353 }; 4359 };
4354 4360
(...skipping 19 matching lines...) Expand all
4374 helper.RunDefaultTest(); 4380 helper.RunDefaultTest();
4375 helper.VerifyDataConsumed(); 4381 helper.VerifyDataConsumed();
4376 TransactionHelperResult out = helper.output(); 4382 TransactionHelperResult out = helper.output();
4377 EXPECT_EQ(OK, out.rv); 4383 EXPECT_EQ(OK, out.rv);
4378 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 4384 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
4379 EXPECT_EQ("hello!", out.response_data); 4385 EXPECT_EQ("hello!", out.response_data);
4380 4386
4381 { 4387 {
4382 // Verify we had two persisted settings. 4388 // Verify we had two persisted settings.
4383 spdy::SpdySettings saved_settings = 4389 spdy::SpdySettings saved_settings =
4384 spdy_session_pool->spdy_settings().Get(host_port_pair); 4390 spdy_session_pool->http_server_properties()->GetSpdySettings(
4391 host_port_pair);
4385 ASSERT_EQ(2u, saved_settings.size()); 4392 ASSERT_EQ(2u, saved_settings.size());
4386 4393
4387 // Verify the first persisted setting. 4394 // Verify the first persisted setting.
4388 spdy::SpdySetting setting = saved_settings.front(); 4395 spdy::SpdySetting setting = saved_settings.front();
4389 saved_settings.pop_front(); 4396 saved_settings.pop_front();
4390 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, setting.first.flags()); 4397 EXPECT_EQ(spdy::SETTINGS_FLAG_PERSISTED, setting.first.flags());
4391 EXPECT_EQ(kSampleId1, setting.first.id()); 4398 EXPECT_EQ(kSampleId1, setting.first.id());
4392 EXPECT_EQ(kSampleValue1, setting.second); 4399 EXPECT_EQ(kSampleValue1, setting.second);
4393 4400
4394 // Verify the second persisted setting. 4401 // Verify the second persisted setting.
(...skipping 1260 matching lines...) Expand 10 before | Expand all | Expand 10 after
5655 << " Write index: " 5662 << " Write index: "
5656 << data->write_index(); 5663 << data->write_index();
5657 5664
5658 // Verify the SYN_REPLY. 5665 // Verify the SYN_REPLY.
5659 HttpResponseInfo response = *trans->GetResponseInfo(); 5666 HttpResponseInfo response = *trans->GetResponseInfo();
5660 EXPECT_TRUE(response.headers != NULL); 5667 EXPECT_TRUE(response.headers != NULL);
5661 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); 5668 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine());
5662 } 5669 }
5663 5670
5664 } // namespace net 5671 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_server_properties_impl_unittest.cc ('k') | net/spdy/spdy_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698