Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(265)

Side by Side Diff: net/nqe/network_quality_estimator_unittest.cc

Issue 2010003002: Reduce the number of calls to external estimate provider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/nqe/network_quality_estimator.h" 5 #include "net/nqe/network_quality_estimator.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <limits> 10 #include <limits>
(...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 EXPECT_EQ(test.expected_downstream_throughput, 849 EXPECT_EQ(test.expected_downstream_throughput,
850 downstream_throughput_kbps); 850 downstream_throughput_kbps);
851 } 851 }
852 } 852 }
853 } 853 }
854 854
855 // An external estimate provider that does not have a valid RTT or throughput 855 // An external estimate provider that does not have a valid RTT or throughput
856 // estimate. 856 // estimate.
857 class InvalidExternalEstimateProvider : public ExternalEstimateProvider { 857 class InvalidExternalEstimateProvider : public ExternalEstimateProvider {
858 public: 858 public:
859 InvalidExternalEstimateProvider() 859 InvalidExternalEstimateProvider() : update_count_(0) {}
860 : get_rtt_count_(0), get_downstream_throughput_count_(0) {}
861 ~InvalidExternalEstimateProvider() override {} 860 ~InvalidExternalEstimateProvider() override {}
862 861
863 // ExternalEstimateProvider implementation:
864 bool GetRTT(base::TimeDelta* rtt) const override { 862 bool GetRTT(base::TimeDelta* rtt) const override {
865 DCHECK(rtt); 863 DCHECK(rtt);
866 get_rtt_count_++;
867 return false; 864 return false;
868 } 865 }
869 866
870 // ExternalEstimateProvider implementation:
871 bool GetDownstreamThroughputKbps( 867 bool GetDownstreamThroughputKbps(
872 int32_t* downstream_throughput_kbps) const override { 868 int32_t* downstream_throughput_kbps) const override {
873 DCHECK(downstream_throughput_kbps); 869 DCHECK(downstream_throughput_kbps);
874 get_downstream_throughput_count_++;
875 return false; 870 return false;
876 } 871 }
877 872
878 // ExternalEstimateProvider implementation:
879 bool GetUpstreamThroughputKbps( 873 bool GetUpstreamThroughputKbps(
880 int32_t* upstream_throughput_kbps) const override { 874 int32_t* upstream_throughput_kbps) const override {
881 // NetworkQualityEstimator does not support upstream throughput. 875 // NetworkQualityEstimator does not support upstream throughput.
882 ADD_FAILURE(); 876 ADD_FAILURE();
883 return false; 877 return false;
884 } 878 }
885 879
886 // ExternalEstimateProvider implementation:
887 bool GetTimeSinceLastUpdate( 880 bool GetTimeSinceLastUpdate(
888 base::TimeDelta* time_since_last_update) const override { 881 base::TimeDelta* time_since_last_update) const override {
889 *time_since_last_update = base::TimeDelta::FromMilliseconds(1); 882 NOTREACHED();
890 return true; 883 return false;
891 } 884 }
892 885
893 // ExternalEstimateProvider implementation:
894 void SetUpdatedEstimateDelegate(UpdatedEstimateDelegate* delegate) override {} 886 void SetUpdatedEstimateDelegate(UpdatedEstimateDelegate* delegate) override {}
895 887
896 // ExternalEstimateProvider implementation: 888 void Update() const override { update_count_++; }
897 void Update() const override {}
898 889
899 size_t get_rtt_count() const { return get_rtt_count_; } 890 size_t update_count() const { return update_count_; }
900
901 size_t get_downstream_throughput_count() const {
902 return get_downstream_throughput_count_;
903 }
904 891
905 private: 892 private:
906 // Keeps track of number of times different functions were called. 893 mutable size_t update_count_;
907 mutable size_t get_rtt_count_;
908 mutable size_t get_downstream_throughput_count_;
909 894
910 DISALLOW_COPY_AND_ASSIGN(InvalidExternalEstimateProvider); 895 DISALLOW_COPY_AND_ASSIGN(InvalidExternalEstimateProvider);
911 }; 896 };
912 897
913 // Tests if the RTT value from external estimate provider is discarded if the 898 // Tests if the RTT value from external estimate provider is discarded if the
914 // external estimate provider is invalid. 899 // external estimate provider is invalid.
915 TEST(NetworkQualityEstimatorTest, InvalidExternalEstimateProvider) { 900 TEST(NetworkQualityEstimatorTest, InvalidExternalEstimateProvider) {
916 base::HistogramTester histogram_tester; 901 base::HistogramTester histogram_tester;
917 InvalidExternalEstimateProvider* invalid_external_estimate_provider = 902 InvalidExternalEstimateProvider* invalid_external_estimate_provider =
918 new InvalidExternalEstimateProvider(); 903 new InvalidExternalEstimateProvider();
919 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider( 904 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider(
920 invalid_external_estimate_provider); 905 invalid_external_estimate_provider);
921 906
922 TestNetworkQualityEstimator estimator(std::map<std::string, std::string>(), 907 TestNetworkQualityEstimator estimator(std::map<std::string, std::string>(),
923 std::move(external_estimate_provider)); 908 std::move(external_estimate_provider));
909 estimator.SimulateNetworkChangeTo(net::NetworkChangeNotifier::CONNECTION_WIFI,
910 "test");
924 911
925 base::TimeDelta rtt; 912 base::TimeDelta rtt;
926 int32_t kbps; 913 int32_t kbps;
927 EXPECT_EQ(1U, invalid_external_estimate_provider->get_rtt_count()); 914 EXPECT_EQ(1U, invalid_external_estimate_provider->update_count());
928 EXPECT_EQ(
929 1U,
930 invalid_external_estimate_provider->get_downstream_throughput_count());
931 EXPECT_FALSE(estimator.GetHttpRTTEstimate(&rtt)); 915 EXPECT_FALSE(estimator.GetHttpRTTEstimate(&rtt));
932 EXPECT_FALSE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps)); 916 EXPECT_FALSE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps));
933 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProviderStatus", 3); 917 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProviderStatus", 2);
934 918
935 histogram_tester.ExpectBucketCount( 919 histogram_tester.ExpectBucketCount(
936 "NQE.ExternalEstimateProviderStatus", 920 "NQE.ExternalEstimateProviderStatus",
937 1 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE */, 1); 921 1 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE */, 1);
938 histogram_tester.ExpectBucketCount( 922 histogram_tester.ExpectBucketCount(
939 "NQE.ExternalEstimateProviderStatus", 923 "NQE.ExternalEstimateProviderStatus",
940 2 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERIED */, 1); 924 2 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERIED */, 1);
941 histogram_tester.ExpectBucketCount(
942 "NQE.ExternalEstimateProviderStatus",
943 3 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERY_SUCCESSFUL */, 1);
944 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProvider.RTT", 0); 925 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProvider.RTT", 0);
945 histogram_tester.ExpectTotalCount( 926 histogram_tester.ExpectTotalCount(
946 "NQE.ExternalEstimateProvider.DownlinkBandwidth", 0); 927 "NQE.ExternalEstimateProvider.DownlinkBandwidth", 0);
947 } 928 }
948 929
949 class TestExternalEstimateProvider : public ExternalEstimateProvider { 930 class TestExternalEstimateProvider : public ExternalEstimateProvider {
950 public: 931 public:
951 TestExternalEstimateProvider(base::TimeDelta rtt, 932 TestExternalEstimateProvider(base::TimeDelta rtt,
952 int32_t downstream_throughput_kbps) 933 int32_t downstream_throughput_kbps)
953 : rtt_(rtt), 934 : delegate_(nullptr),
935 should_notify_delegate_(true),
936 rtt_(rtt),
954 downstream_throughput_kbps_(downstream_throughput_kbps), 937 downstream_throughput_kbps_(downstream_throughput_kbps),
955 time_since_last_update_(base::TimeDelta::FromSeconds(1)),
956 get_time_since_last_update_count_(0),
957 get_rtt_count_(0),
958 get_downstream_throughput_kbps_count_(0),
959 update_count_(0) {} 938 update_count_(0) {}
960 ~TestExternalEstimateProvider() override {} 939 ~TestExternalEstimateProvider() override {}
961 940
962 // ExternalEstimateProvider implementation:
963 bool GetRTT(base::TimeDelta* rtt) const override { 941 bool GetRTT(base::TimeDelta* rtt) const override {
964 *rtt = rtt_; 942 NOTREACHED();
965 get_rtt_count_++;
966 return true; 943 return true;
967 } 944 }
968 945
969 // ExternalEstimateProvider implementation:
970 bool GetDownstreamThroughputKbps( 946 bool GetDownstreamThroughputKbps(
971 int32_t* downstream_throughput_kbps) const override { 947 int32_t* downstream_throughput_kbps) const override {
972 *downstream_throughput_kbps = downstream_throughput_kbps_; 948 NOTREACHED();
973 get_downstream_throughput_kbps_count_++;
974 return true; 949 return true;
975 } 950 }
976 951
977 // ExternalEstimateProvider implementation:
978 bool GetUpstreamThroughputKbps( 952 bool GetUpstreamThroughputKbps(
979 int32_t* upstream_throughput_kbps) const override { 953 int32_t* upstream_throughput_kbps) const override {
980 // NetworkQualityEstimator does not support upstream throughput. 954 NOTREACHED();
981 ADD_FAILURE();
982 return false; 955 return false;
983 } 956 }
984 957
985 // ExternalEstimateProvider implementation:
986 bool GetTimeSinceLastUpdate( 958 bool GetTimeSinceLastUpdate(
987 base::TimeDelta* time_since_last_update) const override { 959 base::TimeDelta* time_since_last_update) const override {
988 *time_since_last_update = time_since_last_update_; 960 NOTREACHED();
989 get_time_since_last_update_count_++;
990 return true; 961 return true;
991 } 962 }
992 963
993 // ExternalEstimateProvider implementation: 964 void SetUpdatedEstimateDelegate(UpdatedEstimateDelegate* delegate) override {
994 void SetUpdatedEstimateDelegate(UpdatedEstimateDelegate* delegate) override {} 965 delegate_ = delegate;
995
996 // ExternalEstimateProvider implementation:
997 void Update() const override { update_count_++; }
998
999 void set_time_since_last_update(base::TimeDelta time_since_last_update) {
1000 time_since_last_update_ = time_since_last_update;
1001 } 966 }
1002 967
1003 size_t get_time_since_last_update_count() const { 968 void set_should_notify_delegate(bool should_notify_delegate) {
1004 return get_time_since_last_update_count_; 969 should_notify_delegate_ = should_notify_delegate;
1005 } 970 }
1006 size_t get_rtt_count() const { return get_rtt_count_; } 971
1007 size_t get_downstream_throughput_kbps_count() const { 972 void Update() const override {
1008 return get_downstream_throughput_kbps_count_; 973 update_count_++;
974 if (!should_notify_delegate_)
975 return;
976 delegate_->OnUpdatedEstimateAvailable(rtt_, downstream_throughput_kbps_,
977 -1);
1009 } 978 }
979
1010 size_t update_count() const { return update_count_; } 980 size_t update_count() const { return update_count_; }
1011 981
1012 private: 982 private:
983 UpdatedEstimateDelegate* delegate_;
984
985 bool should_notify_delegate_;
986
1013 // RTT and downstream throughput estimates. 987 // RTT and downstream throughput estimates.
1014 const base::TimeDelta rtt_; 988 const base::TimeDelta rtt_;
1015 const int32_t downstream_throughput_kbps_; 989 const int32_t downstream_throughput_kbps_;
1016 990
1017 base::TimeDelta time_since_last_update_;
1018
1019 // Keeps track of number of times different functions were called.
1020 mutable size_t get_time_since_last_update_count_;
1021 mutable size_t get_rtt_count_;
1022 mutable size_t get_downstream_throughput_kbps_count_;
1023 mutable size_t update_count_; 991 mutable size_t update_count_;
1024 992
1025 DISALLOW_COPY_AND_ASSIGN(TestExternalEstimateProvider); 993 DISALLOW_COPY_AND_ASSIGN(TestExternalEstimateProvider);
1026 }; 994 };
1027 995
1028 // Tests if the external estimate provider is called in the constructor and 996 // Tests if the external estimate provider is called in the constructor and
1029 // on network change notification. 997 // on network change notification.
1030 TEST(NetworkQualityEstimatorTest, TestExternalEstimateProvider) { 998 TEST(NetworkQualityEstimatorTest, TestExternalEstimateProvider) {
1031 base::HistogramTester histogram_tester; 999 base::HistogramTester histogram_tester;
1000 const base::TimeDelta external_estimate_provider_rtt =
1001 base::TimeDelta::FromMilliseconds(1);
1002 const int32_t external_estimate_provider_downstream_throughput = 100;
1003
1032 TestExternalEstimateProvider* test_external_estimate_provider = 1004 TestExternalEstimateProvider* test_external_estimate_provider =
1033 new TestExternalEstimateProvider(base::TimeDelta::FromMilliseconds(1), 1005 new TestExternalEstimateProvider(
1034 100); 1006 external_estimate_provider_rtt,
1007 external_estimate_provider_downstream_throughput);
1035 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider( 1008 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider(
1036 test_external_estimate_provider); 1009 test_external_estimate_provider);
1037 std::map<std::string, std::string> variation_params; 1010 std::map<std::string, std::string> variation_params;
1038 TestNetworkQualityEstimator estimator(variation_params, 1011 TestNetworkQualityEstimator estimator(variation_params,
1039 std::move(external_estimate_provider)); 1012 std::move(external_estimate_provider));
1040 1013 estimator.SimulateNetworkChangeTo(net::NetworkChangeNotifier::CONNECTION_WIFI,
1014 "test");
1041 base::TimeDelta rtt; 1015 base::TimeDelta rtt;
1042 int32_t kbps; 1016 int32_t kbps;
1043 EXPECT_TRUE(estimator.GetHttpRTTEstimate(&rtt)); 1017 EXPECT_TRUE(estimator.GetHttpRTTEstimate(&rtt));
1044 EXPECT_FALSE(estimator.GetTransportRTTEstimate(&rtt)); 1018 EXPECT_FALSE(estimator.GetTransportRTTEstimate(&rtt));
1045 EXPECT_TRUE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps)); 1019 EXPECT_TRUE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps));
1046 1020
1047 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProviderStatus", 5); 1021 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProviderStatus", 5);
1048 1022
1049 histogram_tester.ExpectBucketCount( 1023 histogram_tester.ExpectBucketCount(
1050 "NQE.ExternalEstimateProviderStatus", 1024 "NQE.ExternalEstimateProviderStatus",
1051 1 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE */, 1); 1025 1 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE */, 1);
1052 histogram_tester.ExpectBucketCount( 1026 histogram_tester.ExpectBucketCount(
1053 "NQE.ExternalEstimateProviderStatus", 1027 "NQE.ExternalEstimateProviderStatus",
1054 2 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERIED */, 1); 1028 2 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERIED */, 1);
1055 histogram_tester.ExpectBucketCount( 1029 histogram_tester.ExpectBucketCount(
1056 "NQE.ExternalEstimateProviderStatus", 1030 "NQE.ExternalEstimateProviderStatus",
1057 3 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERY_SUCCESSFUL */, 1); 1031 4 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_CALLBACK */, 1);
1058 histogram_tester.ExpectBucketCount( 1032 histogram_tester.ExpectBucketCount(
1059 "NQE.ExternalEstimateProviderStatus", 1033 "NQE.ExternalEstimateProviderStatus",
1060 5 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_RTT_AVAILABLE */, 1); 1034 5 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_RTT_AVAILABLE */, 1);
1061 histogram_tester.ExpectBucketCount( 1035 histogram_tester.ExpectBucketCount(
1062 "NQE.ExternalEstimateProviderStatus", 1036 "NQE.ExternalEstimateProviderStatus",
1063 6 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_DOWNLINK_BANDWIDTH_AVAILABLE */, 1037 6 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_DOWNLINK_BANDWIDTH_AVAILABLE */,
1064 1); 1038 1);
1065 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProvider.RTT", 1); 1039 histogram_tester.ExpectUniqueSample("NQE.ExternalEstimateProvider.RTT", 1, 1);
1066 histogram_tester.ExpectBucketCount("NQE.ExternalEstimateProvider.RTT", 1, 1); 1040 histogram_tester.ExpectUniqueSample(
1067
1068 histogram_tester.ExpectTotalCount(
1069 "NQE.ExternalEstimateProvider.DownlinkBandwidth", 1);
1070 histogram_tester.ExpectBucketCount(
1071 "NQE.ExternalEstimateProvider.DownlinkBandwidth", 100, 1); 1041 "NQE.ExternalEstimateProvider.DownlinkBandwidth", 100, 1);
1072 1042
1073 EXPECT_EQ( 1043 EXPECT_EQ(1U, test_external_estimate_provider->update_count());
1074 1U, test_external_estimate_provider->get_time_since_last_update_count());
1075 EXPECT_EQ(1U, test_external_estimate_provider->get_rtt_count());
1076 EXPECT_EQ(
1077 1U,
1078 test_external_estimate_provider->get_downstream_throughput_kbps_count());
1079 1044
1080 // Change network type to WiFi. Number of queries to External estimate 1045 // Change network type to WiFi. Number of queries to External estimate
1081 // provider must increment. 1046 // provider must increment.
1082 estimator.SimulateNetworkChangeTo( 1047 estimator.SimulateNetworkChangeTo(
1083 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1"); 1048 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
1084 EXPECT_TRUE(estimator.GetHttpRTTEstimate(&rtt)); 1049 EXPECT_TRUE(estimator.GetHttpRTTEstimate(&rtt));
1085 EXPECT_TRUE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps)); 1050 EXPECT_TRUE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps));
1086 EXPECT_EQ( 1051 EXPECT_EQ(2U, test_external_estimate_provider->update_count());
1087 2U, test_external_estimate_provider->get_time_since_last_update_count());
1088 EXPECT_EQ(2U, test_external_estimate_provider->get_rtt_count());
1089 EXPECT_EQ(
1090 2U,
1091 test_external_estimate_provider->get_downstream_throughput_kbps_count());
1092 1052
1093 // Change network type to 2G. Number of queries to External estimate provider 1053 test_external_estimate_provider->set_should_notify_delegate(false);
1094 // must increment.
1095 estimator.SimulateNetworkChangeTo(
1096 NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test-1");
1097 EXPECT_EQ(
1098 3U, test_external_estimate_provider->get_time_since_last_update_count());
1099 EXPECT_EQ(3U, test_external_estimate_provider->get_rtt_count());
1100 EXPECT_EQ(
1101 3U,
1102 test_external_estimate_provider->get_downstream_throughput_kbps_count());
1103
1104 // Set the external estimate as old. Network Quality estimator should request
1105 // an update on connection type change.
1106 EXPECT_EQ(0U, test_external_estimate_provider->update_count());
1107 test_external_estimate_provider->set_time_since_last_update(
1108 base::TimeDelta::Max());
1109
1110 estimator.SimulateNetworkChangeTo( 1054 estimator.SimulateNetworkChangeTo(
1111 NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test-2"); 1055 NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test-2");
1112 EXPECT_EQ( 1056 EXPECT_EQ(3U, test_external_estimate_provider->update_count());
1113 4U, test_external_estimate_provider->get_time_since_last_update_count());
1114 EXPECT_EQ(3U, test_external_estimate_provider->get_rtt_count());
1115 EXPECT_EQ(
1116 3U,
1117 test_external_estimate_provider->get_downstream_throughput_kbps_count());
1118 EXPECT_EQ(1U, test_external_estimate_provider->update_count());
1119
1120 // Estimates are unavailable because external estimate provider never 1057 // Estimates are unavailable because external estimate provider never
1121 // notifies network quality estimator of the updated estimates. 1058 // notifies network quality estimator of the updated estimates.
1122 EXPECT_FALSE(estimator.GetHttpRTTEstimate(&rtt)); 1059 EXPECT_FALSE(estimator.GetHttpRTTEstimate(&rtt));
1123 EXPECT_FALSE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps)); 1060 EXPECT_FALSE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps));
1124 } 1061 }
1125 1062
1126 // Tests if the estimate from the external estimate provider is merged with the 1063 // Tests if the estimate from the external estimate provider is merged with the
1127 // observations collected from the HTTP requests. 1064 // observations collected from the HTTP requests.
1128 TEST(NetworkQualityEstimatorTest, TestExternalEstimateProviderMergeEstimates) { 1065 TEST(NetworkQualityEstimatorTest, TestExternalEstimateProviderMergeEstimates) {
1129 const base::TimeDelta external_estimate_provider_rtt = 1066 const base::TimeDelta external_estimate_provider_rtt =
1130 base::TimeDelta::FromMilliseconds(10 * 1000); 1067 base::TimeDelta::FromMilliseconds(10 * 1000);
1131 const int32_t external_estimate_provider_downstream_throughput = 100 * 1000; 1068 const int32_t external_estimate_provider_downstream_throughput = 100 * 1000;
1132 TestExternalEstimateProvider* test_external_estimate_provider = 1069 TestExternalEstimateProvider* test_external_estimate_provider =
1133 new TestExternalEstimateProvider( 1070 new TestExternalEstimateProvider(
1134 external_estimate_provider_rtt, 1071 external_estimate_provider_rtt,
1135 external_estimate_provider_downstream_throughput); 1072 external_estimate_provider_downstream_throughput);
1136 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider( 1073 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider(
1137 test_external_estimate_provider); 1074 test_external_estimate_provider);
1138 1075
1139 std::map<std::string, std::string> variation_params; 1076 std::map<std::string, std::string> variation_params;
1140 TestNetworkQualityEstimator estimator(variation_params, 1077 TestNetworkQualityEstimator estimator(variation_params,
1141 std::move(external_estimate_provider)); 1078 std::move(external_estimate_provider));
1079 estimator.SimulateNetworkChangeTo(net::NetworkChangeNotifier::CONNECTION_WIFI,
1080 "test");
1142 1081
1143 base::TimeDelta rtt; 1082 base::TimeDelta rtt;
1144 // Estimate provided by network quality estimator should match the estimate 1083 // Estimate provided by network quality estimator should match the estimate
1145 // provided by external estimate provider. 1084 // provided by external estimate provider.
1146 EXPECT_TRUE(estimator.GetHttpRTTEstimate(&rtt)); 1085 EXPECT_TRUE(estimator.GetHttpRTTEstimate(&rtt));
1147 EXPECT_EQ(external_estimate_provider_rtt, rtt); 1086 EXPECT_EQ(external_estimate_provider_rtt, rtt);
1148 1087
1149 int32_t kbps; 1088 int32_t kbps;
1150 EXPECT_TRUE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps)); 1089 EXPECT_TRUE(estimator.GetDownlinkThroughputKbpsEstimate(&kbps));
1151 EXPECT_EQ(external_estimate_provider_downstream_throughput, kbps); 1090 EXPECT_EQ(external_estimate_provider_downstream_throughput, kbps);
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
1362 histogram_tester.ExpectBucketCount("NQE.TransportRTT.Percentile50.Unknown", 1301 histogram_tester.ExpectBucketCount("NQE.TransportRTT.Percentile50.Unknown",
1363 rtt.InMilliseconds(), 1); 1302 rtt.InMilliseconds(), 1);
1364 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile10.Unknown", 1); 1303 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile10.Unknown", 1);
1365 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile50.Unknown", 1); 1304 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile50.Unknown", 1);
1366 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile90.Unknown", 1); 1305 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile90.Unknown", 1);
1367 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile100.Unknown", 1306 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile100.Unknown",
1368 1); 1307 1);
1369 } 1308 }
1370 1309
1371 } // namespace net 1310 } // namespace net
OLDNEW
« net/nqe/external_estimate_provider.h ('K') | « net/nqe/network_quality_estimator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698