| Index: net/nqe/network_quality_estimator_unittest.cc
|
| diff --git a/net/nqe/network_quality_estimator_unittest.cc b/net/nqe/network_quality_estimator_unittest.cc
|
| index 855fbb3327bacdf5e3c9b7ba2f6a147a616bc81c..f8e44abcd9734e27cc9db1c1d5407f845958c308 100644
|
| --- a/net/nqe/network_quality_estimator_unittest.cc
|
| +++ b/net/nqe/network_quality_estimator_unittest.cc
|
| @@ -451,7 +451,83 @@ TEST(NetworkQualityEstimatorTest, ComputedPercentiles) {
|
| }
|
| }
|
|
|
| -TEST(NetworkQualityEstimatorTest, ObtainOperatingParams) {
|
| +// Verifies that the observers receive the notifications when default estimates
|
| +// are added to the observations.
|
| +TEST(NetworkQualityEstimatorTest, DefaultObservations) {
|
| + TestEffectiveConnectionTypeObserver effective_connection_type_observer;
|
| + TestRTTAndThroughputEstimatesObserver rtt_throughput_estimates_observer;
|
| + TestRTTObserver rtt_observer;
|
| + TestThroughputObserver throughput_observer;
|
| + std::map<std::string, std::string> variation_params;
|
| + TestNetworkQualityEstimator estimator(
|
| + nullptr, variation_params, false, false,
|
| + true /* add_default_platform_observations */);
|
| + base::TimeDelta rtt;
|
| + int32_t kbps;
|
| +
|
| + // Default estimates should be available.
|
| + EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(115), rtt);
|
| + EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(55), rtt);
|
| + EXPECT_TRUE(
|
| + estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
|
| + EXPECT_EQ(1961, kbps);
|
| +
|
| + estimator.AddEffectiveConnectionTypeObserver(
|
| + &effective_connection_type_observer);
|
| + estimator.AddRTTAndThroughputEstimatesObserver(
|
| + &rtt_throughput_estimates_observer);
|
| + estimator.AddRTTObserver(&rtt_observer);
|
| + estimator.AddThroughputObserver(&throughput_observer);
|
| +
|
| + // Simulate network change to 3G. Default estimates should be available.
|
| + estimator.SimulateNetworkChange(
|
| + NetworkChangeNotifier::ConnectionType::CONNECTION_3G, "test-3");
|
| + EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| + // Taken from network_quality_estimator_params.cc.
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(272), rtt);
|
| + EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt);
|
| + EXPECT_TRUE(
|
| + estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
|
| + EXPECT_EQ(749, kbps);
|
| +
|
| + EXPECT_NE(EFFECTIVE_CONNECTION_TYPE_UNKNOWN,
|
| + estimator.GetEffectiveConnectionType());
|
| + EXPECT_EQ(
|
| + 1U,
|
| + effective_connection_type_observer.effective_connection_types().size());
|
| + EXPECT_NE(
|
| + EFFECTIVE_CONNECTION_TYPE_UNKNOWN,
|
| + effective_connection_type_observer.effective_connection_types().front());
|
| +
|
| + EXPECT_EQ(3, rtt_throughput_estimates_observer.notifications_received());
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(272),
|
| + rtt_throughput_estimates_observer.http_rtt());
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(209),
|
| + rtt_throughput_estimates_observer.transport_rtt());
|
| + EXPECT_EQ(749,
|
| + rtt_throughput_estimates_observer.downstream_throughput_kbps());
|
| +
|
| + EXPECT_EQ(2U, rtt_observer.observations().size());
|
| + EXPECT_EQ(272, rtt_observer.observations().at(0).rtt_ms);
|
| + EXPECT_EQ(NETWORK_QUALITY_OBSERVATION_SOURCE_DEFAULT_HTTP_FROM_PLATFORM,
|
| + rtt_observer.observations().at(0).source);
|
| + EXPECT_EQ(209, rtt_observer.observations().at(1).rtt_ms);
|
| + EXPECT_EQ(NETWORK_QUALITY_OBSERVATION_SOURCE_DEFAULT_TRANSPORT_FROM_PLATFORM,
|
| + rtt_observer.observations().at(1).source);
|
| +
|
| + EXPECT_EQ(1U, throughput_observer.observations().size());
|
| + EXPECT_EQ(749, throughput_observer.observations().at(0).throughput_kbps);
|
| + EXPECT_EQ(NETWORK_QUALITY_OBSERVATION_SOURCE_DEFAULT_HTTP_FROM_PLATFORM,
|
| + throughput_observer.observations().at(0).source);
|
| +}
|
| +
|
| +// Verifies that the default observations are added to the set of observations.
|
| +// If default observations are overridden using field trial parameters, verify
|
| +// that the overriding values are used.
|
| +TEST(NetworkQualityEstimatorTest, DefaultObservationsOverridden) {
|
| std::map<std::string, std::string> variation_params;
|
| variation_params["Unknown.DefaultMedianKbps"] = "100";
|
| variation_params["WiFi.DefaultMedianKbps"] = "200";
|
| @@ -462,29 +538,36 @@ TEST(NetworkQualityEstimatorTest, ObtainOperatingParams) {
|
| // Negative variation value should not be used.
|
| variation_params["2G.DefaultMedianRTTMsec"] = "-5";
|
|
|
| - TestNetworkQualityEstimator estimator(variation_params);
|
| + variation_params["Unknown.DefaultMedianTransportRTTMsec"] = "500";
|
| + variation_params["WiFi.DefaultMedianTransportRTTMsec"] = "1000";
|
| + // Negative variation value should not be used.
|
| + variation_params["2G.DefaultMedianTransportRTTMsec"] = "-5";
|
| +
|
| + TestNetworkQualityEstimator estimator(
|
| + nullptr, variation_params, false, false,
|
| + true /* add_default_platform_observations */);
|
|
|
| base::TimeDelta rtt;
|
| - EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| int32_t kbps;
|
| +
|
| + EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt);
|
| + EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(500), rtt);
|
| EXPECT_TRUE(
|
| estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
|
| -
|
| EXPECT_EQ(100, kbps);
|
| - EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt);
|
| -
|
| - EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
|
|
| // Simulate network change to Wi-Fi.
|
| estimator.SimulateNetworkChange(
|
| NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
|
| -
|
| EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000), rtt);
|
| + EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt);
|
| EXPECT_TRUE(
|
| estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
|
| EXPECT_EQ(200, kbps);
|
| - EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000), rtt);
|
| - EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
|
|
| // Peak network quality should not be affected by the network quality
|
| // estimator field trial.
|
| @@ -497,19 +580,25 @@ TEST(NetworkQualityEstimatorTest, ObtainOperatingParams) {
|
| // available.
|
| estimator.SimulateNetworkChange(
|
| NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test-2");
|
| -
|
| - EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| + // Taken from network_quality_estimator_params.cc.
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(1726), rtt);
|
| + EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(1531), rtt);
|
| EXPECT_TRUE(
|
| estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
|
| EXPECT_EQ(300, kbps);
|
|
|
| - // Simulate network change to 3G. Default estimates should be unavailable.
|
| + // Simulate network change to 3G. Default estimates should be available.
|
| estimator.SimulateNetworkChange(
|
| NetworkChangeNotifier::ConnectionType::CONNECTION_3G, "test-3");
|
| -
|
| - EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| - EXPECT_FALSE(
|
| + EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(272), rtt);
|
| + EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt);
|
| + EXPECT_TRUE(
|
| estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
|
| + EXPECT_EQ(749, kbps);
|
| }
|
|
|
| TEST(NetworkQualityEstimatorTest, ObtainAlgorithmToUseFromParams) {
|
| @@ -1339,7 +1428,7 @@ TEST(NetworkQualityEstimatorTest, TestThroughputNoRequestOverlap) {
|
| TestNetworkQualityEstimator estimator(
|
| std::unique_ptr<net::ExternalEstimateProvider>(), variation_params,
|
| test.allow_small_localhost_requests,
|
| - test.allow_small_localhost_requests);
|
| + test.allow_small_localhost_requests, false);
|
|
|
| base::TimeDelta rtt;
|
| EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
|
|
|