Adds NetworkChangeNotifier::GetCurrentMaxBandwidth.
This is a step in supporting the max bandwidth attribute of NetInfo V3. http://w3c.github.io/netinfo/
There is a default implementation so that each platform can add support independently.
BUG=412741
Review URL: https://codereview.chromium.org/556253003
Cr-Commit-Position: refs/heads/master@{#298268}
diff --git a/net/base/network_change_notifier_unittest.cc b/net/base/network_change_notifier_unittest.cc
new file mode 100644
index 0000000..b8310fa
--- /dev/null
+++ b/net/base/network_change_notifier_unittest.cc
@@ -0,0 +1,60 @@
+// Copyright (c) 2014 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/base/network_change_notifier.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace net {
+
+// Note: This test is subject to the host's OS and network connection. This test
+// is not future-proof. New standards will come about necessitating the need to
+// alter the ranges of these tests.
+TEST(NetworkChangeNotifierTest, NetMaxBandwidthRange) {
+ NetworkChangeNotifier::ConnectionType connection_type =
+ NetworkChangeNotifier::GetConnectionType();
+ double max_bandwidth = NetworkChangeNotifier::GetMaxBandwidth();
+
+ // Always accept infinity as it's the default value if the bandwidth is
+ // unknown.
+ if (max_bandwidth == std::numeric_limits<double>::infinity()) {
+ EXPECT_NE(NetworkChangeNotifier::CONNECTION_NONE, connection_type);
+ return;
+ }
+
+ switch (connection_type) {
+ case NetworkChangeNotifier::CONNECTION_UNKNOWN:
+ EXPECT_EQ(std::numeric_limits<double>::infinity(), max_bandwidth);
+ break;
+ case NetworkChangeNotifier::CONNECTION_ETHERNET:
+ EXPECT_GE(10.0, max_bandwidth);
+ EXPECT_LE(10000.0, max_bandwidth);
+ break;
+ case NetworkChangeNotifier::CONNECTION_WIFI:
+ EXPECT_GE(1.0, max_bandwidth);
+ EXPECT_LE(7000.0, max_bandwidth);
+ break;
+ case NetworkChangeNotifier::CONNECTION_2G:
+ EXPECT_GE(0.01, max_bandwidth);
+ EXPECT_LE(0.384, max_bandwidth);
+ break;
+ case NetworkChangeNotifier::CONNECTION_3G:
+ EXPECT_GE(2.0, max_bandwidth);
+ EXPECT_LE(42.0, max_bandwidth);
+ break;
+ case NetworkChangeNotifier::CONNECTION_4G:
+ EXPECT_GE(100.0, max_bandwidth);
+ EXPECT_LE(100.0, max_bandwidth);
+ break;
+ case NetworkChangeNotifier::CONNECTION_NONE:
+ EXPECT_EQ(0.0, max_bandwidth);
+ break;
+ case NetworkChangeNotifier::CONNECTION_BLUETOOTH:
+ EXPECT_GE(1.0, max_bandwidth);
+ EXPECT_LE(24.0, max_bandwidth);
+ break;
+ }
+}
+
+} // namespace net