123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- // Copyright 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "net/nqe/event_creator.h"
- #include "base/time/time.h"
- #include "net/log/net_log_with_source.h"
- #include "net/log/test_net_log.h"
- #include "net/nqe/effective_connection_type.h"
- #include "net/nqe/network_quality.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace net::nqe::internal {
- namespace {
- // Returns the number of entries in |net_log| that have type set to
- // |NetLogEventType::NETWORK_QUALITY_CHANGED|.
- int GetNetworkQualityChangedEntriesCount(RecordingNetLogObserver* net_log) {
- return net_log->GetEntriesWithType(NetLogEventType::NETWORK_QUALITY_CHANGED)
- .size();
- }
- // Verify that the net log events are recorded correctly.
- TEST(NetworkQualityEstimatorEventCreatorTest, Notified) {
- RecordingNetLogObserver net_log_observer;
- EventCreator event_creator(NetLogWithSource::Make(NetLogSourceType::NONE));
- NetworkQuality network_quality_100(base::Milliseconds(100),
- base::Milliseconds(100), 100);
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_2G, network_quality_100);
- EXPECT_EQ(1, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // No new entry should be created since the network quality has not changed.
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_2G, network_quality_100);
- EXPECT_EQ(1, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should be created since effective connection type has changed.
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_100);
- EXPECT_EQ(2, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should not be created since HTTP RTT has not changed
- // meaningfully.
- NetworkQuality network_quality_http_rtt_110(base::Milliseconds(110),
- base::Milliseconds(100), 100);
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_http_rtt_110);
- EXPECT_EQ(2, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should be created since HTTP RTT has changed meaningfully.
- NetworkQuality network_quality_http_rtt_300(base::Milliseconds(300),
- base::Milliseconds(100), 100);
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_http_rtt_300);
- EXPECT_EQ(3, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should be created since transport RTT has changed meaningfully.
- NetworkQuality network_quality_transport_rtt_300(
- base::Milliseconds(300), base::Milliseconds(300), 100);
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_transport_rtt_300);
- EXPECT_EQ(4, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should be created since bandwidth has changed meaningfully.
- NetworkQuality network_quality_kbps_300(base::Milliseconds(300),
- base::Milliseconds(300), 300);
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_kbps_300);
- EXPECT_EQ(5, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should not be created since network quality has not changed
- // meaningfully.
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_kbps_300);
- EXPECT_EQ(5, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should be created since bandwidth has changed meaningfully.
- NetworkQuality network_quality_kbps_2000(base::Milliseconds(300),
- base::Milliseconds(300), 2000);
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_kbps_2000);
- EXPECT_EQ(6, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- // A new entry should not be created since bandwidth has not changed by more
- // than 20%.
- NetworkQuality network_quality_kbps_2200(base::Milliseconds(300),
- base::Milliseconds(300), 2200);
- event_creator.MaybeAddNetworkQualityChangedEventToNetLog(
- EFFECTIVE_CONNECTION_TYPE_3G, network_quality_kbps_2200);
- EXPECT_EQ(6, GetNetworkQualityChangedEntriesCount(&net_log_observer));
- }
- } // namespace
- } // namespace net::nqe::internal
|