Index: content/browser/net_info_browsertest.cc |
diff --git a/content/browser/net_info_browsertest.cc b/content/browser/net_info_browsertest.cc |
index 67d939176a2c0e29520bf9a4af4ff83e5a0c1211..25ccf9c16093046da7b1af9386764d5929da61aa 100644 |
--- a/content/browser/net_info_browsertest.cc |
+++ b/content/browser/net_info_browsertest.cc |
@@ -4,6 +4,7 @@ |
#include "base/command_line.h" |
#include "base/run_loop.h" |
+#include "base/strings/string_number_conversions.h" |
#include "content/public/common/content_switches.h" |
#include "content/public/test/browser_test_utils.h" |
#include "content/public/test/content_browser_test.h" |
@@ -12,22 +13,31 @@ |
#include "net/base/network_change_notifier.h" |
#include "net/base/network_change_notifier_factory.h" |
+namespace content { |
+ |
+using net::NetworkChangeNotifier; |
+ |
class NetInfoBrowserTest : public content::ContentBrowserTest { |
protected: |
void SetUpCommandLine(base::CommandLine* command_line) override { |
// TODO(jkarlin): Once NetInfo is enabled on all platforms remove this |
// switch. |
command_line->AppendSwitch(switches::kEnableNetworkInformation); |
+ |
+ // TODO(jkarlin): Remove this once downlinkMax is no longer |
+ // experimental. |
+ command_line->AppendSwitch( |
+ switches::kEnableExperimentalWebPlatformFeatures); |
} |
void SetUp() override { |
- net::NetworkChangeNotifier::SetTestNotificationsOnly(true); |
+ NetworkChangeNotifier::SetTestNotificationsOnly(true); |
#if defined(OS_CHROMEOS) |
// ChromeOS's NetworkChangeNotifier isn't known to content and therefore |
// doesn't get created in content_browsertests. Insert a mock |
// NetworkChangeNotifier. |
- net::NetworkChangeNotifier::CreateMock(); |
+ NetworkChangeNotifier::CreateMock(); |
#endif |
content::ContentBrowserTest::SetUp(); |
@@ -38,9 +48,11 @@ class NetInfoBrowserTest : public content::ContentBrowserTest { |
} |
static void SetConnectionType( |
- net::NetworkChangeNotifier::ConnectionType type) { |
- net::NetworkChangeNotifier::NotifyObserversOfConnectionTypeChangeForTests( |
- type); |
+ NetworkChangeNotifier::ConnectionType type, |
+ NetworkChangeNotifier::ConnectionSubtype subtype) { |
+ NetworkChangeNotifier::NotifyObserversOfMaxBandwidthChangeForTests( |
+ type, |
+ NetworkChangeNotifier::GetMaxBandwidthForConnectionSubtype(subtype)); |
base::RunLoop().RunUntilIdle(); |
} |
@@ -57,26 +69,46 @@ class NetInfoBrowserTest : public content::ContentBrowserTest { |
ExecuteScriptAndExtractBool(shell()->web_contents(), script, &data)); |
return data; |
} |
+ |
+ double RunScriptExtractDouble(const std::string& script) { |
+ double data = 0.0; |
+ EXPECT_TRUE(base::StringToDouble(RunScriptExtractString(script), &data)); |
+ return data; |
+ } |
}; |
// Make sure that type changes in the browser make their way to |
// navigator.connection.type. |
IN_PROC_BROWSER_TEST_F(NetInfoBrowserTest, NetworkChangePlumbsToNavigator) { |
NavigateToURL(shell(), content::GetTestUrl("", "net_info.html")); |
- SetConnectionType(net::NetworkChangeNotifier::CONNECTION_WIFI); |
+ SetConnectionType(NetworkChangeNotifier::CONNECTION_WIFI, |
+ NetworkChangeNotifier::SUBTYPE_WIFI_N); |
EXPECT_EQ("wifi", RunScriptExtractString("getType()")); |
- SetConnectionType(net::NetworkChangeNotifier::CONNECTION_ETHERNET); |
+ EXPECT_EQ(NetworkChangeNotifier::GetMaxBandwidthForConnectionSubtype( |
+ NetworkChangeNotifier::SUBTYPE_WIFI_N), |
+ RunScriptExtractDouble("getDownlinkMax()")); |
+ |
+ SetConnectionType(NetworkChangeNotifier::CONNECTION_ETHERNET, |
+ NetworkChangeNotifier::SUBTYPE_GIGABIT_ETHERNET); |
EXPECT_EQ("ethernet", RunScriptExtractString("getType()")); |
+ EXPECT_EQ(NetworkChangeNotifier::GetMaxBandwidthForConnectionSubtype( |
+ NetworkChangeNotifier::SUBTYPE_GIGABIT_ETHERNET), |
+ RunScriptExtractDouble("getDownlinkMax()")); |
} |
// Make sure that type changes in the browser make their way to |
// navigator.isOnline. |
IN_PROC_BROWSER_TEST_F(NetInfoBrowserTest, IsOnline) { |
NavigateToURL(shell(), content::GetTestUrl("", "net_info.html")); |
- SetConnectionType(net::NetworkChangeNotifier::CONNECTION_ETHERNET); |
+ SetConnectionType(NetworkChangeNotifier::CONNECTION_ETHERNET, |
+ NetworkChangeNotifier::SUBTYPE_GIGABIT_ETHERNET); |
EXPECT_TRUE(RunScriptExtractBool("getOnLine()")); |
- SetConnectionType(net::NetworkChangeNotifier::CONNECTION_NONE); |
+ SetConnectionType(NetworkChangeNotifier::CONNECTION_NONE, |
+ NetworkChangeNotifier::SUBTYPE_NONE); |
EXPECT_FALSE(RunScriptExtractBool("getOnLine()")); |
- SetConnectionType(net::NetworkChangeNotifier::CONNECTION_WIFI); |
+ SetConnectionType(NetworkChangeNotifier::CONNECTION_WIFI, |
+ NetworkChangeNotifier::SUBTYPE_WIFI_N); |
EXPECT_TRUE(RunScriptExtractBool("getOnLine()")); |
} |
+ |
+} // namespace content |