OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 SPDYNOSSL, | 34 SPDYNOSSL, |
35 SPDYSSL, | 35 SPDYSSL, |
36 }; | 36 }; |
37 class SpdyNetworkTransactionSpdy3Test | 37 class SpdyNetworkTransactionSpdy3Test |
38 : public ::testing::TestWithParam<SpdyNetworkTransactionSpdy3TestTypes> { | 38 : public ::testing::TestWithParam<SpdyNetworkTransactionSpdy3TestTypes> { |
39 protected: | 39 protected: |
40 | 40 |
41 virtual void SetUp() { | 41 virtual void SetUp() { |
42 // By default, all tests turn off compression. | 42 // By default, all tests turn off compression. |
43 EnableCompression(false); | 43 EnableCompression(false); |
| 44 SpdySession::set_default_protocol(SSLClientSocket::kProtoSPDY3); |
44 google_get_request_initialized_ = false; | 45 google_get_request_initialized_ = false; |
45 google_post_request_initialized_ = false; | 46 google_post_request_initialized_ = false; |
46 google_chunked_post_request_initialized_ = false; | 47 google_chunked_post_request_initialized_ = false; |
47 } | 48 } |
48 | 49 |
49 virtual void TearDown() { | 50 virtual void TearDown() { |
50 // Empty the current queue. | 51 // Empty the current queue. |
51 MessageLoop::current()->RunAllPending(); | 52 MessageLoop::current()->RunAllPending(); |
52 } | 53 } |
53 | 54 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 session_ = SpdySessionDependencies::SpdyCreateSession( | 119 session_ = SpdySessionDependencies::SpdyCreateSession( |
119 session_deps_.get()); | 120 session_deps_.get()); |
120 HttpStreamFactory::set_use_alternate_protocols(false); | 121 HttpStreamFactory::set_use_alternate_protocols(false); |
121 HttpStreamFactory::set_force_spdy_over_ssl(false); | 122 HttpStreamFactory::set_force_spdy_over_ssl(false); |
122 HttpStreamFactory::set_force_spdy_always(false); | 123 HttpStreamFactory::set_force_spdy_always(false); |
123 | 124 |
124 std::vector<std::string> next_protos; | 125 std::vector<std::string> next_protos; |
125 next_protos.push_back("http/1.1"); | 126 next_protos.push_back("http/1.1"); |
126 next_protos.push_back("spdy/2"); | 127 next_protos.push_back("spdy/2"); |
127 next_protos.push_back("spdy/2.1"); | 128 next_protos.push_back("spdy/2.1"); |
| 129 next_protos.push_back("spdy/3"); |
128 | 130 |
129 switch (test_type_) { | 131 switch (test_type_) { |
130 case SPDYNPN: | 132 case SPDYNPN: |
131 session_->http_server_properties()->SetAlternateProtocol( | 133 session_->http_server_properties()->SetAlternateProtocol( |
132 HostPortPair("www.google.com", 80), 443, | 134 HostPortPair("www.google.com", 80), 443, |
133 NPN_SPDY_21); | 135 NPN_SPDY_3); |
134 HttpStreamFactory::set_use_alternate_protocols(true); | 136 HttpStreamFactory::set_use_alternate_protocols(true); |
135 HttpStreamFactory::SetNextProtos(next_protos); | 137 HttpStreamFactory::SetNextProtos(next_protos); |
136 break; | 138 break; |
137 case SPDYNOSSL: | 139 case SPDYNOSSL: |
138 HttpStreamFactory::set_force_spdy_over_ssl(false); | 140 HttpStreamFactory::set_force_spdy_over_ssl(false); |
139 HttpStreamFactory::set_force_spdy_always(true); | 141 HttpStreamFactory::set_force_spdy_always(true); |
140 break; | 142 break; |
141 case SPDYSSL: | 143 case SPDYSSL: |
142 HttpStreamFactory::set_force_spdy_over_ssl(true); | 144 HttpStreamFactory::set_force_spdy_over_ssl(true); |
143 HttpStreamFactory::set_force_spdy_always(true); | 145 HttpStreamFactory::set_force_spdy_always(true); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 RunDefaultTest(); | 231 RunDefaultTest(); |
230 VerifyDataConsumed(); | 232 VerifyDataConsumed(); |
231 } | 233 } |
232 | 234 |
233 void AddData(StaticSocketDataProvider* data) { | 235 void AddData(StaticSocketDataProvider* data) { |
234 DCHECK(!deterministic_); | 236 DCHECK(!deterministic_); |
235 data_vector_.push_back(data); | 237 data_vector_.push_back(data); |
236 linked_ptr<SSLSocketDataProvider> ssl_( | 238 linked_ptr<SSLSocketDataProvider> ssl_( |
237 new SSLSocketDataProvider(ASYNC, OK)); | 239 new SSLSocketDataProvider(ASYNC, OK)); |
238 if (test_type_ == SPDYNPN) { | 240 if (test_type_ == SPDYNPN) { |
239 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY21); | 241 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY3); |
240 } | 242 } |
241 ssl_vector_.push_back(ssl_); | 243 ssl_vector_.push_back(ssl_); |
242 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) | 244 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) |
243 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_.get()); | 245 session_deps_->socket_factory->AddSSLSocketDataProvider(ssl_.get()); |
244 session_deps_->socket_factory->AddSocketDataProvider(data); | 246 session_deps_->socket_factory->AddSocketDataProvider(data); |
245 if (test_type_ == SPDYNPN) { | 247 if (test_type_ == SPDYNPN) { |
246 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); | 248 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
247 linked_ptr<StaticSocketDataProvider> | 249 linked_ptr<StaticSocketDataProvider> |
248 hanging_non_alternate_protocol_socket( | 250 hanging_non_alternate_protocol_socket( |
249 new StaticSocketDataProvider(NULL, 0, NULL, 0)); | 251 new StaticSocketDataProvider(NULL, 0, NULL, 0)); |
250 hanging_non_alternate_protocol_socket->set_connect_data( | 252 hanging_non_alternate_protocol_socket->set_connect_data( |
251 never_finishing_connect); | 253 never_finishing_connect); |
252 session_deps_->socket_factory->AddSocketDataProvider( | 254 session_deps_->socket_factory->AddSocketDataProvider( |
253 hanging_non_alternate_protocol_socket.get()); | 255 hanging_non_alternate_protocol_socket.get()); |
254 alternate_vector_.push_back(hanging_non_alternate_protocol_socket); | 256 alternate_vector_.push_back(hanging_non_alternate_protocol_socket); |
255 } | 257 } |
256 } | 258 } |
257 | 259 |
258 void AddDeterministicData(DeterministicSocketData* data) { | 260 void AddDeterministicData(DeterministicSocketData* data) { |
259 DCHECK(deterministic_); | 261 DCHECK(deterministic_); |
260 data_vector_.push_back(data); | 262 data_vector_.push_back(data); |
261 linked_ptr<SSLSocketDataProvider> ssl_( | 263 linked_ptr<SSLSocketDataProvider> ssl_( |
262 new SSLSocketDataProvider(ASYNC, OK)); | 264 new SSLSocketDataProvider(ASYNC, OK)); |
263 if (test_type_ == SPDYNPN) { | 265 if (test_type_ == SPDYNPN) { |
264 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY21); | 266 ssl_->SetNextProto(SSLClientSocket::kProtoSPDY3); |
265 } | 267 } |
266 ssl_vector_.push_back(ssl_); | 268 ssl_vector_.push_back(ssl_); |
267 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) { | 269 if (test_type_ == SPDYNPN || test_type_ == SPDYSSL) { |
268 session_deps_->deterministic_socket_factory-> | 270 session_deps_->deterministic_socket_factory-> |
269 AddSSLSocketDataProvider(ssl_.get()); | 271 AddSSLSocketDataProvider(ssl_.get()); |
270 } | 272 } |
271 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data); | 273 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data); |
272 if (test_type_ == SPDYNPN) { | 274 if (test_type_ == SPDYNPN) { |
273 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); | 275 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
274 scoped_refptr<DeterministicSocketData> | 276 scoped_refptr<DeterministicSocketData> |
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); | 934 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); |
933 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); | 935 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); |
934 scoped_ptr<spdy::SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); | 936 scoped_ptr<spdy::SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); |
935 | 937 |
936 scoped_ptr<spdy::SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 5, LOWEST)); | 938 scoped_ptr<spdy::SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 5, LOWEST)); |
937 scoped_ptr<spdy::SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 5)); | 939 scoped_ptr<spdy::SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 5)); |
938 scoped_ptr<spdy::SpdyFrame> body3(ConstructSpdyBodyFrame(5, false)); | 940 scoped_ptr<spdy::SpdyFrame> body3(ConstructSpdyBodyFrame(5, false)); |
939 scoped_ptr<spdy::SpdyFrame> fbody3(ConstructSpdyBodyFrame(5, true)); | 941 scoped_ptr<spdy::SpdyFrame> fbody3(ConstructSpdyBodyFrame(5, true)); |
940 | 942 |
941 spdy::SpdySettings settings; | 943 spdy::SpdySettings settings; |
942 spdy::SettingsFlagsAndId id(0); | 944 spdy::SettingsFlagsAndId id(0, spdy::SETTINGS_MAX_CONCURRENT_STREAMS); |
943 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS); | |
944 const size_t max_concurrent_streams = 1; | 945 const size_t max_concurrent_streams = 1; |
945 | 946 |
946 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); | 947 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); |
947 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 948 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
948 | 949 |
949 MockWrite writes[] = { | 950 MockWrite writes[] = { |
950 CreateMockWrite(*req), | 951 CreateMockWrite(*req), |
951 CreateMockWrite(*req2), | 952 CreateMockWrite(*req2), |
952 CreateMockWrite(*req3), | 953 CreateMockWrite(*req3), |
953 }; | 954 }; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1071 scoped_ptr<spdy::SpdyFrame> resp4(ConstructSpdyGetSynReply(NULL, 0, 5)); | 1072 scoped_ptr<spdy::SpdyFrame> resp4(ConstructSpdyGetSynReply(NULL, 0, 5)); |
1072 scoped_ptr<spdy::SpdyFrame> fbody4(ConstructSpdyBodyFrame(5, true)); | 1073 scoped_ptr<spdy::SpdyFrame> fbody4(ConstructSpdyBodyFrame(5, true)); |
1073 | 1074 |
1074 scoped_ptr<spdy::SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 7, LOWEST)); | 1075 scoped_ptr<spdy::SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 7, LOWEST)); |
1075 scoped_ptr<spdy::SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 7)); | 1076 scoped_ptr<spdy::SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 7)); |
1076 scoped_ptr<spdy::SpdyFrame> body3(ConstructSpdyBodyFrame(7, false)); | 1077 scoped_ptr<spdy::SpdyFrame> body3(ConstructSpdyBodyFrame(7, false)); |
1077 scoped_ptr<spdy::SpdyFrame> fbody3(ConstructSpdyBodyFrame(7, true)); | 1078 scoped_ptr<spdy::SpdyFrame> fbody3(ConstructSpdyBodyFrame(7, true)); |
1078 | 1079 |
1079 | 1080 |
1080 spdy::SpdySettings settings; | 1081 spdy::SpdySettings settings; |
1081 spdy::SettingsFlagsAndId id(0); | 1082 spdy::SettingsFlagsAndId id(0, spdy::SETTINGS_MAX_CONCURRENT_STREAMS); |
1082 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS); | |
1083 const size_t max_concurrent_streams = 1; | 1083 const size_t max_concurrent_streams = 1; |
1084 | 1084 |
1085 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); | 1085 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); |
1086 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 1086 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
1087 | 1087 |
1088 MockWrite writes[] = { CreateMockWrite(*req), | 1088 MockWrite writes[] = { CreateMockWrite(*req), |
1089 CreateMockWrite(*req2), | 1089 CreateMockWrite(*req2), |
1090 CreateMockWrite(*req4), | 1090 CreateMockWrite(*req4), |
1091 CreateMockWrite(*req3), | 1091 CreateMockWrite(*req3), |
1092 }; | 1092 }; |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1216 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 1216 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
1217 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); | 1217 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); |
1218 scoped_ptr<spdy::SpdyFrame> fbody(ConstructSpdyBodyFrame(1, true)); | 1218 scoped_ptr<spdy::SpdyFrame> fbody(ConstructSpdyBodyFrame(1, true)); |
1219 | 1219 |
1220 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); | 1220 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); |
1221 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); | 1221 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); |
1222 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); | 1222 scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); |
1223 scoped_ptr<spdy::SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); | 1223 scoped_ptr<spdy::SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); |
1224 | 1224 |
1225 spdy::SpdySettings settings; | 1225 spdy::SpdySettings settings; |
1226 spdy::SettingsFlagsAndId id(0); | 1226 spdy::SettingsFlagsAndId id(0, spdy::SETTINGS_MAX_CONCURRENT_STREAMS); |
1227 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS); | |
1228 const size_t max_concurrent_streams = 1; | 1227 const size_t max_concurrent_streams = 1; |
1229 | 1228 |
1230 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); | 1229 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); |
1231 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 1230 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
1232 | 1231 |
1233 MockWrite writes[] = { CreateMockWrite(*req), | 1232 MockWrite writes[] = { CreateMockWrite(*req), |
1234 CreateMockWrite(*req2), | 1233 CreateMockWrite(*req2), |
1235 }; | 1234 }; |
1236 MockRead reads[] = { | 1235 MockRead reads[] = { |
1237 CreateMockRead(*settings_frame, 1), | 1236 CreateMockRead(*settings_frame, 1), |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1352 // Construct the request. | 1351 // Construct the request. |
1353 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 1352 scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
1354 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 1353 scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
1355 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); | 1354 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); |
1356 scoped_ptr<spdy::SpdyFrame> fin_body(ConstructSpdyBodyFrame(1, true)); | 1355 scoped_ptr<spdy::SpdyFrame> fin_body(ConstructSpdyBodyFrame(1, true)); |
1357 | 1356 |
1358 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); | 1357 scoped_ptr<spdy::SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); |
1359 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); | 1358 scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); |
1360 | 1359 |
1361 spdy::SpdySettings settings; | 1360 spdy::SpdySettings settings; |
1362 spdy::SettingsFlagsAndId id(0); | 1361 spdy::SettingsFlagsAndId id(0, spdy::SETTINGS_MAX_CONCURRENT_STREAMS); |
1363 id.set_id(spdy::SETTINGS_MAX_CONCURRENT_STREAMS); | |
1364 const size_t max_concurrent_streams = 1; | 1362 const size_t max_concurrent_streams = 1; |
1365 | 1363 |
1366 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); | 1364 settings.push_back(spdy::SpdySetting(id, max_concurrent_streams)); |
1367 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 1365 scoped_ptr<spdy::SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
1368 | 1366 |
1369 MockWrite writes[] = { CreateMockWrite(*req), | 1367 MockWrite writes[] = { CreateMockWrite(*req), |
1370 CreateMockWrite(*req2), | 1368 CreateMockWrite(*req2), |
1371 }; | 1369 }; |
1372 MockRead reads[] = { | 1370 MockRead reads[] = { |
1373 CreateMockRead(*settings_frame, 1), | 1371 CreateMockRead(*settings_frame, 1), |
(...skipping 3063 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4437 ConstructSpdyPacket(kSynReplyInfo, | 4435 ConstructSpdyPacket(kSynReplyInfo, |
4438 kExtraHeaders, | 4436 kExtraHeaders, |
4439 arraysize(kExtraHeaders) / 2, | 4437 arraysize(kExtraHeaders) / 2, |
4440 NULL, | 4438 NULL, |
4441 0)); | 4439 0)); |
4442 | 4440 |
4443 unsigned int kSampleId1 = 0x1; | 4441 unsigned int kSampleId1 = 0x1; |
4444 unsigned int kSampleValue1 = 0x0a0a0a0a; | 4442 unsigned int kSampleValue1 = 0x0a0a0a0a; |
4445 unsigned int kSampleId2 = 0x2; | 4443 unsigned int kSampleId2 = 0x2; |
4446 unsigned int kSampleValue2 = 0x0b0b0b0b; | 4444 unsigned int kSampleValue2 = 0x0b0b0b0b; |
4447 unsigned int kSampleId3 = 0xababab; | 4445 unsigned int kSampleId3 = 0x3; |
4448 unsigned int kSampleValue3 = 0x0c0c0c0c; | 4446 unsigned int kSampleValue3 = 0x0c0c0c0c; |
4449 scoped_ptr<spdy::SpdyFrame> settings_frame; | 4447 scoped_ptr<spdy::SpdyFrame> settings_frame; |
4450 { | 4448 { |
4451 // Construct the SETTINGS frame. | 4449 // Construct the SETTINGS frame. |
4452 spdy::SpdySettings settings; | 4450 spdy::SpdySettings settings; |
4453 spdy::SettingsFlagsAndId setting(0); | |
4454 // First add a persisted setting | 4451 // First add a persisted setting |
4455 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); | 4452 spdy::SettingsFlagsAndId setting1(spdy::SETTINGS_FLAG_PLEASE_PERSIST, |
4456 setting.set_id(kSampleId1); | 4453 kSampleId1); |
4457 settings.push_back(std::make_pair(setting, kSampleValue1)); | 4454 settings.push_back(std::make_pair(setting1, kSampleValue1)); |
4458 // Next add a non-persisted setting | 4455 // Next add a non-persisted setting |
4459 setting.set_flags(0); | 4456 spdy::SettingsFlagsAndId setting2(0, kSampleId2); |
4460 setting.set_id(kSampleId2); | 4457 settings.push_back(std::make_pair(setting2, kSampleValue2)); |
4461 settings.push_back(std::make_pair(setting, kSampleValue2)); | |
4462 // Next add another persisted setting | 4458 // Next add another persisted setting |
4463 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); | 4459 spdy::SettingsFlagsAndId setting3(spdy::SETTINGS_FLAG_PLEASE_PERSIST, |
4464 setting.set_id(kSampleId3); | 4460 kSampleId3); |
4465 settings.push_back(std::make_pair(setting, kSampleValue3)); | 4461 settings.push_back(std::make_pair(setting3, kSampleValue3)); |
4466 settings_frame.reset(ConstructSpdySettings(settings)); | 4462 settings_frame.reset(ConstructSpdySettings(settings)); |
4467 } | 4463 } |
4468 | 4464 |
4469 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4465 scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
4470 MockRead reads[] = { | 4466 MockRead reads[] = { |
4471 CreateMockRead(*reply), | 4467 CreateMockRead(*reply), |
4472 CreateMockRead(*body), | 4468 CreateMockRead(*body), |
4473 CreateMockRead(*settings_frame), | 4469 CreateMockRead(*settings_frame), |
4474 MockRead(ASYNC, 0, 0) // EOF | 4470 MockRead(ASYNC, 0, 0) // EOF |
4475 }; | 4471 }; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4539 EXPECT_TRUE(spdy_session_pool->http_server_properties()->GetSpdySettings( | 4535 EXPECT_TRUE(spdy_session_pool->http_server_properties()->GetSpdySettings( |
4540 host_port_pair).empty()); | 4536 host_port_pair).empty()); |
4541 | 4537 |
4542 unsigned int kSampleId1 = 0x1; | 4538 unsigned int kSampleId1 = 0x1; |
4543 unsigned int kSampleValue1 = 0x0a0a0a0a; | 4539 unsigned int kSampleValue1 = 0x0a0a0a0a; |
4544 unsigned int kSampleId2 = 0xababab; | 4540 unsigned int kSampleId2 = 0xababab; |
4545 unsigned int kSampleValue2 = 0x0c0c0c0c; | 4541 unsigned int kSampleValue2 = 0x0c0c0c0c; |
4546 // Manually insert settings into the SpdySettingsStorage here. | 4542 // Manually insert settings into the SpdySettingsStorage here. |
4547 { | 4543 { |
4548 spdy::SpdySettings settings; | 4544 spdy::SpdySettings settings; |
4549 spdy::SettingsFlagsAndId setting(0); | |
4550 // First add a persisted setting | 4545 // First add a persisted setting |
4551 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); | 4546 spdy::SettingsFlagsAndId setting1(spdy::SETTINGS_FLAG_PLEASE_PERSIST, |
4552 setting.set_id(kSampleId1); | 4547 kSampleId1); |
4553 settings.push_back(std::make_pair(setting, kSampleValue1)); | 4548 settings.push_back(std::make_pair(setting1, kSampleValue1)); |
4554 // Next add another persisted setting | 4549 // Next add another persisted setting |
4555 setting.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST); | 4550 spdy::SettingsFlagsAndId setting2(spdy::SETTINGS_FLAG_PLEASE_PERSIST, |
4556 setting.set_id(kSampleId2); | 4551 kSampleId2); |
4557 settings.push_back(std::make_pair(setting, kSampleValue2)); | 4552 settings.push_back(std::make_pair(setting2, kSampleValue2)); |
4558 | 4553 |
4559 spdy_session_pool->http_server_properties()->SetSpdySettings( | 4554 spdy_session_pool->http_server_properties()->SetSpdySettings( |
4560 host_port_pair, settings); | 4555 host_port_pair, settings); |
4561 } | 4556 } |
4562 | 4557 |
4563 EXPECT_EQ(2u, spdy_session_pool->http_server_properties()->GetSpdySettings( | 4558 EXPECT_EQ(2u, spdy_session_pool->http_server_properties()->GetSpdySettings( |
4564 host_port_pair).size()); | 4559 host_port_pair).size()); |
4565 | 4560 |
4566 // Construct the SETTINGS frame. | 4561 // Construct the SETTINGS frame. |
4567 const spdy::SpdySettings& settings = | 4562 const spdy::SpdySettings& settings = |
(...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5895 << " Write index: " | 5890 << " Write index: " |
5896 << data->write_index(); | 5891 << data->write_index(); |
5897 | 5892 |
5898 // Verify the SYN_REPLY. | 5893 // Verify the SYN_REPLY. |
5899 HttpResponseInfo response = *trans->GetResponseInfo(); | 5894 HttpResponseInfo response = *trans->GetResponseInfo(); |
5900 EXPECT_TRUE(response.headers != NULL); | 5895 EXPECT_TRUE(response.headers != NULL); |
5901 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); | 5896 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); |
5902 } | 5897 } |
5903 | 5898 |
5904 } // namespace net | 5899 } // namespace net |
OLD | NEW |