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

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

Issue 2833983002: Test network annotation tags added to unittests in net/. (Closed)
Patch Set: One file moved. Created 3 years, 8 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/nqe/network_quality_estimator_test_util.cc ('k') | net/nqe/throughput_analyzer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 22 matching lines...) Expand all
33 #include "net/http/http_status_code.h" 33 #include "net/http/http_status_code.h"
34 #include "net/log/test_net_log.h" 34 #include "net/log/test_net_log.h"
35 #include "net/nqe/effective_connection_type.h" 35 #include "net/nqe/effective_connection_type.h"
36 #include "net/nqe/external_estimate_provider.h" 36 #include "net/nqe/external_estimate_provider.h"
37 #include "net/nqe/network_quality_estimator_test_util.h" 37 #include "net/nqe/network_quality_estimator_test_util.h"
38 #include "net/nqe/network_quality_observation.h" 38 #include "net/nqe/network_quality_observation.h"
39 #include "net/nqe/network_quality_observation_source.h" 39 #include "net/nqe/network_quality_observation_source.h"
40 #include "net/nqe/observation_buffer.h" 40 #include "net/nqe/observation_buffer.h"
41 #include "net/socket/socket_performance_watcher.h" 41 #include "net/socket/socket_performance_watcher.h"
42 #include "net/socket/socket_performance_watcher_factory.h" 42 #include "net/socket/socket_performance_watcher_factory.h"
43 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
43 #include "net/url_request/url_request.h" 44 #include "net/url_request/url_request.h"
44 #include "net/url_request/url_request_test_util.h" 45 #include "net/url_request/url_request_test_util.h"
45 #include "testing/gtest/include/gtest/gtest.h" 46 #include "testing/gtest/include/gtest/gtest.h"
46 #include "url/gurl.h" 47 #include "url/gurl.h"
47 48
48 namespace { 49 namespace {
49 50
50 // Verifies that the number of samples in the bucket with minimum value 51 // Verifies that the number of samples in the bucket with minimum value
51 // |bucket_min| in |histogram| are at least |expected_min_count_samples|. 52 // |bucket_min| in |histogram| are at least |expected_min_count_samples|.
52 void ExpectBucketCountAtLeast(base::HistogramTester* histogram_tester, 53 void ExpectBucketCountAtLeast(base::HistogramTester* histogram_tester,
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 int32_t kbps; 204 int32_t kbps;
204 EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 205 EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
205 EXPECT_FALSE( 206 EXPECT_FALSE(
206 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 207 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
207 208
208 TestDelegate test_delegate; 209 TestDelegate test_delegate;
209 TestURLRequestContext context(true); 210 TestURLRequestContext context(true);
210 context.set_network_quality_estimator(&estimator); 211 context.set_network_quality_estimator(&estimator);
211 context.Init(); 212 context.Init();
212 213
213 std::unique_ptr<URLRequest> request(context.CreateRequest( 214 std::unique_ptr<URLRequest> request(
214 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 215 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
216 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
215 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 217 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
216 request->Start(); 218 request->Start();
217 base::RunLoop().Run(); 219 base::RunLoop().Run();
218 220
219 // Both RTT and downstream throughput should be updated. 221 // Both RTT and downstream throughput should be updated.
220 base::TimeDelta http_rtt; 222 base::TimeDelta http_rtt;
221 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &http_rtt)); 223 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &http_rtt));
222 EXPECT_TRUE( 224 EXPECT_TRUE(
223 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 225 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
224 base::TimeDelta transport_rtt; 226 base::TimeDelta transport_rtt;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 EXPECT_LE(1u, 258 EXPECT_LE(1u,
257 histogram_tester.GetAllSamples("NQE.RTT.OnECTComputation").size()); 259 histogram_tester.GetAllSamples("NQE.RTT.OnECTComputation").size());
258 EXPECT_LE(1u, 260 EXPECT_LE(1u,
259 histogram_tester.GetAllSamples("NQE.Kbps.OnECTComputation").size()); 261 histogram_tester.GetAllSamples("NQE.Kbps.OnECTComputation").size());
260 262
261 histogram_tester.ExpectBucketCount( 263 histogram_tester.ExpectBucketCount(
262 "NQE.RTT.ObservationSource", NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP, 1); 264 "NQE.RTT.ObservationSource", NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP, 1);
263 histogram_tester.ExpectBucketCount( 265 histogram_tester.ExpectBucketCount(
264 "NQE.Kbps.ObservationSource", NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP, 1); 266 "NQE.Kbps.ObservationSource", NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP, 1);
265 267
266 std::unique_ptr<URLRequest> request2(context.CreateRequest( 268 std::unique_ptr<URLRequest> request2(
267 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 269 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
270 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
268 request2->SetLoadFlags(request2->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 271 request2->SetLoadFlags(request2->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
269 request2->Start(); 272 request2->Start();
270 base::RunLoop().Run(); 273 base::RunLoop().Run();
271 histogram_tester.ExpectTotalCount("NQE.MainFrame.EffectiveConnectionType", 2); 274 histogram_tester.ExpectTotalCount("NQE.MainFrame.EffectiveConnectionType", 2);
272 histogram_tester.ExpectTotalCount( 275 histogram_tester.ExpectTotalCount(
273 "NQE.MainFrame.EffectiveConnectionType.Unknown", 2); 276 "NQE.MainFrame.EffectiveConnectionType.Unknown", 2);
274 histogram_tester.ExpectBucketCount("NQE.EstimateAvailable.MainFrame.RTT", 1, 277 histogram_tester.ExpectBucketCount("NQE.EstimateAvailable.MainFrame.RTT", 1,
275 1); 278 1);
276 histogram_tester.ExpectUniqueSample( 279 histogram_tester.ExpectUniqueSample(
277 "NQE.EstimateAvailable.MainFrame.TransportRTT", 0, 2); 280 "NQE.EstimateAvailable.MainFrame.TransportRTT", 0, 2);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, std::string()); 320 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, std::string());
318 histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable", 321 histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
319 false, 2); 322 false, 2);
320 histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 1); 323 histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 1);
321 histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 1); 324 histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 1);
322 325
323 EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 326 EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
324 EXPECT_FALSE( 327 EXPECT_FALSE(
325 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 328 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
326 329
327 std::unique_ptr<URLRequest> request3(context.CreateRequest( 330 std::unique_ptr<URLRequest> request3(
328 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 331 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
332 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
329 request3->SetLoadFlags(request2->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 333 request3->SetLoadFlags(request2->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
330 request3->Start(); 334 request3->Start();
331 base::RunLoop().Run(); 335 base::RunLoop().Run();
332 histogram_tester.ExpectUniqueSample( 336 histogram_tester.ExpectUniqueSample(
333 "NQE.MainFrame.EffectiveConnectionType.WiFi", 337 "NQE.MainFrame.EffectiveConnectionType.WiFi",
334 EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_UNKNOWN, 1); 338 EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_UNKNOWN, 1);
335 histogram_tester.ExpectTotalCount("NQE.MainFrame.EffectiveConnectionType", 3); 339 histogram_tester.ExpectTotalCount("NQE.MainFrame.EffectiveConnectionType", 3);
336 histogram_tester.ExpectBucketCount("NQE.EstimateAvailable.MainFrame.RTT", 0, 340 histogram_tester.ExpectBucketCount("NQE.EstimateAvailable.MainFrame.RTT", 0,
337 2); 341 2);
338 histogram_tester.ExpectBucketCount("NQE.EstimateAvailable.MainFrame.RTT", 1, 342 histogram_tester.ExpectBucketCount("NQE.EstimateAvailable.MainFrame.RTT", 1,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 377
374 TestDelegate test_delegate; 378 TestDelegate test_delegate;
375 TestURLRequestContext context(true); 379 TestURLRequestContext context(true);
376 context.set_network_quality_estimator(&estimator); 380 context.set_network_quality_estimator(&estimator);
377 context.Init(); 381 context.Init();
378 382
379 // Start two requests so that the network quality is added to cache store at 383 // Start two requests so that the network quality is added to cache store at
380 // the beginning of the second request from the network traffic observed from 384 // the beginning of the second request from the network traffic observed from
381 // the first request. 385 // the first request.
382 for (size_t i = 0; i < 2; ++i) { 386 for (size_t i = 0; i < 2; ++i) {
383 std::unique_ptr<URLRequest> request(context.CreateRequest( 387 std::unique_ptr<URLRequest> request(
384 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 388 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
389 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
385 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 390 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
386 request->Start(); 391 request->Start();
387 base::RunLoop().Run(); 392 base::RunLoop().Run();
388 } 393 }
389 394
390 base::RunLoop().RunUntilIdle(); 395 base::RunLoop().RunUntilIdle();
391 396
392 // Both RTT and downstream throughput should be updated. 397 // Both RTT and downstream throughput should be updated.
393 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 398 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
394 EXPECT_TRUE( 399 EXPECT_TRUE(
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 483
479 TestDelegate test_delegate; 484 TestDelegate test_delegate;
480 TestURLRequestContext context(true); 485 TestURLRequestContext context(true);
481 context.set_network_quality_estimator(&estimator); 486 context.set_network_quality_estimator(&estimator);
482 context.Init(); 487 context.Init();
483 488
484 // Start two requests so that the network quality is added to cache store at 489 // Start two requests so that the network quality is added to cache store at
485 // the beginning of the second request from the network traffic observed from 490 // the beginning of the second request from the network traffic observed from
486 // the first request. 491 // the first request.
487 for (size_t i = 0; i < 2; ++i) { 492 for (size_t i = 0; i < 2; ++i) {
488 std::unique_ptr<URLRequest> request(context.CreateRequest( 493 std::unique_ptr<URLRequest> request(
489 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 494 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
495 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
490 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 496 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
491 request->Start(); 497 request->Start();
492 base::RunLoop().Run(); 498 base::RunLoop().Run();
493 } 499 }
494 500
495 base::RunLoop().RunUntilIdle(); 501 base::RunLoop().RunUntilIdle();
496 502
497 // Both RTT and downstream throughput should be updated. 503 // Both RTT and downstream throughput should be updated.
498 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 504 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
499 EXPECT_TRUE( 505 EXPECT_TRUE(
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 EXPECT_FALSE( 553 EXPECT_FALSE(
548 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 554 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
549 555
550 TestDelegate test_delegate; 556 TestDelegate test_delegate;
551 TestURLRequestContext context(true); 557 TestURLRequestContext context(true);
552 context.set_network_quality_estimator(&estimator); 558 context.set_network_quality_estimator(&estimator);
553 context.Init(); 559 context.Init();
554 560
555 const size_t kMaxObservations = 10; 561 const size_t kMaxObservations = 10;
556 for (size_t i = 0; i < kMaxObservations; ++i) { 562 for (size_t i = 0; i < kMaxObservations; ++i) {
557 std::unique_ptr<URLRequest> request(context.CreateRequest( 563 std::unique_ptr<URLRequest> request(
558 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 564 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
565 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
559 request->Start(); 566 request->Start();
560 base::RunLoop().Run(); 567 base::RunLoop().Run();
561 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 568 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
562 EXPECT_TRUE( 569 EXPECT_TRUE(
563 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 570 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
564 } 571 }
565 572
566 // Verify that the stored observations are cleared on network change. 573 // Verify that the stored observations are cleared on network change.
567 estimator.SimulateNetworkChange( 574 estimator.SimulateNetworkChange(
568 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-2"); 575 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-2");
(...skipping 21 matching lines...) Expand all
590 EXPECT_EQ(nqe::internal::kInvalidThroughput, 597 EXPECT_EQ(nqe::internal::kInvalidThroughput,
591 estimator.GetDownlinkThroughputKbpsEstimateInternal( 598 estimator.GetDownlinkThroughputKbpsEstimateInternal(
592 base::TimeTicks(), 100)); 599 base::TimeTicks(), 100));
593 600
594 TestDelegate test_delegate; 601 TestDelegate test_delegate;
595 TestURLRequestContext context(true); 602 TestURLRequestContext context(true);
596 context.set_network_quality_estimator(&estimator); 603 context.set_network_quality_estimator(&estimator);
597 context.Init(); 604 context.Init();
598 605
599 for (size_t i = 0; i < 10U; ++i) { 606 for (size_t i = 0; i < 10U; ++i) {
600 std::unique_ptr<URLRequest> request(context.CreateRequest( 607 std::unique_ptr<URLRequest> request(
601 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 608 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
609 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
602 request->Start(); 610 request->Start();
603 base::RunLoop().Run(); 611 base::RunLoop().Run();
604 } 612 }
605 613
606 // Verify the percentiles through simple tests. 614 // Verify the percentiles through simple tests.
607 for (int i = 0; i <= 100; ++i) { 615 for (int i = 0; i <= 100; ++i) {
608 EXPECT_GT(estimator.GetDownlinkThroughputKbpsEstimateInternal( 616 EXPECT_GT(estimator.GetDownlinkThroughputKbpsEstimateInternal(
609 base::TimeTicks(), i), 617 base::TimeTicks(), i),
610 0); 618 0);
611 EXPECT_LT(estimator.GetRTTEstimateInternal( 619 EXPECT_LT(estimator.GetRTTEstimateInternal(
(...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 1638
1631 TestDelegate test_delegate; 1639 TestDelegate test_delegate;
1632 TestURLRequestContext context(true); 1640 TestURLRequestContext context(true);
1633 context.set_network_quality_estimator(&estimator); 1641 context.set_network_quality_estimator(&estimator);
1634 context.Init(); 1642 context.Init();
1635 1643
1636 for (size_t i = 0; i < 2; ++i) { 1644 for (size_t i = 0; i < 2; ++i) {
1637 // Start 2 requests to ensure that the RTT estimate computed by the network 1645 // Start 2 requests to ensure that the RTT estimate computed by the network
1638 // quality estimator takes into account the RTT observations from the 1646 // quality estimator takes into account the RTT observations from the
1639 // external estimate provider as well as organic observations. 1647 // external estimate provider as well as organic observations.
1640 std::unique_ptr<URLRequest> request(context.CreateRequest( 1648 std::unique_ptr<URLRequest> request(
1641 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 1649 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
1650 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
1642 request->Start(); 1651 request->Start();
1643 base::RunLoop().Run(); 1652 base::RunLoop().Run();
1644 } 1653 }
1645 1654
1646 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 1655 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
1647 EXPECT_NE(external_estimate_provider_rtt, rtt); 1656 EXPECT_NE(external_estimate_provider_rtt, rtt);
1648 1657
1649 EXPECT_TRUE( 1658 EXPECT_TRUE(
1650 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 1659 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
1651 EXPECT_NE(external_estimate_provider_downstream_throughput, kbps); 1660 EXPECT_NE(external_estimate_provider_downstream_throughput, kbps);
(...skipping 27 matching lines...) Expand all
1679 EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 1688 EXPECT_FALSE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
1680 int32_t kbps; 1689 int32_t kbps;
1681 EXPECT_FALSE( 1690 EXPECT_FALSE(
1682 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 1691 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
1683 1692
1684 TestDelegate test_delegate; 1693 TestDelegate test_delegate;
1685 TestURLRequestContext context(true); 1694 TestURLRequestContext context(true);
1686 context.set_network_quality_estimator(&estimator); 1695 context.set_network_quality_estimator(&estimator);
1687 context.Init(); 1696 context.Init();
1688 1697
1689 std::unique_ptr<URLRequest> request(context.CreateRequest( 1698 std::unique_ptr<URLRequest> request(
1690 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 1699 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
1700 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
1691 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 1701 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
1692 request->Start(); 1702 request->Start();
1693 base::RunLoop().Run(); 1703 base::RunLoop().Run();
1694 1704
1695 EXPECT_EQ(test.allow_small_localhost_requests, 1705 EXPECT_EQ(test.allow_small_localhost_requests,
1696 estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 1706 estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
1697 EXPECT_EQ( 1707 EXPECT_EQ(
1698 test.allow_small_localhost_requests, 1708 test.allow_small_localhost_requests,
1699 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 1709 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
1700 } 1710 }
(...skipping 30 matching lines...) Expand all
1731 context.Init(); 1741 context.Init();
1732 1742
1733 EXPECT_EQ(0U, observer.effective_connection_types().size()); 1743 EXPECT_EQ(0U, observer.effective_connection_types().size());
1734 1744
1735 estimator.set_start_time_null_http_rtt( 1745 estimator.set_start_time_null_http_rtt(
1736 base::TimeDelta::FromMilliseconds(1500)); 1746 base::TimeDelta::FromMilliseconds(1500));
1737 estimator.set_start_time_null_downlink_throughput_kbps(100000); 1747 estimator.set_start_time_null_downlink_throughput_kbps(100000);
1738 1748
1739 tick_clock_ptr->Advance(base::TimeDelta::FromMinutes(60)); 1749 tick_clock_ptr->Advance(base::TimeDelta::FromMinutes(60));
1740 1750
1741 std::unique_ptr<URLRequest> request(context.CreateRequest( 1751 std::unique_ptr<URLRequest> request(
1742 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 1752 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
1753 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
1743 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 1754 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
1744 request->Start(); 1755 request->Start();
1745 base::RunLoop().Run(); 1756 base::RunLoop().Run();
1746 EXPECT_EQ(1U, observer.effective_connection_types().size()); 1757 EXPECT_EQ(1U, observer.effective_connection_types().size());
1747 EXPECT_LE( 1758 EXPECT_LE(
1748 1, estimator.GetEntriesCount(NetLogEventType::NETWORK_QUALITY_CHANGED)); 1759 1, estimator.GetEntriesCount(NetLogEventType::NETWORK_QUALITY_CHANGED));
1749 1760
1750 // Verify the contents of the net log. 1761 // Verify the contents of the net log.
1751 EXPECT_EQ(GetNameForEffectiveConnectionType(EFFECTIVE_CONNECTION_TYPE_2G), 1762 EXPECT_EQ(GetNameForEffectiveConnectionType(EFFECTIVE_CONNECTION_TYPE_2G),
1752 estimator.GetNetLogLastStringValue( 1763 estimator.GetNetLogLastStringValue(
1753 NetLogEventType::NETWORK_QUALITY_CHANGED, 1764 NetLogEventType::NETWORK_QUALITY_CHANGED,
1754 "effective_connection_type")); 1765 "effective_connection_type"));
1755 EXPECT_EQ(1500, estimator.GetNetLogLastIntegerValue( 1766 EXPECT_EQ(1500, estimator.GetNetLogLastIntegerValue(
1756 NetLogEventType::NETWORK_QUALITY_CHANGED, "http_rtt_ms")); 1767 NetLogEventType::NETWORK_QUALITY_CHANGED, "http_rtt_ms"));
1757 EXPECT_EQ(-1, 1768 EXPECT_EQ(-1,
1758 estimator.GetNetLogLastIntegerValue( 1769 estimator.GetNetLogLastIntegerValue(
1759 NetLogEventType::NETWORK_QUALITY_CHANGED, "transport_rtt_ms")); 1770 NetLogEventType::NETWORK_QUALITY_CHANGED, "transport_rtt_ms"));
1760 EXPECT_EQ(100000, estimator.GetNetLogLastIntegerValue( 1771 EXPECT_EQ(100000, estimator.GetNetLogLastIntegerValue(
1761 NetLogEventType::NETWORK_QUALITY_CHANGED, 1772 NetLogEventType::NETWORK_QUALITY_CHANGED,
1762 "downstream_throughput_kbps")); 1773 "downstream_throughput_kbps"));
1763 1774
1764 histogram_tester.ExpectUniqueSample("NQE.MainFrame.EffectiveConnectionType", 1775 histogram_tester.ExpectUniqueSample("NQE.MainFrame.EffectiveConnectionType",
1765 EFFECTIVE_CONNECTION_TYPE_2G, 1); 1776 EFFECTIVE_CONNECTION_TYPE_2G, 1);
1766 histogram_tester.ExpectUniqueSample( 1777 histogram_tester.ExpectUniqueSample(
1767 "NQE.MainFrame.EffectiveConnectionType.Unknown", 1778 "NQE.MainFrame.EffectiveConnectionType.Unknown",
1768 EFFECTIVE_CONNECTION_TYPE_2G, 1); 1779 EFFECTIVE_CONNECTION_TYPE_2G, 1);
1769 1780
1770 // Next request should not trigger recomputation of effective connection type 1781 // Next request should not trigger recomputation of effective connection type
1771 // since there has been no change in the clock. 1782 // since there has been no change in the clock.
1772 std::unique_ptr<URLRequest> request2(context.CreateRequest( 1783 std::unique_ptr<URLRequest> request2(
1773 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 1784 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
1785 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
1774 request2->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 1786 request2->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
1775 request2->Start(); 1787 request2->Start();
1776 base::RunLoop().Run(); 1788 base::RunLoop().Run();
1777 EXPECT_EQ(1U, observer.effective_connection_types().size()); 1789 EXPECT_EQ(1U, observer.effective_connection_types().size());
1778 1790
1779 // Change in connection type should send out notification to the observers. 1791 // Change in connection type should send out notification to the observers.
1780 estimator.set_start_time_null_http_rtt( 1792 estimator.set_start_time_null_http_rtt(
1781 base::TimeDelta::FromMilliseconds(500)); 1793 base::TimeDelta::FromMilliseconds(500));
1782 estimator.SimulateNetworkChange(NetworkChangeNotifier::CONNECTION_WIFI, 1794 estimator.SimulateNetworkChange(NetworkChangeNotifier::CONNECTION_WIFI,
1783 "test"); 1795 "test");
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 1846
1835 base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(100)); 1847 base::TimeDelta http_rtt(base::TimeDelta::FromMilliseconds(100));
1836 base::TimeDelta transport_rtt(base::TimeDelta::FromMilliseconds(200)); 1848 base::TimeDelta transport_rtt(base::TimeDelta::FromMilliseconds(200));
1837 int32_t downstream_throughput_kbps(300); 1849 int32_t downstream_throughput_kbps(300);
1838 estimator.set_start_time_null_http_rtt(http_rtt); 1850 estimator.set_start_time_null_http_rtt(http_rtt);
1839 estimator.set_start_time_null_transport_rtt(transport_rtt); 1851 estimator.set_start_time_null_transport_rtt(transport_rtt);
1840 estimator.set_start_time_null_downlink_throughput_kbps( 1852 estimator.set_start_time_null_downlink_throughput_kbps(
1841 downstream_throughput_kbps); 1853 downstream_throughput_kbps);
1842 tick_clock_ptr->Advance(base::TimeDelta::FromMinutes(60)); 1854 tick_clock_ptr->Advance(base::TimeDelta::FromMinutes(60));
1843 1855
1844 std::unique_ptr<URLRequest> request(context.CreateRequest( 1856 std::unique_ptr<URLRequest> request(
1845 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 1857 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
1858 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
1846 request->Start(); 1859 request->Start();
1847 base::RunLoop().Run(); 1860 base::RunLoop().Run();
1848 EXPECT_EQ(http_rtt, observer.http_rtt()); 1861 EXPECT_EQ(http_rtt, observer.http_rtt());
1849 EXPECT_EQ(transport_rtt, observer.transport_rtt()); 1862 EXPECT_EQ(transport_rtt, observer.transport_rtt());
1850 EXPECT_EQ(downstream_throughput_kbps, observer.downstream_throughput_kbps()); 1863 EXPECT_EQ(downstream_throughput_kbps, observer.downstream_throughput_kbps());
1851 EXPECT_LE(1, observer.notifications_received() - notifications_received); 1864 EXPECT_LE(1, observer.notifications_received() - notifications_received);
1852 notifications_received = observer.notifications_received(); 1865 notifications_received = observer.notifications_received();
1853 1866
1854 // The next request should not trigger recomputation of RTT or throughput 1867 // The next request should not trigger recomputation of RTT or throughput
1855 // since there has been no change in the clock. 1868 // since there has been no change in the clock.
1856 std::unique_ptr<URLRequest> request2(context.CreateRequest( 1869 std::unique_ptr<URLRequest> request2(
1857 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 1870 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
1871 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
1858 request2->Start(); 1872 request2->Start();
1859 base::RunLoop().Run(); 1873 base::RunLoop().Run();
1860 EXPECT_LE(1, observer.notifications_received() - notifications_received); 1874 EXPECT_LE(1, observer.notifications_received() - notifications_received);
1861 notifications_received = observer.notifications_received(); 1875 notifications_received = observer.notifications_received();
1862 1876
1863 // A change in the connection type should send out notification to the 1877 // A change in the connection type should send out notification to the
1864 // observers. 1878 // observers.
1865 estimator.SimulateNetworkChange(NetworkChangeNotifier::CONNECTION_WIFI, 1879 estimator.SimulateNetworkChange(NetworkChangeNotifier::CONNECTION_WIFI,
1866 "test"); 1880 "test");
1867 EXPECT_EQ(http_rtt, observer.http_rtt()); 1881 EXPECT_EQ(http_rtt, observer.http_rtt());
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1972 TestDelegate test_delegate; 1986 TestDelegate test_delegate;
1973 TestURLRequestContext context(true); 1987 TestURLRequestContext context(true);
1974 context.set_network_quality_estimator(&estimator); 1988 context.set_network_quality_estimator(&estimator);
1975 context.Init(); 1989 context.Init();
1976 1990
1977 EXPECT_EQ(0U, observer.effective_connection_types().size()); 1991 EXPECT_EQ(0U, observer.effective_connection_types().size());
1978 1992
1979 estimator.set_recent_effective_connection_type(EFFECTIVE_CONNECTION_TYPE_2G); 1993 estimator.set_recent_effective_connection_type(EFFECTIVE_CONNECTION_TYPE_2G);
1980 tick_clock_ptr->Advance(base::TimeDelta::FromMinutes(60)); 1994 tick_clock_ptr->Advance(base::TimeDelta::FromMinutes(60));
1981 1995
1982 std::unique_ptr<URLRequest> request(context.CreateRequest( 1996 std::unique_ptr<URLRequest> request(
1983 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 1997 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
1998 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
1984 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 1999 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
1985 request->Start(); 2000 request->Start();
1986 base::RunLoop().Run(); 2001 base::RunLoop().Run();
1987 EXPECT_EQ(1U, observer.effective_connection_types().size()); 2002 EXPECT_EQ(1U, observer.effective_connection_types().size());
1988 histogram_tester.ExpectUniqueSample("NQE.MainFrame.EffectiveConnectionType", 2003 histogram_tester.ExpectUniqueSample("NQE.MainFrame.EffectiveConnectionType",
1989 EFFECTIVE_CONNECTION_TYPE_2G, 1); 2004 EFFECTIVE_CONNECTION_TYPE_2G, 1);
1990 histogram_tester.ExpectUniqueSample( 2005 histogram_tester.ExpectUniqueSample(
1991 "NQE.MainFrame.EffectiveConnectionType.WiFi", 2006 "NQE.MainFrame.EffectiveConnectionType.WiFi",
1992 EFFECTIVE_CONNECTION_TYPE_2G, 1); 2007 EFFECTIVE_CONNECTION_TYPE_2G, 1);
1993 histogram_tester.ExpectUniqueSample("NQE.EstimateAvailable.MainFrame.RTT", 0, 2008 histogram_tester.ExpectUniqueSample("NQE.EstimateAvailable.MainFrame.RTT", 0,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2056 2071
2057 TestDelegate test_delegate; 2072 TestDelegate test_delegate;
2058 TestURLRequestContext context(true); 2073 TestURLRequestContext context(true);
2059 context.set_network_quality_estimator(&estimator); 2074 context.set_network_quality_estimator(&estimator);
2060 context.Init(); 2075 context.Init();
2061 2076
2062 EXPECT_EQ(0U, rtt_observer.observations().size()); 2077 EXPECT_EQ(0U, rtt_observer.observations().size());
2063 EXPECT_EQ(0U, throughput_observer.observations().size()); 2078 EXPECT_EQ(0U, throughput_observer.observations().size());
2064 base::TimeTicks then = base::TimeTicks::Now(); 2079 base::TimeTicks then = base::TimeTicks::Now();
2065 2080
2066 std::unique_ptr<URLRequest> request(context.CreateRequest( 2081 std::unique_ptr<URLRequest> request(
2067 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 2082 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
2083 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2068 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 2084 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
2069 request->Start(); 2085 request->Start();
2070 base::RunLoop().Run(); 2086 base::RunLoop().Run();
2071 2087
2072 std::unique_ptr<URLRequest> request2(context.CreateRequest( 2088 std::unique_ptr<URLRequest> request2(
2073 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 2089 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
2090 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2074 request2->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 2091 request2->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
2075 request2->Start(); 2092 request2->Start();
2076 base::RunLoop().Run(); 2093 base::RunLoop().Run();
2077 2094
2078 // Both RTT and downstream throughput should be updated. 2095 // Both RTT and downstream throughput should be updated.
2079 base::TimeDelta rtt; 2096 base::TimeDelta rtt;
2080 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 2097 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
2081 2098
2082 int32_t throughput; 2099 int32_t throughput;
2083 EXPECT_TRUE(estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), 2100 EXPECT_TRUE(estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(),
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
2174 // Send two requests. Verify that the completion of each request generates at 2191 // Send two requests. Verify that the completion of each request generates at
2175 // least one TCP RTT observation. 2192 // least one TCP RTT observation.
2176 const size_t num_requests = 2; 2193 const size_t num_requests = 2;
2177 for (size_t i = 0; i < num_requests; ++i) { 2194 for (size_t i = 0; i < num_requests; ++i) {
2178 size_t before_count_tcp_rtt_observations = 0; 2195 size_t before_count_tcp_rtt_observations = 0;
2179 for (const auto& observation : rtt_observer.observations()) { 2196 for (const auto& observation : rtt_observer.observations()) {
2180 if (observation.source == NETWORK_QUALITY_OBSERVATION_SOURCE_TCP) 2197 if (observation.source == NETWORK_QUALITY_OBSERVATION_SOURCE_TCP)
2181 ++before_count_tcp_rtt_observations; 2198 ++before_count_tcp_rtt_observations;
2182 } 2199 }
2183 2200
2184 std::unique_ptr<URLRequest> request(context.CreateRequest( 2201 std::unique_ptr<URLRequest> request(
2185 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 2202 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
2203 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2186 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 2204 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
2187 request->Start(); 2205 request->Start();
2188 base::RunLoop().Run(); 2206 base::RunLoop().Run();
2189 2207
2190 size_t after_count_tcp_rtt_observations = 0; 2208 size_t after_count_tcp_rtt_observations = 0;
2191 for (const auto& observation : rtt_observer.observations()) { 2209 for (const auto& observation : rtt_observer.observations()) {
2192 if (observation.source == NETWORK_QUALITY_OBSERVATION_SOURCE_TCP) 2210 if (observation.source == NETWORK_QUALITY_OBSERVATION_SOURCE_TCP)
2193 ++after_count_tcp_rtt_observations; 2211 ++after_count_tcp_rtt_observations;
2194 } 2212 }
2195 // At least one notification should be received per socket performance 2213 // At least one notification should be received per socket performance
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
2334 2352
2335 base::HistogramTester histogram_tester; 2353 base::HistogramTester histogram_tester;
2336 2354
2337 TestDelegate test_delegate; 2355 TestDelegate test_delegate;
2338 TestURLRequestContext context(true); 2356 TestURLRequestContext context(true);
2339 context.set_network_quality_estimator(&estimator); 2357 context.set_network_quality_estimator(&estimator);
2340 context.Init(); 2358 context.Init();
2341 2359
2342 // Start a main-frame request which should cause network quality estimator 2360 // Start a main-frame request which should cause network quality estimator
2343 // to record accuracy UMA. 2361 // to record accuracy UMA.
2344 std::unique_ptr<URLRequest> request(context.CreateRequest( 2362 std::unique_ptr<URLRequest> request(
2345 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 2363 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
2364 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2346 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 2365 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
2347 request->Start(); 2366 request->Start();
2348 base::RunLoop().Run(); 2367 base::RunLoop().Run();
2349 2368
2350 if (accuracy_recording_delay != base::TimeDelta()) { 2369 if (accuracy_recording_delay != base::TimeDelta()) {
2351 tick_clock_ptr->Advance(accuracy_recording_delay); 2370 tick_clock_ptr->Advance(accuracy_recording_delay);
2352 2371
2353 // Sleep for some time to ensure that the delayed task is posted. 2372 // Sleep for some time to ensure that the delayed task is posted.
2354 base::PlatformThread::Sleep(accuracy_recording_delay * 2); 2373 base::PlatformThread::Sleep(accuracy_recording_delay * 2);
2355 base::RunLoop().RunUntilIdle(); 2374 base::RunLoop().RunUntilIdle();
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
2602 TestDelegate test_delegate; 2621 TestDelegate test_delegate;
2603 TestURLRequestContext context(true); 2622 TestURLRequestContext context(true);
2604 context.set_network_quality_estimator(&estimator); 2623 context.set_network_quality_estimator(&estimator);
2605 context.Init(); 2624 context.Init();
2606 2625
2607 histogram_tester.ExpectTotalCount( 2626 histogram_tester.ExpectTotalCount(
2608 "NQE.Correlation.ResourceLoadTime.0Kb_128Kb", 0); 2627 "NQE.Correlation.ResourceLoadTime.0Kb_128Kb", 0);
2609 2628
2610 // Start a main-frame request that should cause network quality estimator to 2629 // Start a main-frame request that should cause network quality estimator to
2611 // record the network quality at the last main frame request. 2630 // record the network quality at the last main frame request.
2612 std::unique_ptr<URLRequest> request_1(context.CreateRequest( 2631 std::unique_ptr<URLRequest> request_1(
2613 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 2632 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
2633 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2614 request_1->SetLoadFlags(request_1->load_flags() | 2634 request_1->SetLoadFlags(request_1->load_flags() |
2615 LOAD_MAIN_FRAME_DEPRECATED); 2635 LOAD_MAIN_FRAME_DEPRECATED);
2616 request_1->Start(); 2636 request_1->Start();
2617 base::RunLoop().Run(); 2637 base::RunLoop().Run();
2618 2638
2619 if (test.rand_double >= test.correlation_logging_probability) { 2639 if (test.rand_double >= test.correlation_logging_probability) {
2620 histogram_tester.ExpectTotalCount( 2640 histogram_tester.ExpectTotalCount(
2621 "NQE.Correlation.ResourceLoadTime.0Kb_128Kb", 0); 2641 "NQE.Correlation.ResourceLoadTime.0Kb_128Kb", 0);
2622 continue; 2642 continue;
2623 } 2643 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2660 (buckets.at(0).min >> kBitsPerMetric >> kBitsPerMetric) % 128); 2680 (buckets.at(0).min >> kBitsPerMetric >> kBitsPerMetric) % 128);
2661 2681
2662 // Get the bits at index 18-24 which contain the resource fetch time. 2682 // Get the bits at index 18-24 which contain the resource fetch time.
2663 EXPECT_LE(0, (buckets.at(0).min >> kBitsPerMetric) % 128); 2683 EXPECT_LE(0, (buckets.at(0).min >> kBitsPerMetric) % 128);
2664 2684
2665 // Get the bits at index 25-31 which contain the resource load size. 2685 // Get the bits at index 25-31 which contain the resource load size.
2666 EXPECT_LE(0, (buckets.at(0).min) % 128); 2686 EXPECT_LE(0, (buckets.at(0).min) % 128);
2667 2687
2668 // Start another main-frame request which is redirected to an HTTPS URL. 2688 // Start another main-frame request which is redirected to an HTTPS URL.
2669 // Redirection should not cause any crashes. 2689 // Redirection should not cause any crashes.
2670 std::unique_ptr<URLRequest> request_3(context.CreateRequest( 2690 std::unique_ptr<URLRequest> request_3(
2671 estimator.GetRedirectURL(), DEFAULT_PRIORITY, &test_delegate)); 2691 context.CreateRequest(estimator.GetRedirectURL(), DEFAULT_PRIORITY,
2692 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2672 request_3->Start(); 2693 request_3->Start();
2673 base::RunLoop().Run(); 2694 base::RunLoop().Run();
2674 EXPECT_FALSE(request_3->original_url().SchemeIsCryptographic()); 2695 EXPECT_FALSE(request_3->original_url().SchemeIsCryptographic());
2675 EXPECT_TRUE(request_3->url().SchemeIsCryptographic()); 2696 EXPECT_TRUE(request_3->url().SchemeIsCryptographic());
2676 EXPECT_TRUE(!request_3->response_info().headers.get() || 2697 EXPECT_TRUE(!request_3->response_info().headers.get() ||
2677 request_3->response_info().headers->response_code() != HTTP_OK); 2698 request_3->response_info().headers->response_code() != HTTP_OK);
2678 // Correlation metric should not be logged for redirected requests. 2699 // Correlation metric should not be logged for redirected requests.
2679 histogram_tester.ExpectTotalCount( 2700 histogram_tester.ExpectTotalCount(
2680 "NQE.Correlation.ResourceLoadTime.0Kb_128Kb", 1); 2701 "NQE.Correlation.ResourceLoadTime.0Kb_128Kb", 1);
2681 } 2702 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
2776 // that the notification to |observer| is finished. 2797 // that the notification to |observer| is finished.
2777 base::RunLoop().RunUntilIdle(); 2798 base::RunLoop().RunUntilIdle();
2778 2799
2779 TestDelegate test_delegate; 2800 TestDelegate test_delegate;
2780 TestURLRequestContext context(true); 2801 TestURLRequestContext context(true);
2781 context.set_network_quality_estimator(&estimator); 2802 context.set_network_quality_estimator(&estimator);
2782 context.Init(); 2803 context.Init();
2783 2804
2784 EXPECT_EQ(0U, observer.effective_connection_types().size()); 2805 EXPECT_EQ(0U, observer.effective_connection_types().size());
2785 2806
2786 std::unique_ptr<URLRequest> request(context.CreateRequest( 2807 std::unique_ptr<URLRequest> request(
2787 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 2808 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
2809 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2788 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 2810 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
2789 request->Start(); 2811 request->Start();
2790 base::RunLoop().Run(); 2812 base::RunLoop().Run();
2791 2813
2792 EXPECT_EQ(i, estimator.GetEffectiveConnectionType()); 2814 EXPECT_EQ(i, estimator.GetEffectiveConnectionType());
2793 2815
2794 size_t expected_count = static_cast<EffectiveConnectionType>(i) == 2816 size_t expected_count = static_cast<EffectiveConnectionType>(i) ==
2795 EFFECTIVE_CONNECTION_TYPE_UNKNOWN 2817 EFFECTIVE_CONNECTION_TYPE_UNKNOWN
2796 ? 0 2818 ? 0
2797 : 1; 2819 : 1;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
2896 estimator.set_start_time_null_http_rtt( 2918 estimator.set_start_time_null_http_rtt(
2897 estimator.typical_network_quality_[effective_connection_type] 2919 estimator.typical_network_quality_[effective_connection_type]
2898 .http_rtt()); 2920 .http_rtt());
2899 estimator.set_start_time_null_transport_rtt( 2921 estimator.set_start_time_null_transport_rtt(
2900 estimator.typical_network_quality_[effective_connection_type] 2922 estimator.typical_network_quality_[effective_connection_type]
2901 .transport_rtt()); 2923 .transport_rtt());
2902 estimator.set_start_time_null_downlink_throughput_kbps(INT32_MAX); 2924 estimator.set_start_time_null_downlink_throughput_kbps(INT32_MAX);
2903 2925
2904 // Force recomputation of effective connection type by starting a main 2926 // Force recomputation of effective connection type by starting a main
2905 // frame request. 2927 // frame request.
2906 std::unique_ptr<URLRequest> request(context.CreateRequest( 2928 std::unique_ptr<URLRequest> request(
2907 estimator.GetEchoURL(), DEFAULT_PRIORITY, &test_delegate)); 2929 context.CreateRequest(estimator.GetEchoURL(), DEFAULT_PRIORITY,
2930 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
2908 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 2931 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
2909 request->Start(); 2932 request->Start();
2910 base::RunLoop().Run(); 2933 base::RunLoop().Run();
2911 2934
2912 EXPECT_EQ(effective_connection_type, 2935 EXPECT_EQ(effective_connection_type,
2913 estimator.GetEffectiveConnectionType()); 2936 estimator.GetEffectiveConnectionType());
2914 } 2937 }
2915 } 2938 }
2916 } 2939 }
2917 2940
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
3117 3140
3118 // Cleanup. 3141 // Cleanup.
3119 estimator.RemoveRTTObserver(&rtt_observer); 3142 estimator.RemoveRTTObserver(&rtt_observer);
3120 estimator.RemoveThroughputObserver(&throughput_observer); 3143 estimator.RemoveThroughputObserver(&throughput_observer);
3121 estimator.RemoveRTTAndThroughputEstimatesObserver(&rtt_throughput_observer); 3144 estimator.RemoveRTTAndThroughputEstimatesObserver(&rtt_throughput_observer);
3122 estimator.RemoveEffectiveConnectionTypeObserver( 3145 estimator.RemoveEffectiveConnectionTypeObserver(
3123 &effective_connection_type_observer); 3146 &effective_connection_type_observer);
3124 } 3147 }
3125 3148
3126 } // namespace net 3149 } // namespace net
OLDNEW
« no previous file with comments | « net/nqe/network_quality_estimator_test_util.cc ('k') | net/nqe/throughput_analyzer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698