| 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 915 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 926 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); | 926 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); |
| 927 scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); | 927 scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); |
| 928 scoped_ptr<SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); | 928 scoped_ptr<SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); |
| 929 scoped_ptr<SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); | 929 scoped_ptr<SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); |
| 930 | 930 |
| 931 scoped_ptr<SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 5, LOWEST)); | 931 scoped_ptr<SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 5, LOWEST)); |
| 932 scoped_ptr<SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 5)); | 932 scoped_ptr<SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 5)); |
| 933 scoped_ptr<SpdyFrame> body3(ConstructSpdyBodyFrame(5, false)); | 933 scoped_ptr<SpdyFrame> body3(ConstructSpdyBodyFrame(5, false)); |
| 934 scoped_ptr<SpdyFrame> fbody3(ConstructSpdyBodyFrame(5, true)); | 934 scoped_ptr<SpdyFrame> fbody3(ConstructSpdyBodyFrame(5, true)); |
| 935 | 935 |
| 936 SpdySettings settings; | 936 SettingsMap settings; |
| 937 SettingsFlagsAndId id(SETTINGS_FLAG_NONE, SETTINGS_MAX_CONCURRENT_STREAMS); | |
| 938 const size_t max_concurrent_streams = 1; | 937 const size_t max_concurrent_streams = 1; |
| 939 | 938 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
| 940 settings.push_back(SpdySetting(id, max_concurrent_streams)); | 939 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
| 941 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 940 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
| 942 | 941 |
| 943 MockWrite writes[] = { | 942 MockWrite writes[] = { |
| 944 CreateMockWrite(*req), | 943 CreateMockWrite(*req), |
| 945 CreateMockWrite(*req2), | 944 CreateMockWrite(*req2), |
| 946 CreateMockWrite(*req3), | 945 CreateMockWrite(*req3), |
| 947 }; | 946 }; |
| 948 | 947 |
| 949 MockRead reads[] = { | 948 MockRead reads[] = { |
| 950 CreateMockRead(*settings_frame, 1), | 949 CreateMockRead(*settings_frame, 1), |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 988 TestCompletionCallback callback1; | 987 TestCompletionCallback callback1; |
| 989 TestCompletionCallback callback2; | 988 TestCompletionCallback callback2; |
| 990 TestCompletionCallback callback3; | 989 TestCompletionCallback callback3; |
| 991 | 990 |
| 992 HttpRequestInfo httpreq1 = CreateGetRequest(); | 991 HttpRequestInfo httpreq1 = CreateGetRequest(); |
| 993 HttpRequestInfo httpreq2 = CreateGetRequest(); | 992 HttpRequestInfo httpreq2 = CreateGetRequest(); |
| 994 HttpRequestInfo httpreq3 = CreateGetRequest(); | 993 HttpRequestInfo httpreq3 = CreateGetRequest(); |
| 995 | 994 |
| 996 out.rv = trans1->Start(&httpreq1, callback1.callback(), log); | 995 out.rv = trans1->Start(&httpreq1, callback1.callback(), log); |
| 997 ASSERT_EQ(out.rv, ERR_IO_PENDING); | 996 ASSERT_EQ(out.rv, ERR_IO_PENDING); |
| 998 // run transaction 1 through quickly to force a read of our SETTINGS | 997 // Run transaction 1 through quickly to force a read of our SETTINGS |
| 999 // frame | 998 // frame. |
| 1000 out.rv = callback1.WaitForResult(); | 999 out.rv = callback1.WaitForResult(); |
| 1001 ASSERT_EQ(OK, out.rv); | 1000 ASSERT_EQ(OK, out.rv); |
| 1002 | 1001 |
| 1003 out.rv = trans2->Start(&httpreq2, callback2.callback(), log); | 1002 out.rv = trans2->Start(&httpreq2, callback2.callback(), log); |
| 1004 ASSERT_EQ(out.rv, ERR_IO_PENDING); | 1003 ASSERT_EQ(out.rv, ERR_IO_PENDING); |
| 1005 out.rv = trans3->Start(&httpreq3, callback3.callback(), log); | 1004 out.rv = trans3->Start(&httpreq3, callback3.callback(), log); |
| 1006 ASSERT_EQ(out.rv, ERR_IO_PENDING); | 1005 ASSERT_EQ(out.rv, ERR_IO_PENDING); |
| 1007 out.rv = callback2.WaitForResult(); | 1006 out.rv = callback2.WaitForResult(); |
| 1008 ASSERT_EQ(OK, out.rv); | 1007 ASSERT_EQ(OK, out.rv); |
| 1009 EXPECT_EQ(7U, data->read_index()); // i.e. the third trans was queued | 1008 EXPECT_EQ(7U, data->read_index()); // i.e. the third trans was queued |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1063 scoped_ptr<SpdyFrame> req4( | 1062 scoped_ptr<SpdyFrame> req4( |
| 1064 ConstructSpdyGet(NULL, 0, false, 5, HIGHEST)); | 1063 ConstructSpdyGet(NULL, 0, false, 5, HIGHEST)); |
| 1065 scoped_ptr<SpdyFrame> resp4(ConstructSpdyGetSynReply(NULL, 0, 5)); | 1064 scoped_ptr<SpdyFrame> resp4(ConstructSpdyGetSynReply(NULL, 0, 5)); |
| 1066 scoped_ptr<SpdyFrame> fbody4(ConstructSpdyBodyFrame(5, true)); | 1065 scoped_ptr<SpdyFrame> fbody4(ConstructSpdyBodyFrame(5, true)); |
| 1067 | 1066 |
| 1068 scoped_ptr<SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 7, LOWEST)); | 1067 scoped_ptr<SpdyFrame> req3(ConstructSpdyGet(NULL, 0, false, 7, LOWEST)); |
| 1069 scoped_ptr<SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 7)); | 1068 scoped_ptr<SpdyFrame> resp3(ConstructSpdyGetSynReply(NULL, 0, 7)); |
| 1070 scoped_ptr<SpdyFrame> body3(ConstructSpdyBodyFrame(7, false)); | 1069 scoped_ptr<SpdyFrame> body3(ConstructSpdyBodyFrame(7, false)); |
| 1071 scoped_ptr<SpdyFrame> fbody3(ConstructSpdyBodyFrame(7, true)); | 1070 scoped_ptr<SpdyFrame> fbody3(ConstructSpdyBodyFrame(7, true)); |
| 1072 | 1071 |
| 1073 SpdySettings settings; | 1072 SettingsMap settings; |
| 1074 SettingsFlagsAndId id(SETTINGS_FLAG_NONE, SETTINGS_MAX_CONCURRENT_STREAMS); | |
| 1075 const size_t max_concurrent_streams = 1; | 1073 const size_t max_concurrent_streams = 1; |
| 1076 | 1074 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
| 1077 settings.push_back(SpdySetting(id, max_concurrent_streams)); | 1075 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
| 1078 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 1076 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
| 1079 | 1077 |
| 1080 MockWrite writes[] = { CreateMockWrite(*req), | 1078 MockWrite writes[] = { CreateMockWrite(*req), |
| 1081 CreateMockWrite(*req2), | 1079 CreateMockWrite(*req2), |
| 1082 CreateMockWrite(*req4), | 1080 CreateMockWrite(*req4), |
| 1083 CreateMockWrite(*req3), | 1081 CreateMockWrite(*req3), |
| 1084 }; | 1082 }; |
| 1085 MockRead reads[] = { | 1083 MockRead reads[] = { |
| 1086 CreateMockRead(*settings_frame, 1), | 1084 CreateMockRead(*settings_frame, 1), |
| 1087 CreateMockRead(*resp), | 1085 CreateMockRead(*resp), |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1206 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 1204 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 1207 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 1205 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 1208 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); | 1206 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); |
| 1209 scoped_ptr<SpdyFrame> fbody(ConstructSpdyBodyFrame(1, true)); | 1207 scoped_ptr<SpdyFrame> fbody(ConstructSpdyBodyFrame(1, true)); |
| 1210 | 1208 |
| 1211 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); | 1209 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); |
| 1212 scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); | 1210 scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); |
| 1213 scoped_ptr<SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); | 1211 scoped_ptr<SpdyFrame> body2(ConstructSpdyBodyFrame(3, false)); |
| 1214 scoped_ptr<SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); | 1212 scoped_ptr<SpdyFrame> fbody2(ConstructSpdyBodyFrame(3, true)); |
| 1215 | 1213 |
| 1216 SpdySettings settings; | 1214 SettingsMap settings; |
| 1217 SettingsFlagsAndId id(SETTINGS_FLAG_NONE, SETTINGS_MAX_CONCURRENT_STREAMS); | |
| 1218 const size_t max_concurrent_streams = 1; | 1215 const size_t max_concurrent_streams = 1; |
| 1219 | 1216 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
| 1220 settings.push_back(SpdySetting(id, max_concurrent_streams)); | 1217 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
| 1221 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 1218 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
| 1222 | 1219 |
| 1223 MockWrite writes[] = { CreateMockWrite(*req), | 1220 MockWrite writes[] = { CreateMockWrite(*req), |
| 1224 CreateMockWrite(*req2), | 1221 CreateMockWrite(*req2), |
| 1225 }; | 1222 }; |
| 1226 MockRead reads[] = { | 1223 MockRead reads[] = { |
| 1227 CreateMockRead(*settings_frame, 1), | 1224 CreateMockRead(*settings_frame, 1), |
| 1228 CreateMockRead(*resp), | 1225 CreateMockRead(*resp), |
| 1229 CreateMockRead(*body), | 1226 CreateMockRead(*body), |
| 1230 CreateMockRead(*fbody), | 1227 CreateMockRead(*fbody), |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1340 TEST_P(SpdyNetworkTransactionSpdy2Test, ThreeGetsWithMaxConcurrentSocketClose) { | 1337 TEST_P(SpdyNetworkTransactionSpdy2Test, ThreeGetsWithMaxConcurrentSocketClose) { |
| 1341 // Construct the request. | 1338 // Construct the request. |
| 1342 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 1339 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 1343 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 1340 scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
| 1344 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); | 1341 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, false)); |
| 1345 scoped_ptr<SpdyFrame> fin_body(ConstructSpdyBodyFrame(1, true)); | 1342 scoped_ptr<SpdyFrame> fin_body(ConstructSpdyBodyFrame(1, true)); |
| 1346 | 1343 |
| 1347 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); | 1344 scoped_ptr<SpdyFrame> req2(ConstructSpdyGet(NULL, 0, false, 3, LOWEST)); |
| 1348 scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); | 1345 scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 3)); |
| 1349 | 1346 |
| 1350 SpdySettings settings; | 1347 SettingsMap settings; |
| 1351 SettingsFlagsAndId id(SETTINGS_FLAG_NONE, SETTINGS_MAX_CONCURRENT_STREAMS); | |
| 1352 const size_t max_concurrent_streams = 1; | 1348 const size_t max_concurrent_streams = 1; |
| 1353 | 1349 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
| 1354 settings.push_back(SpdySetting(id, max_concurrent_streams)); | 1350 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
| 1355 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 1351 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
| 1356 | 1352 |
| 1357 MockWrite writes[] = { CreateMockWrite(*req), | 1353 MockWrite writes[] = { CreateMockWrite(*req), |
| 1358 CreateMockWrite(*req2), | 1354 CreateMockWrite(*req2), |
| 1359 }; | 1355 }; |
| 1360 MockRead reads[] = { | 1356 MockRead reads[] = { |
| 1361 CreateMockRead(*settings_frame, 1), | 1357 CreateMockRead(*settings_frame, 1), |
| 1362 CreateMockRead(*resp), | 1358 CreateMockRead(*resp), |
| 1363 CreateMockRead(*body), | 1359 CreateMockRead(*body), |
| 1364 CreateMockRead(*fin_body), | 1360 CreateMockRead(*fin_body), |
| (...skipping 2688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4053 | 4049 |
| 4054 // Flush the MessageLoop; this will cause the buffered IO task | 4050 // Flush the MessageLoop; this will cause the buffered IO task |
| 4055 // to run for the final time. | 4051 // to run for the final time. |
| 4056 MessageLoop::current()->RunAllPending(); | 4052 MessageLoop::current()->RunAllPending(); |
| 4057 | 4053 |
| 4058 // Verify that we consumed all test data. | 4054 // Verify that we consumed all test data. |
| 4059 helper.VerifyDataConsumed(); | 4055 helper.VerifyDataConsumed(); |
| 4060 } | 4056 } |
| 4061 | 4057 |
| 4062 // Test that if the server requests persistence of settings, that we save | 4058 // Test that if the server requests persistence of settings, that we save |
| 4063 // the settings in the SpdySettingsStorage. | 4059 // the settings in the HttpServerProperties. |
| 4064 TEST_P(SpdyNetworkTransactionSpdy2Test, SettingsSaved) { | 4060 TEST_P(SpdyNetworkTransactionSpdy2Test, SettingsSaved) { |
| 4065 static const SpdyHeaderInfo kSynReplyInfo = { | 4061 static const SpdyHeaderInfo kSynReplyInfo = { |
| 4066 SYN_REPLY, // Syn Reply | 4062 SYN_REPLY, // Syn Reply |
| 4067 1, // Stream ID | 4063 1, // Stream ID |
| 4068 0, // Associated Stream ID | 4064 0, // Associated Stream ID |
| 4069 net::ConvertRequestPriorityToSpdyPriority(LOWEST), // Priority | 4065 net::ConvertRequestPriorityToSpdyPriority(LOWEST), // Priority |
| 4070 CONTROL_FLAG_NONE, // Control Flags | 4066 CONTROL_FLAG_NONE, // Control Flags |
| 4071 false, // Compressed | 4067 false, // Compressed |
| 4072 INVALID, // Status | 4068 INVALID, // Status |
| 4073 NULL, // Data | 4069 NULL, // Data |
| (...skipping 29 matching lines...) Expand all Loading... |
| 4103 | 4099 |
| 4104 const SpdySettingsIds kSampleId1 = SETTINGS_UPLOAD_BANDWIDTH; | 4100 const SpdySettingsIds kSampleId1 = SETTINGS_UPLOAD_BANDWIDTH; |
| 4105 unsigned int kSampleValue1 = 0x0a0a0a0a; | 4101 unsigned int kSampleValue1 = 0x0a0a0a0a; |
| 4106 const SpdySettingsIds kSampleId2 = SETTINGS_DOWNLOAD_BANDWIDTH; | 4102 const SpdySettingsIds kSampleId2 = SETTINGS_DOWNLOAD_BANDWIDTH; |
| 4107 unsigned int kSampleValue2 = 0x0b0b0b0b; | 4103 unsigned int kSampleValue2 = 0x0b0b0b0b; |
| 4108 const SpdySettingsIds kSampleId3 = SETTINGS_ROUND_TRIP_TIME; | 4104 const SpdySettingsIds kSampleId3 = SETTINGS_ROUND_TRIP_TIME; |
| 4109 unsigned int kSampleValue3 = 0x0c0c0c0c; | 4105 unsigned int kSampleValue3 = 0x0c0c0c0c; |
| 4110 scoped_ptr<SpdyFrame> settings_frame; | 4106 scoped_ptr<SpdyFrame> settings_frame; |
| 4111 { | 4107 { |
| 4112 // Construct the SETTINGS frame. | 4108 // Construct the SETTINGS frame. |
| 4113 SpdySettings settings; | 4109 SettingsMap settings; |
| 4114 // First add a persisted setting. | 4110 // First add a persisted setting. |
| 4115 SettingsFlagsAndId setting1(SETTINGS_FLAG_PLEASE_PERSIST, kSampleId1); | 4111 settings[kSampleId1] = |
| 4116 settings.push_back(std::make_pair(setting1, kSampleValue1)); | 4112 SettingsFlagsAndValue(SETTINGS_FLAG_PLEASE_PERSIST, kSampleValue1); |
| 4117 // Next add a non-persisted setting. | 4113 // Next add a non-persisted setting. |
| 4118 SettingsFlagsAndId setting2(SETTINGS_FLAG_NONE, kSampleId2); | 4114 settings[kSampleId2] = |
| 4119 settings.push_back(std::make_pair(setting2, kSampleValue2)); | 4115 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kSampleValue2); |
| 4120 // Next add another persisted setting. | 4116 // Next add another persisted setting. |
| 4121 SettingsFlagsAndId setting3(SETTINGS_FLAG_PLEASE_PERSIST, kSampleId3); | 4117 settings[kSampleId3] = |
| 4122 settings.push_back(std::make_pair(setting3, kSampleValue3)); | 4118 SettingsFlagsAndValue(SETTINGS_FLAG_PLEASE_PERSIST, kSampleValue3); |
| 4123 settings_frame.reset(ConstructSpdySettings(settings)); | 4119 settings_frame.reset(ConstructSpdySettings(settings)); |
| 4124 } | 4120 } |
| 4125 | 4121 |
| 4126 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 4122 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
| 4127 MockRead reads[] = { | 4123 MockRead reads[] = { |
| 4128 CreateMockRead(*reply), | 4124 CreateMockRead(*reply), |
| 4129 CreateMockRead(*body), | 4125 CreateMockRead(*body), |
| 4130 CreateMockRead(*settings_frame), | 4126 CreateMockRead(*settings_frame), |
| 4131 MockRead(ASYNC, 0, 0) // EOF | 4127 MockRead(ASYNC, 0, 0) // EOF |
| 4132 }; | 4128 }; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4211 spdy_session_pool->http_server_properties()->SetSpdySetting( | 4207 spdy_session_pool->http_server_properties()->SetSpdySetting( |
| 4212 host_port_pair, | 4208 host_port_pair, |
| 4213 kSampleId2, | 4209 kSampleId2, |
| 4214 SETTINGS_FLAG_PLEASE_PERSIST, | 4210 SETTINGS_FLAG_PLEASE_PERSIST, |
| 4215 kSampleValue2); | 4211 kSampleValue2); |
| 4216 | 4212 |
| 4217 EXPECT_EQ(2u, spdy_session_pool->http_server_properties()->GetSpdySettings( | 4213 EXPECT_EQ(2u, spdy_session_pool->http_server_properties()->GetSpdySettings( |
| 4218 host_port_pair).size()); | 4214 host_port_pair).size()); |
| 4219 | 4215 |
| 4220 // Construct the SETTINGS frame. | 4216 // Construct the SETTINGS frame. |
| 4221 const SettingsMap& settings_map = | 4217 const SettingsMap& settings = |
| 4222 spdy_session_pool->http_server_properties()->GetSpdySettings( | 4218 spdy_session_pool->http_server_properties()->GetSpdySettings( |
| 4223 host_port_pair); | 4219 host_port_pair); |
| 4224 | |
| 4225 SpdySettings settings; | |
| 4226 for (SettingsMap::const_iterator i = settings_map.begin(), | |
| 4227 end = settings_map.end(); i != end; ++i) { | |
| 4228 const SpdySettingsIds id = i->first; | |
| 4229 const SpdySettingsFlags flags = i->second.first; | |
| 4230 const uint32 val = i->second.second; | |
| 4231 SettingsFlagsAndId flags_and_id(flags, id); | |
| 4232 settings.push_back(SpdySetting(flags_and_id, val)); | |
| 4233 } | |
| 4234 | |
| 4235 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); | 4220 scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings)); |
| 4236 | 4221 |
| 4237 // Construct the request. | 4222 // Construct the request. |
| 4238 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); | 4223 scoped_ptr<SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST)); |
| 4239 | 4224 |
| 4240 MockWrite writes[] = { | 4225 MockWrite writes[] = { |
| 4241 CreateMockWrite(*settings_frame), | 4226 CreateMockWrite(*settings_frame), |
| 4242 CreateMockWrite(*req), | 4227 CreateMockWrite(*req), |
| 4243 }; | 4228 }; |
| 4244 | 4229 |
| (...skipping 1320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5565 << " Write index: " | 5550 << " Write index: " |
| 5566 << data->write_index(); | 5551 << data->write_index(); |
| 5567 | 5552 |
| 5568 // Verify the SYN_REPLY. | 5553 // Verify the SYN_REPLY. |
| 5569 HttpResponseInfo response = *trans->GetResponseInfo(); | 5554 HttpResponseInfo response = *trans->GetResponseInfo(); |
| 5570 EXPECT_TRUE(response.headers != NULL); | 5555 EXPECT_TRUE(response.headers != NULL); |
| 5571 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); | 5556 EXPECT_EQ("HTTP/1.1 200 OK", response.headers->GetStatusLine()); |
| 5572 } | 5557 } |
| 5573 | 5558 |
| 5574 } // namespace net | 5559 } // namespace net |
| OLD | NEW |