| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/spdy/spdy_stream_test_util.h" |
| |
| #include "net/base/completion_callback.h" |
| #include "net/spdy/spdy_stream.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace net { |
| |
| namespace test { |
| |
| TestSpdyStreamDelegate::TestSpdyStreamDelegate( |
| SpdyStream* stream, |
| SpdyHeaderBlock* headers, |
| IOBufferWithSize* buf, |
| const CompletionCallback& callback) |
| : stream_(stream), |
| headers_(headers), |
| buf_(buf), |
| callback_(callback), |
| send_headers_completed_(false), |
| response_(new SpdyHeaderBlock), |
| headers_sent_(0), |
| data_sent_(0), |
| closed_(false) { |
| } |
| |
| TestSpdyStreamDelegate::~TestSpdyStreamDelegate() { |
| } |
| |
| bool TestSpdyStreamDelegate::OnSendHeadersComplete(int status) { |
| send_headers_completed_ = true; |
| return true; |
| } |
| |
| int TestSpdyStreamDelegate::OnSendBody() { |
| ADD_FAILURE() << "OnSendBody should not be called"; |
| return ERR_UNEXPECTED; |
| } |
| int TestSpdyStreamDelegate::OnSendBodyComplete(int /*status*/, bool* /*eof*/) { |
| ADD_FAILURE() << "OnSendBodyComplete should not be called"; |
| return ERR_UNEXPECTED; |
| } |
| |
| int TestSpdyStreamDelegate::OnResponseReceived(const SpdyHeaderBlock& response, |
| base::Time response_time, |
| int status) { |
| EXPECT_TRUE(send_headers_completed_); |
| *response_ = response; |
| if (headers_.get()) { |
| EXPECT_EQ(ERR_IO_PENDING, |
| stream_->WriteHeaders(headers_.release())); |
| } |
| if (buf_) { |
| EXPECT_EQ(ERR_IO_PENDING, |
| stream_->WriteStreamData(buf_.get(), buf_->size(), |
| DATA_FLAG_NONE)); |
| } |
| return status; |
| } |
| |
| void TestSpdyStreamDelegate::OnHeadersSent() { |
| headers_sent_++; |
| } |
| |
| int TestSpdyStreamDelegate::OnDataReceived(const char* buffer, int bytes) { |
| received_data_ += std::string(buffer, bytes); |
| return OK; |
| } |
| |
| void TestSpdyStreamDelegate::OnDataSent(int length) { |
| data_sent_ += length; |
| } |
| |
| void TestSpdyStreamDelegate::OnClose(int status) { |
| closed_ = true; |
| CompletionCallback callback = callback_; |
| callback_.Reset(); |
| callback.Run(OK); |
| } |
| |
| } // namespace test |
| |
| } // namespace net |