Index: net/spdy/mock_spdy_framer_visitor.h |
diff --git a/net/spdy/mock_spdy_framer_visitor.h b/net/spdy/mock_spdy_framer_visitor.h |
index ac97a3dbb814183f48bb2ab13eacd75d04fcd720..dcf7356abc0032bb757751eb62bc2c6961129e53 100644 |
--- a/net/spdy/mock_spdy_framer_visitor.h |
+++ b/net/spdy/mock_spdy_framer_visitor.h |
@@ -10,6 +10,7 @@ |
#include "base/strings/string_piece.h" |
#include "net/spdy/spdy_framer.h" |
+#include "net/spdy/spdy_test_utils.h" |
#include "testing/gmock/include/gmock/gmock.h" |
namespace net { |
@@ -75,6 +76,31 @@ class MockSpdyFramerVisitor : public SpdyFramerVisitorInterface { |
uint8_t weight, |
bool exclusive)); |
MOCK_METHOD2(OnUnknownFrame, bool(SpdyStreamId stream_id, int frame_type)); |
+ |
+ void DelegateNewHeaderHandling() { |
+ ON_CALL(*this, OnHeaderFrameStart(testing::_)) |
+ .WillByDefault(testing::Invoke( |
+ this, &MockSpdyFramerVisitor::ReturnTestHeadersHandler)); |
+ ON_CALL(*this, OnHeaderFrameEnd(testing::_, testing::_)) |
+ .WillByDefault(testing::Invoke( |
+ this, &MockSpdyFramerVisitor::ResetTestHeadersHandler)); |
+ } |
+ |
+ SpdyHeadersHandlerInterface* ReturnTestHeadersHandler( |
+ SpdyStreamId /* stream_id */) { |
+ if (headers_handler_ == nullptr) { |
+ headers_handler_.reset(new TestHeadersHandler); |
+ } |
+ return headers_handler_.get(); |
+ } |
+ |
+ void ResetTestHeadersHandler(SpdyStreamId /* stream_id */, bool end) { |
+ if (end) { |
+ headers_handler_.reset(); |
+ } |
+ } |
+ |
+ std::unique_ptr<SpdyHeadersHandlerInterface> headers_handler_; |
}; |
} // namespace test |