Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/spdy/spdy_stream.h" | 5 #include "net/spdy/spdy_stream.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <cstddef> | 8 #include <cstddef> |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 309 SpdySession::GetDefaultInitialWindowSize(kProtoSPDY31), | 309 SpdySession::GetDefaultInitialWindowSize(kProtoSPDY31), |
| 310 BoundNetLog()); | 310 BoundNetLog()); |
| 311 stream.set_stream_id(2); | 311 stream.set_stream_id(2); |
| 312 EXPECT_FALSE(stream.HasUrlFromHeaders()); | 312 EXPECT_FALSE(stream.HasUrlFromHeaders()); |
| 313 | 313 |
| 314 // Set required request headers. | 314 // Set required request headers. |
| 315 SpdyHeaderBlock request_headers; | 315 SpdyHeaderBlock request_headers; |
| 316 spdy_util_.AddUrlToHeaderBlock(kStreamUrl, &request_headers); | 316 spdy_util_.AddUrlToHeaderBlock(kStreamUrl, &request_headers); |
| 317 stream.OnPushPromiseHeadersReceived(request_headers); | 317 stream.OnPushPromiseHeadersReceived(request_headers); |
| 318 | 318 |
| 319 base::Time response_time = base::Time::Now(); | |
| 320 base::TimeTicks first_byte_time = base::TimeTicks::Now(); | |
| 319 // Send some basic response headers. | 321 // Send some basic response headers. |
| 320 SpdyHeaderBlock response; | 322 SpdyHeaderBlock response; |
| 321 response[spdy_util_.GetStatusKey()] = "200"; | 323 response[spdy_util_.GetStatusKey()] = "200"; |
| 322 response[spdy_util_.GetVersionKey()] = "OK"; | 324 response[spdy_util_.GetVersionKey()] = "OK"; |
| 323 stream.OnInitialResponseHeadersReceived( | 325 stream.OnInitialResponseHeadersReceived(response, response_time, |
| 324 response, base::Time::Now(), base::TimeTicks::Now()); | 326 first_byte_time); |
| 325 | 327 |
| 326 // And some more headers. | 328 // And some more headers. |
| 327 // TODO(baranovich): not valid for HTTP 2. | 329 // TODO(baranovich): not valid for HTTP 2. |
| 328 SpdyHeaderBlock headers; | 330 SpdyHeaderBlock headers; |
| 329 headers["alpha"] = "beta"; | 331 headers["alpha"] = "beta"; |
| 330 stream.OnAdditionalResponseHeadersReceived(headers); | 332 stream.OnAdditionalResponseHeadersReceived(headers); |
| 331 | 333 |
| 332 EXPECT_TRUE(stream.HasUrlFromHeaders()); | 334 EXPECT_TRUE(stream.HasUrlFromHeaders()); |
| 333 EXPECT_EQ(kStreamUrl, stream.GetUrlFromHeaders().spec()); | 335 EXPECT_EQ(kStreamUrl, stream.GetUrlFromHeaders().spec()); |
| 334 | 336 |
| 335 StreamDelegateDoNothing delegate(stream.GetWeakPtr()); | 337 StreamDelegateDoNothing delegate(stream.GetWeakPtr()); |
| 336 stream.SetDelegate(&delegate); | 338 stream.SetDelegate(&delegate); |
| 337 | 339 |
| 340 LoadTimingInfo load_timing_info; | |
| 341 EXPECT_TRUE(stream.GetLoadTimingInfo(&load_timing_info)); | |
| 342 EXPECT_EQ(first_byte_time, load_timing_info.push_start); | |
| 343 EXPECT_TRUE(load_timing_info.push_end.is_null()); | |
|
Bence
2016/03/25 14:42:54
Can you also test for push_end (at least that it's
| |
| 344 | |
| 338 base::RunLoop().RunUntilIdle(); | 345 base::RunLoop().RunUntilIdle(); |
| 339 | 346 |
| 340 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 347 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
| 341 EXPECT_EQ("beta", delegate.GetResponseHeaderValue("alpha")); | 348 EXPECT_EQ("beta", delegate.GetResponseHeaderValue("alpha")); |
| 342 | 349 |
| 343 EXPECT_TRUE(spdy_session == NULL); | 350 EXPECT_TRUE(spdy_session == NULL); |
| 344 } | 351 } |
| 345 | 352 |
| 346 TEST_P(SpdyStreamTest, StreamError) { | 353 TEST_P(SpdyStreamTest, StreamError) { |
| 347 GURL url(kStreamUrl); | 354 GURL url(kStreamUrl); |
| (...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1129 EXPECT_EQ(response_len, stream->raw_received_bytes()); | 1136 EXPECT_EQ(response_len, stream->raw_received_bytes()); |
| 1130 | 1137 |
| 1131 // FIN | 1138 // FIN |
| 1132 data.Resume(); | 1139 data.Resume(); |
| 1133 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 1140 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
| 1134 } | 1141 } |
| 1135 | 1142 |
| 1136 } // namespace test | 1143 } // namespace test |
| 1137 | 1144 |
| 1138 } // namespace net | 1145 } // namespace net |
| OLD | NEW |