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

Side by Side Diff: net/url_request/url_request_unittest.cc

Issue 1162293004: Use request start time for estimating network quality. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More fixes to flaky tests Created 5 years, 6 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
« no previous file with comments | « net/base/network_quality_estimator_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #endif 10 #endif
(...skipping 4059 matching lines...) Expand 10 before | Expand all | Expand 10 after
4070 EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r->status().error()) 4070 EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r->status().error())
4071 << " Parameter = \"" << test_file << "\""; 4071 << " Parameter = \"" << test_file << "\"";
4072 } 4072 }
4073 } 4073 }
4074 } 4074 }
4075 } 4075 }
4076 4076
4077 TEST_F(URLRequestTestHTTP, NetworkQualityEstimator) { 4077 TEST_F(URLRequestTestHTTP, NetworkQualityEstimator) {
4078 ASSERT_TRUE(test_server_.Start()); 4078 ASSERT_TRUE(test_server_.Start());
4079 // Enable requests to local host to be used for network quality estimation. 4079 // Enable requests to local host to be used for network quality estimation.
4080 NetworkQualityEstimator estimator(true); 4080 NetworkQualityEstimator estimator(true, true);
4081 4081
4082 TestDelegate d; 4082 TestDelegate d;
4083 TestNetworkDelegate network_delegate; // Must outlive URLRequest. 4083 TestNetworkDelegate network_delegate; // Must outlive URLRequest.
4084 TestURLRequestContext context(true); 4084 TestURLRequestContext context(true);
4085 context.set_network_quality_estimator(&estimator); 4085 context.set_network_quality_estimator(&estimator);
4086 context.set_network_delegate(&network_delegate); 4086 context.set_network_delegate(&network_delegate);
4087 context.Init(); 4087 context.Init();
4088 4088
4089 uint64_t min_transfer_size_in_bytes = 4089 std::string url = "echo.html";
4090 NetworkQualityEstimator::kMinTransferSizeInBytes;
4091 // Create a long enough URL such that response size exceeds network quality
4092 // estimator's minimum transfer size.
4093 std::string url = "echo.html?";
4094 url.append(min_transfer_size_in_bytes, 'x');
4095 4090
4096 scoped_ptr<URLRequest> r( 4091 scoped_ptr<URLRequest> r(
4097 context.CreateRequest(test_server_.GetURL(url), DEFAULT_PRIORITY, &d)); 4092 context.CreateRequest(test_server_.GetURL(url), DEFAULT_PRIORITY, &d));
4098 int sleep_duration_milliseconds = 1;
4099 base::PlatformThread::Sleep(
4100 base::TimeDelta::FromMilliseconds(sleep_duration_milliseconds));
4101 r->Start(); 4093 r->Start();
4102 4094
4103 base::RunLoop().Run(); 4095 base::RunLoop().Run();
4104 4096
4105 NetworkQuality network_quality = 4097 NetworkQuality network_quality =
4106 context.network_quality_estimator()->GetPeakEstimate(); 4098 context.network_quality_estimator()->GetPeakEstimate();
4107 EXPECT_GE(network_quality.rtt(), 4099 EXPECT_GE(network_quality.rtt(), base::TimeDelta());
4108 base::TimeDelta::FromMilliseconds(sleep_duration_milliseconds)); 4100 EXPECT_LT(network_quality.rtt(), base::TimeDelta::Max());
4109 EXPECT_GT(network_quality.downstream_throughput_kbps(), 0); 4101 EXPECT_GT(network_quality.downstream_throughput_kbps(), 0);
4110 4102
4111 // Verify that histograms are not populated. They should populate only when 4103 // Verify that histograms are not populated. They should populate only when
4112 // there is a change in ConnectionType. 4104 // there is a change in ConnectionType.
4113 base::HistogramTester histogram_tester; 4105 base::HistogramTester histogram_tester;
4114 histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 0); 4106 histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 0);
4115 histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 0); 4107 histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 0);
4116 4108
4117 NetworkChangeNotifier::NotifyObserversOfConnectionTypeChangeForTests( 4109 NetworkChangeNotifier::NotifyObserversOfConnectionTypeChangeForTests(
4118 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI); 4110 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI);
(...skipping 5059 matching lines...) Expand 10 before | Expand all | Expand 10 after
9178 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); 9170 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d));
9179 9171
9180 EXPECT_FALSE(req->response_info().network_accessed); 9172 EXPECT_FALSE(req->response_info().network_accessed);
9181 9173
9182 req->Start(); 9174 req->Start();
9183 base::RunLoop().Run(); 9175 base::RunLoop().Run();
9184 EXPECT_TRUE(req->response_info().network_accessed); 9176 EXPECT_TRUE(req->response_info().network_accessed);
9185 } 9177 }
9186 9178
9187 } // namespace net 9179 } // namespace net
OLDNEW
« no previous file with comments | « net/base/network_quality_estimator_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698