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

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

Issue 2863973003: Expose RTT and downlink bandwidth using experimental Javascript API (Closed)
Patch Set: Rebased 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..c9bbf4aca9bcfa0d9956cd08f0789c2bae50e4b8 100644
--- a/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
+++ b/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
@@ -33,6 +33,8 @@
#include "platform/scheduler/test/fake_web_task_runner.h"
#include "platform/testing/UnitTestHelpers.h"
#include "platform/wtf/Functional.h"
+#include "platform/wtf/Optional.h"
+#include "platform/wtf/Time.h"
#include "public/platform/Platform.h"
#include "public/platform/WebConnectionType.h"
#include "public/platform/WebThread.h"
@@ -46,6 +48,12 @@ namespace {
const double kNoneMaxBandwidthMbps = 0.0;
const double kBluetoothMaxBandwidthMbps = 1.0;
const double kEthernetMaxBandwidthMbps = 2.0;
+const Optional<TimeDelta> kEthernetHttpRtt(TimeDelta::FromMilliseconds(50));
+const Optional<TimeDelta> kEthernetTransportRtt(
+ TimeDelta::FromMilliseconds(25));
+const Optional<double> kEthernetThroughputMbps(75.0);
+const Optional<TimeDelta> kUnknownRtt;
+const Optional<double> kUnknownThroughputMbps;
}
class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
@@ -53,13 +61,23 @@ class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
StateObserver()
: observed_type_(kWebConnectionTypeNone),
observed_max_bandwidth_mbps_(0.0),
+ observed_http_rtt_(kUnknownRtt),
+ observed_transport_rtt_(kUnknownRtt),
+ observed_downlink_throughput_mbps_(kUnknownThroughputMbps),
observed_on_line_state_(false),
callback_count_(0) {}
- virtual void ConnectionChange(WebConnectionType type,
- double max_bandwidth_mbps) {
+ virtual void ConnectionChange(
+ WebConnectionType type,
+ double max_bandwidth_mbps,
+ const Optional<TimeDelta>& http_rtt,
+ const Optional<TimeDelta>& transport_rtt,
+ const Optional<double>& downlink_throughput_mbps) {
observed_type_ = type;
observed_max_bandwidth_mbps_ = max_bandwidth_mbps;
+ observed_http_rtt_ = http_rtt;
+ observed_transport_rtt_ = transport_rtt;
+ observed_downlink_throughput_mbps_ = downlink_throughput_mbps;
callback_count_ += 1;
if (closure_)
@@ -76,6 +94,13 @@ class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
WebConnectionType ObservedType() const { return observed_type_; }
double ObservedMaxBandwidth() const { return observed_max_bandwidth_mbps_; }
+ Optional<TimeDelta> ObservedHttpRtt() const { return observed_http_rtt_; }
+ Optional<TimeDelta> ObservedTransportRtt() const {
+ return observed_transport_rtt_;
+ }
+ Optional<double> ObservedDownlinkThroughputMbps() const {
+ return observed_downlink_throughput_mbps_;
+ }
bool ObservedOnLineState() const { return observed_on_line_state_; }
int CallbackCount() const { return callback_count_; }
@@ -87,6 +112,9 @@ class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
std::unique_ptr<WTF::Closure> closure_;
WebConnectionType observed_type_;
double observed_max_bandwidth_mbps_;
+ Optional<TimeDelta> observed_http_rtt_;
+ Optional<TimeDelta> observed_transport_rtt_;
+ Optional<double> observed_downlink_throughput_mbps_;
bool observed_on_line_state_;
int callback_count_;
};
@@ -117,8 +145,20 @@ class NetworkStateNotifierTest : public ::testing::Test {
task_runner2_->RunUntilIdle();
}
- void SetConnection(WebConnectionType type, double max_bandwidth_mbps) {
+ void SetConnection(WebConnectionType type,
+ double max_bandwidth_mbps,
+ const Optional<TimeDelta>& http_rtt,
+ const Optional<TimeDelta>& transport_rtt,
+ const Optional<double>& downlink_throughput_mbps) {
notifier_.SetWebConnection(type, max_bandwidth_mbps);
+ notifier_.SetNetworkQuality(
+ http_rtt.has_value() ? http_rtt.value()
+ : base::TimeDelta::FromMilliseconds(-1),
+ transport_rtt.has_value() ? transport_rtt.value()
+ : base::TimeDelta::FromMilliseconds(-1),
+ downlink_throughput_mbps.has_value()
+ ? downlink_throughput_mbps.value() * 1000
+ : -1);
RunPendingTasks();
}
void SetOnLine(bool on_line) {
@@ -142,13 +182,26 @@ class NetworkStateNotifierTest : public ::testing::Test {
WTF::Unretained(GetTaskRunner())));
}
- bool VerifyObservations(const StateObserver& observer,
- WebConnectionType type,
- double max_bandwidth_mbps) {
- EXPECT_EQ(observer.ObservedType(), type);
- EXPECT_EQ(observer.ObservedMaxBandwidth(), max_bandwidth_mbps);
+ bool VerifyObservations(
+ const StateObserver& observer,
+ WebConnectionType type,
+ double max_bandwidth_mbps,
+ const Optional<TimeDelta>& http_rtt,
+ const Optional<TimeDelta>& transport_rtt,
+ const Optional<double>& downlink_throughput_mbps) const {
+ EXPECT_EQ(type, observer.ObservedType());
+ EXPECT_EQ(max_bandwidth_mbps, observer.ObservedMaxBandwidth());
+ EXPECT_EQ(http_rtt, observer.ObservedHttpRtt());
+ EXPECT_EQ(transport_rtt, observer.ObservedTransportRtt());
+ EXPECT_EQ(downlink_throughput_mbps,
+ observer.ObservedDownlinkThroughputMbps());
+
return observer.ObservedType() == type &&
- observer.ObservedMaxBandwidth() == max_bandwidth_mbps;
+ observer.ObservedMaxBandwidth() == max_bandwidth_mbps &&
+ observer.ObservedHttpRtt() == http_rtt &&
+ observer.ObservedTransportRtt() == transport_rtt &&
+ observer.ObservedDownlinkThroughputMbps() ==
+ downlink_throughput_mbps;
}
RefPtr<FakeWebTaskRunner> task_runner_;
@@ -160,12 +213,46 @@ 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.value() * 2,
+ kEthernetThroughputMbps);
+ EXPECT_TRUE(VerifyObservations(observer, kWebConnectionTypeEthernet,
+ kEthernetMaxBandwidthMbps, kEthernetHttpRtt,
+ kEthernetTransportRtt.value() * 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 +262,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 +280,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 +293,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 +310,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, kUnknownThroughputMbps));
- 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 +329,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 +357,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 +382,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 +404,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 +424,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 +444,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 +460,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 +473,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 +482,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 +495,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 +508,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.value() * 2, kEthernetTransportRtt.value() * 2,
+ kEthernetThroughputMbps.value() * 2);
+ EXPECT_TRUE(VerifyObservations(
+ observer, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt.value() * 2, kEthernetTransportRtt.value() * 2,
+ kEthernetThroughputMbps.value() * 2));
+ EXPECT_EQ(observer.CallbackCount(), 4);
+
+ SetConnection(kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
+ kEthernetHttpRtt.value() * 2, kEthernetTransportRtt.value() * 2,
+ kEthernetThroughputMbps.value() * 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 +624,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());
« no previous file with comments | « third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp ('k') | third_party/WebKit/public/platform/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698