OLD | NEW |
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/spdy/spdy_test_util.h" | 5 #include "net/spdy/spdy_test_util.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 chunks[index] = MockWrite(true, ptr, chunk_size); | 32 chunks[index] = MockWrite(true, ptr, chunk_size); |
33 } | 33 } |
34 return chunks; | 34 return chunks; |
35 } | 35 } |
36 | 36 |
37 // Chop a SpdyFrame into an array of MockWrites. | 37 // Chop a SpdyFrame into an array of MockWrites. |
38 // |frame| is the frame to chop. | 38 // |frame| is the frame to chop. |
39 // |num_chunks| is the number of chunks to create. | 39 // |num_chunks| is the number of chunks to create. |
40 MockWrite* ChopWriteFrame(const spdy::SpdyFrame& frame, int num_chunks) { | 40 MockWrite* ChopWriteFrame(const spdy::SpdyFrame& frame, int num_chunks) { |
41 return ChopWriteFrame(frame.data(), | 41 return ChopWriteFrame(frame.data(), |
42 frame.length() + spdy::SpdyFrame::size(), | 42 frame.length() + spdy::SpdyFrame::kHeaderSize, |
43 num_chunks); | 43 num_chunks); |
44 } | 44 } |
45 | 45 |
46 // Chop a frame into an array of MockReads. | 46 // Chop a frame into an array of MockReads. |
47 // |data| is the frame to chop. | 47 // |data| is the frame to chop. |
48 // |length| is the length of the frame to chop. | 48 // |length| is the length of the frame to chop. |
49 // |num_chunks| is the number of chunks to create. | 49 // |num_chunks| is the number of chunks to create. |
50 MockRead* ChopReadFrame(const char* data, int length, int num_chunks) { | 50 MockRead* ChopReadFrame(const char* data, int length, int num_chunks) { |
51 MockRead* chunks = new MockRead[num_chunks]; | 51 MockRead* chunks = new MockRead[num_chunks]; |
52 int chunk_size = length / num_chunks; | 52 int chunk_size = length / num_chunks; |
53 for (int index = 0; index < num_chunks; index++) { | 53 for (int index = 0; index < num_chunks; index++) { |
54 const char* ptr = data + (index * chunk_size); | 54 const char* ptr = data + (index * chunk_size); |
55 if (index == num_chunks - 1) | 55 if (index == num_chunks - 1) |
56 chunk_size += length % chunk_size; // The last chunk takes the remainder. | 56 chunk_size += length % chunk_size; // The last chunk takes the remainder. |
57 chunks[index] = MockRead(true, ptr, chunk_size); | 57 chunks[index] = MockRead(true, ptr, chunk_size); |
58 } | 58 } |
59 return chunks; | 59 return chunks; |
60 } | 60 } |
61 | 61 |
62 // Chop a SpdyFrame into an array of MockReads. | 62 // Chop a SpdyFrame into an array of MockReads. |
63 // |frame| is the frame to chop. | 63 // |frame| is the frame to chop. |
64 // |num_chunks| is the number of chunks to create. | 64 // |num_chunks| is the number of chunks to create. |
65 MockRead* ChopReadFrame(const spdy::SpdyFrame& frame, int num_chunks) { | 65 MockRead* ChopReadFrame(const spdy::SpdyFrame& frame, int num_chunks) { |
66 return ChopReadFrame(frame.data(), | 66 return ChopReadFrame(frame.data(), |
67 frame.length() + spdy::SpdyFrame::size(), | 67 frame.length() + spdy::SpdyFrame::kHeaderSize, |
68 num_chunks); | 68 num_chunks); |
69 } | 69 } |
70 | 70 |
71 // Adds headers and values to a map. | 71 // Adds headers and values to a map. |
72 // |extra_headers| is an array of { name, value } pairs, arranged as strings | 72 // |extra_headers| is an array of { name, value } pairs, arranged as strings |
73 // where the even entries are the header names, and the odd entries are the | 73 // where the even entries are the header names, and the odd entries are the |
74 // header values. | 74 // header values. |
75 // |headers| gets filled in from |extra_headers|. | 75 // |headers| gets filled in from |extra_headers|. |
76 void AppendHeadersToSpdyFrame(const char* const extra_headers[], | 76 void AppendHeadersToSpdyFrame(const char* const extra_headers[], |
77 int extra_header_count, | 77 int extra_header_count, |
(...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
751 spdy::SpdyFramer framer; | 751 spdy::SpdyFramer framer; |
752 return framer.CreateDataFrame( | 752 return framer.CreateDataFrame( |
753 stream_id, data, len, fin ? spdy::DATA_FLAG_FIN : spdy::DATA_FLAG_NONE); | 753 stream_id, data, len, fin ? spdy::DATA_FLAG_FIN : spdy::DATA_FLAG_NONE); |
754 } | 754 } |
755 | 755 |
756 // Wraps |frame| in the payload of a data frame in stream |stream_id|. | 756 // Wraps |frame| in the payload of a data frame in stream |stream_id|. |
757 spdy::SpdyFrame* ConstructWrappedSpdyFrame( | 757 spdy::SpdyFrame* ConstructWrappedSpdyFrame( |
758 const scoped_ptr<spdy::SpdyFrame>& frame, | 758 const scoped_ptr<spdy::SpdyFrame>& frame, |
759 int stream_id) { | 759 int stream_id) { |
760 return ConstructSpdyBodyFrame(stream_id, frame->data(), | 760 return ConstructSpdyBodyFrame(stream_id, frame->data(), |
761 frame->length() + spdy::SpdyFrame::size(), | 761 frame->length() + spdy::SpdyFrame::kHeaderSize, |
762 false); | 762 false); |
763 } | 763 } |
764 | 764 |
765 // Construct an expected SPDY reply string. | 765 // Construct an expected SPDY reply string. |
766 // |extra_headers| are the extra header-value pairs, which typically | 766 // |extra_headers| are the extra header-value pairs, which typically |
767 // will vary the most between calls. | 767 // will vary the most between calls. |
768 // |buffer| is the buffer we're filling in. | 768 // |buffer| is the buffer we're filling in. |
769 // Returns the number of bytes written into |buffer|. | 769 // Returns the number of bytes written into |buffer|. |
770 int ConstructSpdyReplyString(const char* const extra_headers[], | 770 int ConstructSpdyReplyString(const char* const extra_headers[], |
771 int extra_header_count, | 771 int extra_header_count, |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
834 strlen("\n"), | 834 strlen("\n"), |
835 &buffer_write, | 835 &buffer_write, |
836 &buffer_left); | 836 &buffer_left); |
837 } | 837 } |
838 return packet_size; | 838 return packet_size; |
839 } | 839 } |
840 | 840 |
841 // Create a MockWrite from the given SpdyFrame. | 841 // Create a MockWrite from the given SpdyFrame. |
842 MockWrite CreateMockWrite(const spdy::SpdyFrame& req) { | 842 MockWrite CreateMockWrite(const spdy::SpdyFrame& req) { |
843 return MockWrite( | 843 return MockWrite( |
844 true, req.data(), req.length() + spdy::SpdyFrame::size()); | 844 true, req.data(), req.length() + spdy::SpdyFrame::kHeaderSize); |
845 } | 845 } |
846 | 846 |
847 // Create a MockWrite from the given SpdyFrame and sequence number. | 847 // Create a MockWrite from the given SpdyFrame and sequence number. |
848 MockWrite CreateMockWrite(const spdy::SpdyFrame& req, int seq) { | 848 MockWrite CreateMockWrite(const spdy::SpdyFrame& req, int seq) { |
849 return CreateMockWrite(req, seq, true); | 849 return CreateMockWrite(req, seq, true); |
850 } | 850 } |
851 | 851 |
852 // Create a MockWrite from the given SpdyFrame and sequence number. | 852 // Create a MockWrite from the given SpdyFrame and sequence number. |
853 MockWrite CreateMockWrite(const spdy::SpdyFrame& req, int seq, bool async) { | 853 MockWrite CreateMockWrite(const spdy::SpdyFrame& req, int seq, bool async) { |
854 return MockWrite( | 854 return MockWrite( |
855 async, req.data(), req.length() + spdy::SpdyFrame::size(), seq); | 855 async, req.data(), req.length() + spdy::SpdyFrame::kHeaderSize, seq); |
856 } | 856 } |
857 | 857 |
858 // Create a MockRead from the given SpdyFrame. | 858 // Create a MockRead from the given SpdyFrame. |
859 MockRead CreateMockRead(const spdy::SpdyFrame& resp) { | 859 MockRead CreateMockRead(const spdy::SpdyFrame& resp) { |
860 return MockRead( | 860 return MockRead( |
861 true, resp.data(), resp.length() + spdy::SpdyFrame::size()); | 861 true, resp.data(), resp.length() + spdy::SpdyFrame::kHeaderSize); |
862 } | 862 } |
863 | 863 |
864 // Create a MockRead from the given SpdyFrame and sequence number. | 864 // Create a MockRead from the given SpdyFrame and sequence number. |
865 MockRead CreateMockRead(const spdy::SpdyFrame& resp, int seq) { | 865 MockRead CreateMockRead(const spdy::SpdyFrame& resp, int seq) { |
866 return CreateMockRead(resp, seq, true); | 866 return CreateMockRead(resp, seq, true); |
867 } | 867 } |
868 | 868 |
869 // Create a MockRead from the given SpdyFrame and sequence number. | 869 // Create a MockRead from the given SpdyFrame and sequence number. |
870 MockRead CreateMockRead(const spdy::SpdyFrame& resp, int seq, bool async) { | 870 MockRead CreateMockRead(const spdy::SpdyFrame& resp, int seq, bool async) { |
871 return MockRead( | 871 return MockRead( |
872 async, resp.data(), resp.length() + spdy::SpdyFrame::size(), seq); | 872 async, resp.data(), resp.length() + spdy::SpdyFrame::kHeaderSize, seq); |
873 } | 873 } |
874 | 874 |
875 // Combines the given SpdyFrames into the given char array and returns | 875 // Combines the given SpdyFrames into the given char array and returns |
876 // the total length. | 876 // the total length. |
877 int CombineFrames(const spdy::SpdyFrame** frames, int num_frames, | 877 int CombineFrames(const spdy::SpdyFrame** frames, int num_frames, |
878 char* buff, int buff_len) { | 878 char* buff, int buff_len) { |
879 int total_len = 0; | 879 int total_len = 0; |
880 for (int i = 0; i < num_frames; ++i) { | 880 for (int i = 0; i < num_frames; ++i) { |
881 total_len += frames[i]->length() + spdy::SpdyFrame::size(); | 881 total_len += frames[i]->length() + spdy::SpdyFrame::kHeaderSize; |
882 } | 882 } |
883 DCHECK_LE(total_len, buff_len); | 883 DCHECK_LE(total_len, buff_len); |
884 char* ptr = buff; | 884 char* ptr = buff; |
885 for (int i = 0; i < num_frames; ++i) { | 885 for (int i = 0; i < num_frames; ++i) { |
886 int len = frames[i]->length() + spdy::SpdyFrame::size(); | 886 int len = frames[i]->length() + spdy::SpdyFrame::kHeaderSize; |
887 memcpy(ptr, frames[i]->data(), len); | 887 memcpy(ptr, frames[i]->data(), len); |
888 ptr += len; | 888 ptr += len; |
889 } | 889 } |
890 return total_len; | 890 return total_len; |
891 } | 891 } |
892 | 892 |
893 SpdySessionDependencies::SpdySessionDependencies() | 893 SpdySessionDependencies::SpdySessionDependencies() |
894 : host_resolver(new MockCachingHostResolver), | 894 : host_resolver(new MockCachingHostResolver), |
895 cert_verifier(new CertVerifier), | 895 cert_verifier(new CertVerifier), |
896 proxy_service(ProxyService::CreateDirect()), | 896 proxy_service(ProxyService::CreateDirect()), |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
988 spdy::CONTROL_FLAG_FIN, // Control Flags | 988 spdy::CONTROL_FLAG_FIN, // Control Flags |
989 false, // Compressed | 989 false, // Compressed |
990 spdy::INVALID, // Status | 990 spdy::INVALID, // Status |
991 NULL, // Data | 991 NULL, // Data |
992 0, // Length | 992 0, // Length |
993 spdy::DATA_FLAG_NONE // Data Flags | 993 spdy::DATA_FLAG_NONE // Data Flags |
994 }; | 994 }; |
995 return kHeader; | 995 return kHeader; |
996 } | 996 } |
997 } // namespace net | 997 } // namespace net |
OLD | NEW |