| 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/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 Loading... |
| 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 |
| OLD | NEW |