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 |