Index: net/quic/test_tools/quic_test_utils.h |
diff --git a/net/quic/test_tools/quic_test_utils.h b/net/quic/test_tools/quic_test_utils.h |
index 25e09731d263349773cc0b6da3041d7e0ae95ccd..dd0d83d2b21ac26e759de3575ad3cb295ec6d314 100644 |
--- a/net/quic/test_tools/quic_test_utils.h |
+++ b/net/quic/test_tools/quic_test_utils.h |
@@ -13,6 +13,7 @@ |
#include <cstdint> |
#include <memory> |
#include <string> |
+#include <utility> |
#include <vector> |
#include "base/macros.h" |
@@ -557,6 +558,7 @@ class MockQuicSpdySession : public QuicSpdySession { |
~MockQuicSpdySession() override; |
QuicCryptoStream* GetCryptoStream() override { return crypto_stream_.get(); } |
+ const SpdyHeaderBlock& GetWriteHeaders() { return write_headers_; } |
// From QuicSession. |
MOCK_METHOD3(OnConnectionClosed, |
@@ -604,9 +606,21 @@ class MockQuicSpdySession : public QuicSpdySession { |
QuicStreamId promised_stream_id, |
size_t frame_len, |
const QuicHeaderList& header_list)); |
- MOCK_METHOD5(WriteHeaders, |
+ // Methods taking non-copyable types like SpdyHeaderBlock by value cannot be |
+ // mocked directly. |
+ size_t WriteHeaders( |
+ QuicStreamId id, |
+ SpdyHeaderBlock headers, |
+ bool fin, |
+ SpdyPriority priority, |
+ QuicAckListenerInterface* ack_notifier_delegate) override { |
+ write_headers_ = std::move(headers); |
+ return WriteHeadersMock(id, write_headers_, fin, priority, |
+ ack_notifier_delegate); |
+ } |
+ MOCK_METHOD5(WriteHeadersMock, |
size_t(QuicStreamId id, |
- SpdyHeaderBlock headers, |
+ const SpdyHeaderBlock& headers, |
bool fin, |
SpdyPriority priority, |
QuicAckListenerInterface* ack_notifier_delegate)); |
@@ -616,6 +630,7 @@ class MockQuicSpdySession : public QuicSpdySession { |
private: |
std::unique_ptr<QuicCryptoStream> crypto_stream_; |
+ SpdyHeaderBlock write_headers_; |
DISALLOW_COPY_AND_ASSIGN(MockQuicSpdySession); |
}; |