| Index: net/spdy/spdy_stream_unittest.cc
|
| diff --git a/net/spdy/spdy_stream_unittest.cc b/net/spdy/spdy_stream_unittest.cc
|
| index 05c01d5d2c1e8fbcb5129cc8e14b5a6186962a98..6a56ae35bf6a4cd39ae6cc3ea9b9e134da27344f 100644
|
| --- a/net/spdy/spdy_stream_unittest.cc
|
| +++ b/net/spdy/spdy_stream_unittest.cc
|
| @@ -135,6 +135,13 @@ class SpdyStreamTest : public ::testing::Test,
|
| return writes_.size();
|
| }
|
|
|
| + void ActivatePushStream(SpdySession* session, SpdyStream* stream) {
|
| + std::unique_ptr<SpdyStream> activated =
|
| + session->ActivateCreatedStream(stream);
|
| + activated->set_stream_id(2);
|
| + session->InsertActivatedStream(std::move(activated));
|
| + }
|
| +
|
| SpdyTestUtil spdy_util_;
|
| SpdySessionDependencies session_deps_;
|
| std::unique_ptr<HttpNetworkSession> session_;
|
| @@ -305,36 +312,51 @@ TEST_P(SpdyStreamTest, PushedStream) {
|
| base::WeakPtr<SpdySession> spdy_session(CreateDefaultSpdySession());
|
|
|
| // Conjure up a stream.
|
| - SpdyStream stream(SPDY_PUSH_STREAM, spdy_session, GURL(), DEFAULT_PRIORITY,
|
| - SpdySession::GetDefaultInitialWindowSize(kProtoSPDY31),
|
| - SpdySession::GetDefaultInitialWindowSize(kProtoSPDY31),
|
| - BoundNetLog());
|
| - stream.set_stream_id(2);
|
| - EXPECT_FALSE(stream.HasUrlFromHeaders());
|
| + SpdyStreamRequest stream_request;
|
| + int result = stream_request.StartRequest(SPDY_PUSH_STREAM, spdy_session,
|
| + GURL(), DEFAULT_PRIORITY,
|
| + BoundNetLog(), CompletionCallback());
|
| + ASSERT_EQ(OK, result);
|
| + base::WeakPtr<SpdyStream> stream = stream_request.ReleaseStream();
|
| + ActivatePushStream(spdy_session.get(), stream.get());
|
| +
|
| + EXPECT_FALSE(stream->HasUrlFromHeaders());
|
|
|
| // Set required request headers.
|
| SpdyHeaderBlock request_headers;
|
| spdy_util_.AddUrlToHeaderBlock(kStreamUrl, &request_headers);
|
| - stream.OnPushPromiseHeadersReceived(request_headers);
|
| + stream->OnPushPromiseHeadersReceived(request_headers);
|
|
|
| + base::Time response_time = base::Time::Now();
|
| + base::TimeTicks first_byte_time = base::TimeTicks::Now();
|
| // Send some basic response headers.
|
| SpdyHeaderBlock response;
|
| response[spdy_util_.GetStatusKey()] = "200";
|
| response[spdy_util_.GetVersionKey()] = "OK";
|
| - stream.OnInitialResponseHeadersReceived(
|
| - response, base::Time::Now(), base::TimeTicks::Now());
|
| + stream->OnInitialResponseHeadersReceived(response, response_time,
|
| + first_byte_time);
|
|
|
| // And some more headers.
|
| // TODO(baranovich): not valid for HTTP 2.
|
| SpdyHeaderBlock headers;
|
| headers["alpha"] = "beta";
|
| - stream.OnAdditionalResponseHeadersReceived(headers);
|
| + stream->OnAdditionalResponseHeadersReceived(headers);
|
| +
|
| + EXPECT_TRUE(stream->HasUrlFromHeaders());
|
| + EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
|
| +
|
| + StreamDelegateDoNothing delegate(stream->GetWeakPtr());
|
| + stream->SetDelegate(&delegate);
|
|
|
| - EXPECT_TRUE(stream.HasUrlFromHeaders());
|
| - EXPECT_EQ(kStreamUrl, stream.GetUrlFromHeaders().spec());
|
| + LoadTimingInfo load_timing_info;
|
| + EXPECT_TRUE(stream->GetLoadTimingInfo(&load_timing_info));
|
| + EXPECT_EQ(first_byte_time, load_timing_info.push_start);
|
| + EXPECT_TRUE(load_timing_info.push_end.is_null());
|
|
|
| - StreamDelegateDoNothing delegate(stream.GetWeakPtr());
|
| - stream.SetDelegate(&delegate);
|
| + stream->OnDataReceived(nullptr);
|
| + LoadTimingInfo load_timing_info2;
|
| + EXPECT_TRUE(stream->GetLoadTimingInfo(&load_timing_info2));
|
| + EXPECT_FALSE(load_timing_info2.push_end.is_null());
|
|
|
| base::RunLoop().RunUntilIdle();
|
|
|
|
|