OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/spdy/spdy_test_util_common.h" | 5 #include "net/spdy/spdy_test_util_common.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <cstddef> | 9 #include <cstddef> |
10 | 10 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 NextProtoVector SpdyNextProtos() { | 57 NextProtoVector SpdyNextProtos() { |
58 NextProtoVector next_protos; | 58 NextProtoVector next_protos; |
59 next_protos.push_back(kProtoHTTP11); | 59 next_protos.push_back(kProtoHTTP11); |
60 next_protos.push_back(kProtoSPDY31); | 60 next_protos.push_back(kProtoSPDY31); |
61 next_protos.push_back(kProtoHTTP2); | 61 next_protos.push_back(kProtoHTTP2); |
62 next_protos.push_back(kProtoQUIC1SPDY3); | 62 next_protos.push_back(kProtoQUIC1SPDY3); |
63 return next_protos; | 63 return next_protos; |
64 } | 64 } |
65 | 65 |
66 // Chop a frame into an array of MockWrites. | 66 // Chop a frame into an array of MockWrites. |
67 // |data| is the frame to chop. | 67 // |frame| is the frame to chop. |
68 // |length| is the length of the frame to chop. | |
69 // |num_chunks| is the number of chunks to create. | 68 // |num_chunks| is the number of chunks to create. |
70 MockWrite* ChopWriteFrame(const char* data, int length, int num_chunks) { | 69 MockWrite* ChopWriteFrame(const SpdyFrame& frame, int num_chunks) { |
71 MockWrite* chunks = new MockWrite[num_chunks]; | 70 MockWrite* chunks = new MockWrite[num_chunks]; |
72 int chunk_size = length / num_chunks; | 71 int chunk_size = frame.size() / num_chunks; |
73 for (int index = 0; index < num_chunks; index++) { | 72 for (int index = 0; index < num_chunks; index++) { |
74 const char* ptr = data + (index * chunk_size); | 73 const char* ptr = frame.data() + (index * chunk_size); |
75 if (index == num_chunks - 1) | 74 if (index == num_chunks - 1) |
76 chunk_size += length % chunk_size; // The last chunk takes the remainder. | 75 chunk_size += |
| 76 frame.size() % chunk_size; // The last chunk takes the remainder. |
77 chunks[index] = MockWrite(ASYNC, ptr, chunk_size); | 77 chunks[index] = MockWrite(ASYNC, ptr, chunk_size); |
78 } | 78 } |
79 return chunks; | 79 return chunks; |
80 } | 80 } |
81 | 81 |
82 // Chop a SpdyFrame into an array of MockWrites. | |
83 // |frame| is the frame to chop. | |
84 // |num_chunks| is the number of chunks to create. | |
85 MockWrite* ChopWriteFrame(const SpdyFrame& frame, int num_chunks) { | |
86 return ChopWriteFrame(frame.data(), frame.size(), num_chunks); | |
87 } | |
88 | |
89 // Chop a frame into an array of MockReads. | |
90 // |data| is the frame to chop. | |
91 // |length| is the length of the frame to chop. | |
92 // |num_chunks| is the number of chunks to create. | |
93 MockRead* ChopReadFrame(const char* data, int length, int num_chunks) { | |
94 MockRead* chunks = new MockRead[num_chunks]; | |
95 int chunk_size = length / num_chunks; | |
96 for (int index = 0; index < num_chunks; index++) { | |
97 const char* ptr = data + (index * chunk_size); | |
98 if (index == num_chunks - 1) | |
99 chunk_size += length % chunk_size; // The last chunk takes the remainder. | |
100 chunks[index] = MockRead(ASYNC, ptr, chunk_size); | |
101 } | |
102 return chunks; | |
103 } | |
104 | |
105 // Chop a SpdyFrame into an array of MockReads. | |
106 // |frame| is the frame to chop. | |
107 // |num_chunks| is the number of chunks to create. | |
108 MockRead* ChopReadFrame(const SpdyFrame& frame, int num_chunks) { | |
109 return ChopReadFrame(frame.data(), frame.size(), num_chunks); | |
110 } | |
111 | |
112 // Adds headers and values to a map. | 82 // Adds headers and values to a map. |
113 // |extra_headers| is an array of { name, value } pairs, arranged as strings | 83 // |extra_headers| is an array of { name, value } pairs, arranged as strings |
114 // where the even entries are the header names, and the odd entries are the | 84 // where the even entries are the header names, and the odd entries are the |
115 // header values. | 85 // header values. |
116 // |headers| gets filled in from |extra_headers|. | 86 // |headers| gets filled in from |extra_headers|. |
117 void AppendToHeaderBlock(const char* const extra_headers[], | 87 void AppendToHeaderBlock(const char* const extra_headers[], |
118 int extra_header_count, | 88 int extra_header_count, |
119 SpdyHeaderBlock* headers) { | 89 SpdyHeaderBlock* headers) { |
120 std::string this_header; | 90 std::string this_header; |
121 std::string this_value; | 91 std::string this_value; |
(...skipping 1177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1299 stream_it != priority_it->second.end(); ++stream_it) { | 1269 stream_it != priority_it->second.end(); ++stream_it) { |
1300 if (*stream_it == stream_id) { | 1270 if (*stream_it == stream_id) { |
1301 priority_it->second.erase(stream_it); | 1271 priority_it->second.erase(stream_it); |
1302 return; | 1272 return; |
1303 } | 1273 } |
1304 } | 1274 } |
1305 } | 1275 } |
1306 NOTREACHED(); | 1276 NOTREACHED(); |
1307 } | 1277 } |
1308 | 1278 |
1309 const SpdyHeaderInfo SpdyTestUtil::MakeSpdyHeader(SpdyFrameType type) { | |
1310 const SpdyHeaderInfo kHeader = { | |
1311 type, | |
1312 1, // Stream ID | |
1313 0, // Associated stream ID | |
1314 ConvertRequestPriorityToSpdyPriority(LOWEST, spdy_version_), | |
1315 CONTROL_FLAG_FIN, // Control Flags | |
1316 false, // Compressed | |
1317 RST_STREAM_INVALID, | |
1318 NULL, // Data | |
1319 0, // Length | |
1320 DATA_FLAG_NONE | |
1321 }; | |
1322 return kHeader; | |
1323 } | |
1324 | |
1325 scoped_ptr<SpdyFramer> SpdyTestUtil::CreateFramer(bool compressed) const { | 1279 scoped_ptr<SpdyFramer> SpdyTestUtil::CreateFramer(bool compressed) const { |
1326 scoped_ptr<SpdyFramer> framer(new SpdyFramer(spdy_version_)); | 1280 scoped_ptr<SpdyFramer> framer(new SpdyFramer(spdy_version_)); |
1327 framer->set_enable_compression(compressed); | 1281 framer->set_enable_compression(compressed); |
1328 return framer.Pass(); | 1282 return framer.Pass(); |
1329 } | 1283 } |
1330 | 1284 |
1331 const char* SpdyTestUtil::GetMethodKey() const { | 1285 const char* SpdyTestUtil::GetMethodKey() const { |
1332 return ":method"; | 1286 return ":method"; |
1333 } | 1287 } |
1334 | 1288 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 } | 1343 } |
1390 } | 1344 } |
1391 | 1345 |
1392 void SpdyTestUtil::SetPriority(RequestPriority priority, | 1346 void SpdyTestUtil::SetPriority(RequestPriority priority, |
1393 SpdySynStreamIR* ir) const { | 1347 SpdySynStreamIR* ir) const { |
1394 ir->set_priority(ConvertRequestPriorityToSpdyPriority( | 1348 ir->set_priority(ConvertRequestPriorityToSpdyPriority( |
1395 priority, spdy_version())); | 1349 priority, spdy_version())); |
1396 } | 1350 } |
1397 | 1351 |
1398 } // namespace net | 1352 } // namespace net |
OLD | NEW |