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

Unified Diff: third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp

Issue 2863973003: Expose RTT and downlink bandwidth using experimental Javascript API (Closed)
Patch Set: jkarlin comments Created 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
diff --git a/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp b/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
index 3600f0568aefd8fd9beb046366f57b8c8910e4ab..77d130633e7eaab58e15a18456f7dc20fa6ad8fc 100644
--- a/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
+++ b/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
@@ -46,6 +46,11 @@ namespace {
const double kNoneMaxBandwidthMbps = 0.0;
const double kBluetoothMaxBandwidthMbps = 1.0;
const double kEthernetMaxBandwidthMbps = 2.0;
+const int kEthernetHttpRtt = 50;
+const int kEthernetTransportRtt = 25;
+const double kEthernetThroughputMbps = 75.0;
+const int kUnknownRtt = -1;
+const double kUnknownThroughputMbps = -1.0;
}
class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
@@ -53,13 +58,22 @@ class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
StateObserver()
: observed_type_(kWebConnectionTypeNone),
observed_max_bandwidth_mbps_(0.0),
+ observed_http_rtt_msec_(kUnknownRtt),
+ observed_transport_rtt_msec_(kUnknownRtt),
+ observed_downlink_throughput_mbps_(kUnknownThroughputMbps),
observed_on_line_state_(false),
callback_count_(0) {}
virtual void ConnectionChange(WebConnectionType type,
- double max_bandwidth_mbps) {
+ double max_bandwidth_mbps,
+ int http_rtt_msec,
+ int transport_rtt_msec,
+ double downlink_throughput_mbps) {
observed_type_ = type;
observed_max_bandwidth_mbps_ = max_bandwidth_mbps;
+ observed_http_rtt_msec_ = http_rtt_msec;
+ observed_transport_rtt_msec_ = transport_rtt_msec;
+ observed_downlink_throughput_mbps_ = downlink_throughput_mbps;
callback_count_ += 1;
if (closure_)
@@ -76,6 +90,13 @@ class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
WebConnectionType ObservedType() const { return observed_type_; }
double ObservedMaxBandwidth() const { return observed_max_bandwidth_mbps_; }
+ double ObservedHttpRttMsec() const { return observed_http_rtt_msec_; }
+ double ObservedTransportRttMsec() const {
+ return observed_transport_rtt_msec_;
+ }
+ double ObservedDownlinkThroughputMbps() const {
+ return observed_downlink_throughput_mbps_;
+ }
bool ObservedOnLineState() const { return observed_on_line_state_; }
int CallbackCount() const { return callback_count_; }
@@ -87,6 +108,9 @@ class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
std::unique_ptr<WTF::Closure> closure_;
WebConnectionType observed_type_;
double observed_max_bandwidth_mbps_;
+ int observed_http_rtt_msec_;
+ int observed_transport_rtt_msec_;
+ double observed_downlink_throughput_mbps_;
bool observed_on_line_state_;
int callback_count_;
};
@@ -117,8 +141,14 @@ class NetworkStateNotifierTest : public ::testing::Test {
task_runner2_->RunUntilIdle();
}
- void SetConnection(WebConnectionType type, double max_bandwidth_mbps) {
+ void SetConnection(WebConnectionType type,
+ double max_bandwidth_mbps,
+ int http_rtt_msec,
+ int transport_rtt_msec,
+ int downlink_throughput_mbps) {
notifier_.SetWebConnection(type, max_bandwidth_mbps);
+ notifier_.SetWebNetworkQuality(http_rtt_msec, transport_rtt_msec,
+ downlink_throughput_mbps * 1000);
RunPendingTasks();
}
void SetOnLine(bool on_line) {
@@ -144,11 +174,23 @@ class NetworkStateNotifierTest : public ::testing::Test {
bool VerifyObservations(const StateObserver& observer,
WebConnectionType type,
- double max_bandwidth_mbps) {
- EXPECT_EQ(observer.ObservedType(), type);
- EXPECT_EQ(observer.ObservedMaxBandwidth(), max_bandwidth_mbps);
+ double max_bandwidth_mbps,
+ double http_rtt_msec,
+ double transport_rtt_msec,
+ double downlink_throughput_mbps) const {
+ EXPECT_EQ(type, observer.ObservedType());
+ EXPECT_EQ(max_bandwidth_mbps, observer.ObservedMaxBandwidth());
+ EXPECT_EQ(http_rtt_msec, observer.ObservedHttpRttMsec());
+ EXPECT_EQ(transport_rtt_msec, observer.ObservedTransportRttMsec());
+ EXPECT_EQ(downlink_throughput_mbps,
+ observer.ObservedDownlinkThroughputMbps());
+
return observer.ObservedType() == type &&
- observer.ObservedMaxBandwidth() == max_bandwidth_mbps;
+ observer.ObservedMaxBandwidth() == max_bandwidth_mbps &&
+ observer.ObservedHttpRttMsec() == http_rtt_msec &&
+ observer.ObservedTransportRttMsec() == transport_rtt_msec &&
+ observer.ObservedDownlinkThroughputMbps() ==
+ downlink_throughput_mbps;
}
RefPtr<FakeWebTaskRunner> task_runner_;
@@ -160,12 +202,45 @@ TEST_F(NetworkStateNotifierTest, AddObserver) {
StateObserver observer;
notifier_.AddConnectionObserver(&observer, GetTaskRunner());
EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
+
+ // Change max. bandwidth and the network quality estimates.
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
+ EXPECT_EQ(observer.CallbackCount(), 2);
+
+ // Only change the connection type.
+ SetConnection(kWebConnectionTypeEthernet, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeEthernet, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
+ EXPECT_EQ(observer.CallbackCount(), 3);
+
+ // Only change the max. bandwidth.
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
+ EXPECT_EQ(observer.CallbackCount(), 4);
+
+ // Only change the transport RTT.
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt * 2,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt * 2, kEthernetThroughputMbps));
+ EXPECT_EQ(observer.CallbackCount(), 5);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
- EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
- EXPECT_EQ(observer.CallbackCount(), 1);
notifier_.RemoveConnectionObserver(&observer, GetTaskRunner());
}
@@ -175,11 +250,16 @@ TEST_F(NetworkStateNotifierTest, RemoveObserver) {
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.AddConnectionObserver(&observer2, GetTaskRunner());
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
- EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
+ EXPECT_TRUE(VerifyObservations(
+ observer2, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner());
}
@@ -188,9 +268,12 @@ TEST_F(NetworkStateNotifierTest, RemoveSoleObserver) {
notifier_.AddConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
}
TEST_F(NetworkStateNotifierTest, AddObserverWhileNotifying) {
@@ -198,11 +281,14 @@ TEST_F(NetworkStateNotifierTest, AddObserverWhileNotifying) {
notifier_.AddConnectionObserver(&observer1, GetTaskRunner());
AddObserverOnNotification(&observer1, &observer2);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner());
}
@@ -212,13 +298,17 @@ TEST_F(NetworkStateNotifierTest, RemoveSoleObserverWhileNotifying) {
notifier_.AddConnectionObserver(&observer1, GetTaskRunner());
RemoveObserverOnNotification(&observer1, &observer1);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownRtt));
- SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
}
TEST_F(NetworkStateNotifierTest, RemoveCurrentObserverWhileNotifying) {
@@ -227,17 +317,23 @@ TEST_F(NetworkStateNotifierTest, RemoveCurrentObserverWhileNotifying) {
notifier_.AddConnectionObserver(&observer2, GetTaskRunner());
RemoveObserverOnNotification(&observer1, &observer1);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
- SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeEthernet,
- kEthernetMaxBandwidthMbps));
+ kEthernetMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner());
@@ -249,15 +345,19 @@ TEST_F(NetworkStateNotifierTest, RemovePastObserverWhileNotifying) {
notifier_.AddConnectionObserver(&observer2, GetTaskRunner());
RemoveObserverOnNotification(&observer2, &observer1);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_EQ(observer1.ObservedType(), kWebConnectionTypeBluetooth);
EXPECT_EQ(observer2.ObservedType(), kWebConnectionTypeBluetooth);
- SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeEthernet,
- kEthernetMaxBandwidthMbps));
+ kEthernetMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner());
@@ -270,13 +370,17 @@ TEST_F(NetworkStateNotifierTest, RemoveFutureObserverWhileNotifying) {
notifier_.AddConnectionObserver(&observer3, GetTaskRunner());
RemoveObserverOnNotification(&observer1, &observer2);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer3, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner());
@@ -288,11 +392,15 @@ TEST_F(NetworkStateNotifierTest, MultipleContextsAddObserver) {
notifier_.AddConnectionObserver(&observer1, GetTaskRunner());
notifier_.AddConnectionObserver(&observer2, GetTaskRunner2());
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
- EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
- EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer1, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
+ EXPECT_TRUE(VerifyObservations(
+ observer2, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner2());
@@ -304,11 +412,15 @@ TEST_F(NetworkStateNotifierTest, RemoveContext) {
notifier_.AddConnectionObserver(&observer2, GetTaskRunner2());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner2());
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
- EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer1, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
}
@@ -320,11 +432,15 @@ TEST_F(NetworkStateNotifierTest, RemoveAllContexts) {
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner2());
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer1, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
}
TEST_F(NetworkStateNotifierTest, SetOverride) {
@@ -332,9 +448,11 @@ TEST_F(NetworkStateNotifierTest, SetOverride) {
notifier_.AddConnectionObserver(&observer, GetTaskRunner());
notifier_.SetOnLine(true);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kUnknownRtt, kUnknownRtt, kUnknownThroughputMbps);
EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
+ kBluetoothMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(notifier_.OnLine());
EXPECT_EQ(kWebConnectionTypeBluetooth, notifier_.ConnectionType());
EXPECT_EQ(kBluetoothMaxBandwidthMbps, notifier_.MaxBandwidth());
@@ -343,7 +461,8 @@ TEST_F(NetworkStateNotifierTest, SetOverride) {
kEthernetMaxBandwidthMbps);
RunPendingTasks();
EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeEthernet,
- kEthernetMaxBandwidthMbps));
+ kEthernetMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(notifier_.OnLine());
EXPECT_EQ(kWebConnectionTypeEthernet, notifier_.ConnectionType());
EXPECT_EQ(kEthernetMaxBandwidthMbps, notifier_.MaxBandwidth());
@@ -351,10 +470,12 @@ TEST_F(NetworkStateNotifierTest, SetOverride) {
// When override is active, calls to setOnLine and setConnection are temporary
// ignored.
notifier_.SetOnLine(false);
- SetConnection(kWebConnectionTypeNone, kNoneMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeNone, kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps);
RunPendingTasks();
EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeEthernet,
- kEthernetMaxBandwidthMbps));
+ kEthernetMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_TRUE(notifier_.OnLine());
EXPECT_EQ(kWebConnectionTypeEthernet, notifier_.ConnectionType());
EXPECT_EQ(kEthernetMaxBandwidthMbps, notifier_.MaxBandwidth());
@@ -362,7 +483,8 @@ TEST_F(NetworkStateNotifierTest, SetOverride) {
notifier_.ClearOverride();
RunPendingTasks();
EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeNone,
- kNoneMaxBandwidthMbps));
+ kNoneMaxBandwidthMbps, kUnknownRtt,
+ kUnknownRtt, kUnknownThroughputMbps));
EXPECT_FALSE(notifier_.OnLine());
EXPECT_EQ(kWebConnectionTypeNone, notifier_.ConnectionType());
EXPECT_EQ(kNoneMaxBandwidthMbps, notifier_.MaxBandwidth());
@@ -374,26 +496,40 @@ TEST_F(NetworkStateNotifierTest, NoExtraNotifications) {
StateObserver observer;
notifier_.AddConnectionObserver(&observer, GetTaskRunner());
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
- EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
- EXPECT_EQ(observer.CallbackCount(), 1);
-
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
- EXPECT_EQ(observer.CallbackCount(), 1);
-
- SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
- EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeEthernet,
- kEthernetMaxBandwidthMbps));
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
EXPECT_EQ(observer.CallbackCount(), 2);
- SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
EXPECT_EQ(observer.CallbackCount(), 2);
- SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
- EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeBluetooth,
- kBluetoothMaxBandwidthMbps));
- EXPECT_EQ(observer.CallbackCount(), 3);
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt * 2, kEthernetTransportRtt * 2,
+ kEthernetThroughputMbps * 2);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt * 2, kEthernetTransportRtt * 2,
+ kEthernetThroughputMbps * 2));
+ EXPECT_EQ(observer.CallbackCount(), 4);
+
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt * 2, kEthernetTransportRtt * 2,
+ kEthernetThroughputMbps * 2);
+ EXPECT_EQ(observer.CallbackCount(), 4);
+
+ SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
+ EXPECT_EQ(observer.CallbackCount(), 6);
notifier_.RemoveConnectionObserver(&observer, GetTaskRunner());
}
@@ -476,15 +612,17 @@ TEST_F(NetworkStateNotifierTest, MultipleObservers) {
EXPECT_EQ(observer2.CallbackCount(), 2);
notifier_.SetOnLine(true);
- notifier_.SetWebConnection(kWebConnectionTypeEthernet,
- kEthernetMaxBandwidthMbps);
- RunPendingTasks();
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt,
+ kEthernetThroughputMbps);
+
EXPECT_TRUE(observer1.ObservedOnLineState());
EXPECT_TRUE(observer2.ObservedOnLineState());
- EXPECT_TRUE(VerifyObservations(observer2, kWebConnectionTypeEthernet,
- kEthernetMaxBandwidthMbps));
+ EXPECT_TRUE(VerifyObservations(
+ observer2, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt, kEthernetTransportRtt, kEthernetThroughputMbps));
EXPECT_EQ(observer1.CallbackCount(), 3);
- EXPECT_EQ(observer2.CallbackCount(), 4);
+ EXPECT_EQ(observer2.CallbackCount(), 5);
notifier_.RemoveConnectionObserver(&observer1, GetTaskRunner());
notifier_.RemoveConnectionObserver(&observer2, GetTaskRunner());

Powered by Google App Engine
This is Rietveld 408576698