| Index: net/tools/quic/quic_simple_server_session_test.cc
|
| diff --git a/net/tools/quic/quic_simple_server_session_test.cc b/net/tools/quic/quic_simple_server_session_test.cc
|
| index 76e21be01ba89f64c3d109d29cd99fb408b31aa6..8e93f9bb37f5ccc8955db940c76349f6961dda96 100644
|
| --- a/net/tools/quic/quic_simple_server_session_test.cc
|
| +++ b/net/tools/quic/quic_simple_server_session_test.cc
|
| @@ -66,17 +66,33 @@ class MockQuicHeadersStream : public QuicHeadersStream {
|
| explicit MockQuicHeadersStream(QuicSpdySession* session)
|
| : QuicHeadersStream(session) {}
|
|
|
| - MOCK_METHOD4(WritePushPromise,
|
| + // Methods taking non-copyable types like SpdyHeaderBlock by value cannot be
|
| + // mocked directly.
|
| + size_t WritePushPromise(QuicStreamId original_stream_id,
|
| + QuicStreamId promised_stream_id,
|
| + SpdyHeaderBlock headers,
|
| + QuicAckListenerInterface* ack_listener) override {
|
| + return WritePushPromiseMock(original_stream_id, promised_stream_id, headers,
|
| + ack_listener);
|
| + }
|
| + MOCK_METHOD4(WritePushPromiseMock,
|
| size_t(QuicStreamId original_stream_id,
|
| QuicStreamId promised_stream_id,
|
| - SpdyHeaderBlock headers,
|
| + const SpdyHeaderBlock& headers,
|
| QuicAckListenerInterface* ack_listener));
|
|
|
| - MOCK_METHOD5(WriteHeaders,
|
| - size_t(QuicStreamId stream_id,
|
| + size_t WriteHeaders(QuicStreamId stream_id,
|
| SpdyHeaderBlock headers,
|
| bool fin,
|
| SpdyPriority priority,
|
| + QuicAckListenerInterface* ack_listener) override {
|
| + return WriteHeadersMock(stream_id, headers, fin, priority, ack_listener);
|
| + }
|
| + MOCK_METHOD5(WriteHeadersMock,
|
| + size_t(QuicStreamId stream_id,
|
| + const SpdyHeaderBlock& headers,
|
| + bool fin,
|
| + SpdyPriority priority,
|
| QuicAckListenerInterface* ack_listener));
|
| };
|
|
|
| @@ -462,18 +478,19 @@ class QuicSimpleServerSessionServerPushTest
|
| GURL resource_url = GURL(url);
|
| string body;
|
| GenerateBody(&body, body_size);
|
| - SpdyHeaderBlock response_headers;
|
| QuicInMemoryCache::GetInstance()->AddSimpleResponse(resource_host, path,
|
| 200, body);
|
| push_resources.push_back(QuicInMemoryCache::ServerPushInfo(
|
| - resource_url, response_headers, kDefaultPriority, body));
|
| + resource_url, SpdyHeaderBlock(), kDefaultPriority, body));
|
| // PUSH_PROMISED are sent for all the resources.
|
| - EXPECT_CALL(*headers_stream_, WritePushPromise(kClientDataStreamId1,
|
| - stream_id, _, nullptr));
|
| + EXPECT_CALL(
|
| + *headers_stream_,
|
| + WritePushPromiseMock(kClientDataStreamId1, stream_id, _, nullptr));
|
| if (i <= kMaxStreamsForTest) {
|
| // |kMaxStreamsForTest| promised responses should be sent.
|
| - EXPECT_CALL(*headers_stream_, WriteHeaders(stream_id, _, false,
|
| - kDefaultPriority, nullptr));
|
| + EXPECT_CALL(
|
| + *headers_stream_,
|
| + WriteHeadersMock(stream_id, _, false, kDefaultPriority, nullptr));
|
| // Since flow control window is smaller than response body, not the
|
| // whole body will be sent.
|
| EXPECT_CALL(*connection_,
|
| @@ -511,8 +528,9 @@ TEST_P(QuicSimpleServerSessionServerPushTest,
|
|
|
| // After an open stream is marked draining, a new stream is expected to be
|
| // created and a response sent on the stream.
|
| - EXPECT_CALL(*headers_stream_, WriteHeaders(next_out_going_stream_id, _, false,
|
| - kDefaultPriority, nullptr));
|
| + EXPECT_CALL(*headers_stream_,
|
| + WriteHeadersMock(next_out_going_stream_id, _, false,
|
| + kDefaultPriority, nullptr));
|
| EXPECT_CALL(*connection_,
|
| SendStreamData(next_out_going_stream_id, _, 0, false, nullptr))
|
| .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
|
| @@ -545,14 +563,14 @@ TEST_P(QuicSimpleServerSessionServerPushTest,
|
| // only one queued resource will be sent out.
|
| QuicStreamId stream_not_reset = (kMaxStreamsForTest + 1) * 2;
|
| InSequence s;
|
| - EXPECT_CALL(*headers_stream_, WriteHeaders(stream_not_reset, _, false,
|
| - kDefaultPriority, nullptr));
|
| + EXPECT_CALL(*headers_stream_, WriteHeadersMock(stream_not_reset, _, false,
|
| + kDefaultPriority, nullptr));
|
| EXPECT_CALL(*connection_,
|
| SendStreamData(stream_not_reset, _, 0, false, nullptr))
|
| .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
|
| EXPECT_CALL(*connection_, SendBlocked(stream_not_reset));
|
| - EXPECT_CALL(*headers_stream_, WriteHeaders(stream_got_reset, _, false,
|
| - kDefaultPriority, nullptr))
|
| + EXPECT_CALL(*headers_stream_, WriteHeadersMock(stream_got_reset, _, false,
|
| + kDefaultPriority, nullptr))
|
| .Times(0);
|
|
|
| session_->StreamDraining(2);
|
| @@ -572,8 +590,8 @@ TEST_P(QuicSimpleServerSessionServerPushTest,
|
| QuicStreamId stream_got_reset = 2;
|
| EXPECT_CALL(*connection_,
|
| SendRstStream(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT, _));
|
| - EXPECT_CALL(*headers_stream_, WriteHeaders(stream_to_open, _, false,
|
| - kDefaultPriority, nullptr));
|
| + EXPECT_CALL(*headers_stream_, WriteHeadersMock(stream_to_open, _, false,
|
| + kDefaultPriority, nullptr));
|
| EXPECT_CALL(*connection_,
|
| SendStreamData(stream_to_open, _, 0, false, nullptr))
|
| .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
|
|
|