Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Side by Side Diff: net/spdy/spdy_stream_test_util.cc

Issue 2526003002: Disallow multiple HEADERS frames on pushed streams. (Closed)
Patch Set: Rename enum, enum entry, and member. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/spdy/spdy_stream_test_util.h ('k') | net/spdy/spdy_stream_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/spdy/spdy_stream_test_util.h" 5 #include "net/spdy/spdy_stream_test_util.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "net/base/completion_callback.h" 11 #include "net/base/completion_callback.h"
12 #include "net/spdy/spdy_stream.h" 12 #include "net/spdy/spdy_stream.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace net { 15 namespace net {
16 16
17 namespace test { 17 namespace test {
18 18
19 ClosingDelegate::ClosingDelegate( 19 ClosingDelegate::ClosingDelegate(
20 const base::WeakPtr<SpdyStream>& stream) : stream_(stream) { 20 const base::WeakPtr<SpdyStream>& stream) : stream_(stream) {
21 DCHECK(stream_); 21 DCHECK(stream_);
22 } 22 }
23 23
24 ClosingDelegate::~ClosingDelegate() {} 24 ClosingDelegate::~ClosingDelegate() {}
25 25
26 void ClosingDelegate::OnRequestHeadersSent() {} 26 void ClosingDelegate::OnHeadersSent() {}
27 27
28 SpdyResponseHeadersStatus ClosingDelegate::OnResponseHeadersUpdated( 28 void ClosingDelegate::OnHeadersReceived(
29 const SpdyHeaderBlock& response_headers) { 29 const SpdyHeaderBlock& response_headers) {}
30 return RESPONSE_HEADERS_ARE_COMPLETE;
31 }
32 30
33 void ClosingDelegate::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) {} 31 void ClosingDelegate::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) {}
34 32
35 void ClosingDelegate::OnDataSent() {} 33 void ClosingDelegate::OnDataSent() {}
36 34
37 void ClosingDelegate::OnTrailers(const SpdyHeaderBlock& trailers) {} 35 void ClosingDelegate::OnTrailers(const SpdyHeaderBlock& trailers) {}
38 36
39 void ClosingDelegate::OnClose(int status) { 37 void ClosingDelegate::OnClose(int status) {
40 DCHECK(stream_); 38 DCHECK(stream_);
41 stream_->Close(); 39 stream_->Close();
42 // The |stream_| may still be alive (if it is our delegate). 40 // The |stream_| may still be alive (if it is our delegate).
43 } 41 }
44 42
45 StreamDelegateBase::StreamDelegateBase( 43 StreamDelegateBase::StreamDelegateBase(
46 const base::WeakPtr<SpdyStream>& stream) 44 const base::WeakPtr<SpdyStream>& stream)
47 : stream_(stream), 45 : stream_(stream),
48 stream_id_(0), 46 stream_id_(0),
49 send_headers_completed_(false) { 47 send_headers_completed_(false) {
50 } 48 }
51 49
52 StreamDelegateBase::~StreamDelegateBase() { 50 StreamDelegateBase::~StreamDelegateBase() {
53 } 51 }
54 52
55 void StreamDelegateBase::OnRequestHeadersSent() { 53 void StreamDelegateBase::OnHeadersSent() {
56 stream_id_ = stream_->stream_id(); 54 stream_id_ = stream_->stream_id();
57 EXPECT_NE(stream_id_, 0u); 55 EXPECT_NE(stream_id_, 0u);
58 send_headers_completed_ = true; 56 send_headers_completed_ = true;
59 } 57 }
60 58
61 SpdyResponseHeadersStatus StreamDelegateBase::OnResponseHeadersUpdated( 59 void StreamDelegateBase::OnHeadersReceived(
62 const SpdyHeaderBlock& response_headers) { 60 const SpdyHeaderBlock& response_headers) {
63 EXPECT_EQ(stream_->type() != SPDY_PUSH_STREAM, send_headers_completed_); 61 EXPECT_EQ(stream_->type() != SPDY_PUSH_STREAM, send_headers_completed_);
64 response_headers_ = response_headers.Clone(); 62 response_headers_ = response_headers.Clone();
65 return RESPONSE_HEADERS_ARE_COMPLETE;
66 } 63 }
67 64
68 void StreamDelegateBase::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) { 65 void StreamDelegateBase::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) {
69 if (buffer) 66 if (buffer)
70 received_data_queue_.Enqueue(std::move(buffer)); 67 received_data_queue_.Enqueue(std::move(buffer));
71 } 68 }
72 69
73 void StreamDelegateBase::OnDataSent() {} 70 void StreamDelegateBase::OnDataSent() {}
74 71
75 void StreamDelegateBase::OnTrailers(const SpdyHeaderBlock& trailers) {} 72 void StreamDelegateBase::OnTrailers(const SpdyHeaderBlock& trailers) {}
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 111
115 StreamDelegateSendImmediate::StreamDelegateSendImmediate( 112 StreamDelegateSendImmediate::StreamDelegateSendImmediate(
116 const base::WeakPtr<SpdyStream>& stream, 113 const base::WeakPtr<SpdyStream>& stream,
117 base::StringPiece data) 114 base::StringPiece data)
118 : StreamDelegateBase(stream), 115 : StreamDelegateBase(stream),
119 data_(data) {} 116 data_(data) {}
120 117
121 StreamDelegateSendImmediate::~StreamDelegateSendImmediate() { 118 StreamDelegateSendImmediate::~StreamDelegateSendImmediate() {
122 } 119 }
123 120
124 SpdyResponseHeadersStatus StreamDelegateSendImmediate::OnResponseHeadersUpdated( 121 void StreamDelegateSendImmediate::OnHeadersReceived(
125 const SpdyHeaderBlock& response_headers) { 122 const SpdyHeaderBlock& response_headers) {
126 SpdyResponseHeadersStatus status = 123 StreamDelegateBase::OnHeadersReceived(response_headers);
127 StreamDelegateBase::OnResponseHeadersUpdated(response_headers);
128 if (data_.data()) { 124 if (data_.data()) {
129 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(data_.as_string())); 125 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(data_.as_string()));
130 stream()->SendData(buf.get(), buf->size(), MORE_DATA_TO_SEND); 126 stream()->SendData(buf.get(), buf->size(), MORE_DATA_TO_SEND);
131 } 127 }
132 return status;
133 } 128 }
134 129
135 StreamDelegateWithBody::StreamDelegateWithBody( 130 StreamDelegateWithBody::StreamDelegateWithBody(
136 const base::WeakPtr<SpdyStream>& stream, 131 const base::WeakPtr<SpdyStream>& stream,
137 base::StringPiece data) 132 base::StringPiece data)
138 : StreamDelegateBase(stream), 133 : StreamDelegateBase(stream),
139 buf_(new StringIOBuffer(data.as_string())) {} 134 buf_(new StringIOBuffer(data.as_string())) {}
140 135
141 StreamDelegateWithBody::~StreamDelegateWithBody() { 136 StreamDelegateWithBody::~StreamDelegateWithBody() {
142 } 137 }
143 138
144 void StreamDelegateWithBody::OnRequestHeadersSent() { 139 void StreamDelegateWithBody::OnHeadersSent() {
145 StreamDelegateBase::OnRequestHeadersSent(); 140 StreamDelegateBase::OnHeadersSent();
146 stream()->SendData(buf_.get(), buf_->size(), NO_MORE_DATA_TO_SEND); 141 stream()->SendData(buf_.get(), buf_->size(), NO_MORE_DATA_TO_SEND);
147 } 142 }
148 143
149 StreamDelegateCloseOnHeaders::StreamDelegateCloseOnHeaders( 144 StreamDelegateCloseOnHeaders::StreamDelegateCloseOnHeaders(
150 const base::WeakPtr<SpdyStream>& stream) 145 const base::WeakPtr<SpdyStream>& stream)
151 : StreamDelegateBase(stream) { 146 : StreamDelegateBase(stream) {
152 } 147 }
153 148
154 StreamDelegateCloseOnHeaders::~StreamDelegateCloseOnHeaders() { 149 StreamDelegateCloseOnHeaders::~StreamDelegateCloseOnHeaders() {
155 } 150 }
156 151
157 SpdyResponseHeadersStatus 152 void StreamDelegateCloseOnHeaders::OnHeadersReceived(
158 StreamDelegateCloseOnHeaders::OnResponseHeadersUpdated(
159 const SpdyHeaderBlock& response_headers) { 153 const SpdyHeaderBlock& response_headers) {
160 stream()->Cancel(); 154 stream()->Cancel();
161 return RESPONSE_HEADERS_ARE_COMPLETE;
162 } 155 }
163 156
164 } // namespace test 157 } // namespace test
165 158
166 } // namespace net 159 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_stream_test_util.h ('k') | net/spdy/spdy_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698