| Index: net/quic/chromium/quic_http_stream_test.cc
|
| diff --git a/net/quic/chromium/quic_http_stream_test.cc b/net/quic/chromium/quic_http_stream_test.cc
|
| index 739e004e832795a099f156c9d05801e696ea29e8..aa9739d594b74cfab84555672d73f6c8029cae77 100644
|
| --- a/net/quic/chromium/quic_http_stream_test.cc
|
| +++ b/net/quic/chromium/quic_http_stream_test.cc
|
| @@ -13,8 +13,11 @@
|
| #include "base/run_loop.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| +#include "base/time/time.h"
|
| #include "net/base/chunked_upload_data_stream.h"
|
| #include "net/base/elements_upload_data_stream.h"
|
| +#include "net/base/load_timing_info.h"
|
| +#include "net/base/load_timing_info_test_util.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/base/test_completion_callback.h"
|
| #include "net/base/upload_bytes_element_reader.h"
|
| @@ -308,6 +311,8 @@ class QuicHttpStreamTest : public ::testing::TestWithParam<QuicVersion> {
|
| verify_details_.cert_verify_result.is_issued_by_known_root = true;
|
| crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_);
|
|
|
| + base::TimeTicks dns_end = base::TimeTicks::Now();
|
| + base::TimeTicks dns_start = dns_end - base::TimeDelta::FromMilliseconds(1);
|
| session_.reset(new QuicChromiumClientSession(
|
| connection_, std::move(socket),
|
| /*stream_factory=*/nullptr, &crypto_client_stream_factory_, &clock_,
|
| @@ -318,8 +323,8 @@ class QuicHttpStreamTest : public ::testing::TestWithParam<QuicVersion> {
|
| kQuicYieldAfterPacketsRead,
|
| QuicTime::Delta::FromMilliseconds(kQuicYieldAfterDurationMilliseconds),
|
| /*cert_verify_flags=*/0, DefaultQuicConfig(), &crypto_config_,
|
| - "CONNECTION_UNKNOWN", base::TimeTicks::Now(), base::TimeTicks::Now(),
|
| - &push_promise_index_, base::ThreadTaskRunnerHandle::Get().get(),
|
| + "CONNECTION_UNKNOWN", dns_start, dns_end, &push_promise_index_,
|
| + base::ThreadTaskRunnerHandle::Get().get(),
|
| /*socket_performance_watcher=*/nullptr, net_log_.bound().net_log()));
|
| session_->Initialize();
|
| TestCompletionCallback callback;
|
| @@ -529,29 +534,17 @@ class QuicHttpStreamTest : public ::testing::TestWithParam<QuicVersion> {
|
| stream->OnPromiseHeadersComplete(id, serialized_push_promise_.size());
|
| }
|
|
|
| - void assertLoadTimingValid(const LoadTimingInfo& load_timing_info,
|
| + void ExpectLoadTimingValid(const LoadTimingInfo& load_timing_info,
|
| bool session_reused) {
|
| EXPECT_EQ(session_reused, load_timing_info.socket_reused);
|
| -
|
| - // If |session_reused| is true, these fields should all be null, non-null
|
| - // otherwise.
|
| - EXPECT_EQ(session_reused,
|
| - load_timing_info.connect_timing.connect_start.is_null());
|
| - EXPECT_EQ(session_reused,
|
| - load_timing_info.connect_timing.connect_end.is_null());
|
| - EXPECT_EQ(session_reused,
|
| - load_timing_info.connect_timing.ssl_start.is_null());
|
| - EXPECT_EQ(session_reused,
|
| - load_timing_info.connect_timing.ssl_end.is_null());
|
| - EXPECT_EQ(load_timing_info.connect_timing.connect_start,
|
| - load_timing_info.connect_timing.ssl_start);
|
| - EXPECT_EQ(load_timing_info.connect_timing.connect_end,
|
| - load_timing_info.connect_timing.ssl_end);
|
| -
|
| - EXPECT_EQ(session_reused,
|
| - load_timing_info.connect_timing.dns_start.is_null());
|
| - EXPECT_EQ(session_reused,
|
| - load_timing_info.connect_timing.dns_end.is_null());
|
| + if (session_reused) {
|
| + ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing);
|
| + } else {
|
| + ExpectConnectTimingHasTimes(
|
| + load_timing_info.connect_timing,
|
| + CONNECT_TIMING_HAS_SSL_TIMES | CONNECT_TIMING_HAS_DNS_TIMES);
|
| + }
|
| + ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info);
|
| }
|
|
|
| BoundTestNetLog net_log_;
|
| @@ -673,7 +666,7 @@ TEST_P(QuicHttpStreamTest, GetRequest) {
|
| EXPECT_TRUE(AtEof());
|
|
|
| EXPECT_TRUE(stream_->GetLoadTimingInfo(&load_timing_info));
|
| - assertLoadTimingValid(load_timing_info, /*session_reused=*/false);
|
| + ExpectLoadTimingValid(load_timing_info, /*session_reused=*/false);
|
|
|
| // QuicHttpStream::GetTotalSent/ReceivedBytes currently only includes the
|
| // headers and payload.
|
| @@ -741,7 +734,7 @@ TEST_P(QuicHttpStreamTest, LoadTimingTwoRequests) {
|
|
|
| LoadTimingInfo load_timing_info;
|
| EXPECT_TRUE(stream_->GetLoadTimingInfo(&load_timing_info));
|
| - assertLoadTimingValid(load_timing_info, /*session_reused=*/false);
|
| + ExpectLoadTimingValid(load_timing_info, /*session_reused=*/false);
|
|
|
| // SetResponse() again for second request as |response_headers_| was moved.
|
| SetResponse("200 OK", string());
|
| @@ -761,7 +754,7 @@ TEST_P(QuicHttpStreamTest, LoadTimingTwoRequests) {
|
|
|
| LoadTimingInfo load_timing_info2;
|
| EXPECT_TRUE(stream2.GetLoadTimingInfo(&load_timing_info2));
|
| - assertLoadTimingValid(load_timing_info2, /*session_reused=*/true);
|
| + ExpectLoadTimingValid(load_timing_info2, /*session_reused=*/true);
|
| }
|
|
|
| // QuicHttpStream does not currently support trailers. It should ignore
|
|
|