Index: net/quic/quic_network_transaction_unittest.cc |
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc |
index c6b4527922c48554e773fbde942353b12ace78c2..d00fd4baec8e7c7b2e242890e84ca242fdcf280e 100644 |
--- a/net/quic/quic_network_transaction_unittest.cc |
+++ b/net/quic/quic_network_transaction_unittest.cc |
@@ -2,6 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include <stdint.h> |
+ |
#include <vector> |
#include "base/compiler_specific.h" |
@@ -182,6 +184,30 @@ class TestRTTObserver : public NetworkQualityEstimator::RTTObserver { |
bool rtt_notification_received_; |
}; |
+class TestPacketLossObserver |
+ : public NetworkQualityEstimator::PacketLossObserver { |
+ public: |
+ TestPacketLossObserver() : notification_received_(false) {} |
+ |
+ bool notification_received() const { return notification_received_; } |
+ |
+ // NetworkQualityEstimator::PacketLossObserver implementation: |
+ void OnPacketLossObservation( |
+ uint64_t num_packets_lost, |
+ uint64_t num_packets_received_in_order, |
+ uint64_t num_packets_received_not_in_order, |
+ const base::TimeTicks& timestamp, |
bengr
2016/02/19 00:45:09
Declare.
tbansal1
2016/02/26 01:15:00
Did not notice that file was not included. This cl
|
+ net::NetworkQualityEstimator::ObservationSource source) override { |
+ if (source != NetworkQualityEstimator::QUIC) { |
+ NOTIMPLEMENTED(); |
+ } |
+ notification_received_ = true; |
+ } |
+ |
+ private: |
+ bool notification_received_; |
+}; |
+ |
class QuicNetworkTransactionTest |
: public PlatformTest, |
public ::testing::WithParamInterface<QuicVersion> { |
@@ -440,6 +466,8 @@ class QuicNetworkTransactionTest |
} |
test_network_quality_estimator_->AddRTTObserver(&rtt_observer_); |
+ test_network_quality_estimator_->AddPacketLossObserver( |
+ &packet_loss_observer_); |
if (use_next_protos) { |
params_.parse_alternative_services = true; |
@@ -579,6 +607,7 @@ class QuicNetworkTransactionTest |
scoped_ptr<CTVerifier> cert_transparency_verifier_; |
scoped_ptr<TestNetworkQualityEstimator> test_network_quality_estimator_; |
TestRTTObserver rtt_observer_; |
+ TestPacketLossObserver packet_loss_observer_; |
scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_; |
scoped_ptr<ProxyService> proxy_service_; |
scoped_ptr<HttpAuthHandlerFactory> auth_handler_factory_; |
@@ -637,8 +666,10 @@ TEST_P(QuicNetworkTransactionTest, ForceQuic) { |
CreateSession(); |
EXPECT_FALSE(rtt_observer_.rtt_notification_received()); |
+ EXPECT_FALSE(packet_loss_observer_.notification_received()); |
SendRequestAndExpectQuicResponse("hello!"); |
EXPECT_TRUE(rtt_observer_.rtt_notification_received()); |
+ EXPECT_TRUE(packet_loss_observer_.notification_received()); |
// Check that the NetLog was filled reasonably. |
TestNetLogEntry::List entries; |
@@ -699,6 +730,7 @@ TEST_P(QuicNetworkTransactionTest, QuicProxy) { |
mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
EXPECT_FALSE(rtt_observer_.rtt_notification_received()); |
+ EXPECT_FALSE(packet_loss_observer_.notification_received()); |
// There is no need to set up an alternate protocol job, because |
// no attempt will be made to speak to the proxy over TCP. |
@@ -707,6 +739,7 @@ TEST_P(QuicNetworkTransactionTest, QuicProxy) { |
SendRequestAndExpectQuicResponseFromProxyOnPort("hello!", 70); |
EXPECT_TRUE(rtt_observer_.rtt_notification_received()); |
+ EXPECT_TRUE(packet_loss_observer_.notification_received()); |
} |
// Regression test for https://crbug.com/492458. Test that for an HTTP |
@@ -2291,6 +2324,7 @@ TEST_P(QuicNetworkTransactionTest, ConnectionCloseDuringConnect) { |
TEST_P(QuicNetworkTransactionTest, SecureResourceOverSecureQuic) { |
maker_.set_hostname("www.example.org"); |
EXPECT_FALSE(rtt_observer_.rtt_notification_received()); |
+ EXPECT_FALSE(packet_loss_observer_.notification_received()); |
MockQuicData mock_quic_data; |
mock_quic_data.AddWrite( |
ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true, |
@@ -2309,6 +2343,7 @@ TEST_P(QuicNetworkTransactionTest, SecureResourceOverSecureQuic) { |
AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE); |
SendRequestAndExpectQuicResponse("hello!"); |
EXPECT_TRUE(rtt_observer_.rtt_notification_received()); |
+ EXPECT_TRUE(packet_loss_observer_.notification_received()); |
} |
TEST_P(QuicNetworkTransactionTest, QuicUpload) { |