Index: chromeos/dbus/fake_shill_manager_client.cc |
diff --git a/chromeos/dbus/fake_shill_manager_client.cc b/chromeos/dbus/fake_shill_manager_client.cc |
index e6f97cb5de5114ae7da5be88c76e5e38d5d222d0..4dc7671b681bc50258c75839b7b1edcb589d65e5 100644 |
--- a/chromeos/dbus/fake_shill_manager_client.cc |
+++ b/chromeos/dbus/fake_shill_manager_client.cc |
@@ -10,6 +10,7 @@ |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_split.h" |
#include "base/strings/string_util.h" |
+#include "base/strings/stringprintf.h" |
#include "base/values.h" |
#include "chromeos/chromeos_switches.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
@@ -30,6 +31,7 @@ namespace { |
// Allow parsed command line option 'tdls_busy' to set the fake busy count. |
int s_tdls_busy_count = 0; |
+int s_extra_wifi_networks = 0; |
// Used to compare values for finding entries to erase in a ListValue. |
// (ListValue only implements a const_iterator version of Find). |
@@ -735,6 +737,15 @@ void FakeShillManagerClient::SetupDefaultEnvironment() { |
base::FundamentalValue(true)); |
profiles->AddService(shared_profile, kPortaledWifiPath); |
} |
+ |
+ for (int i = 0; i < s_extra_wifi_networks; ++i) { |
+ int id = 4 + i; |
+ std::string path = base::StringPrintf("/service/wifi%d", id); |
+ std::string guid = base::StringPrintf("wifi%d_guid", id); |
+ std::string name = base::StringPrintf("wifi%d", id); |
+ services->AddService(path, guid, name, shill::kTypeWifi, |
+ shill::kStateIdle, add_to_visible); |
+ } |
} |
// Wimax |
@@ -1078,6 +1089,9 @@ bool FakeShillManagerClient::ParseOption(const std::string& arg0, |
bool FakeShillManagerClient::SetInitialNetworkState(std::string type_arg, |
std::string state_arg) { |
+ int state_arg_as_int = -1; |
+ base::StringToInt(state_arg, &state_arg_as_int); |
+ |
std::string state; |
if (state_arg.empty() || state_arg == "1" || state_arg == "on" || |
state_arg == "enabled" || state_arg == "connected" || |
@@ -1088,6 +1102,10 @@ bool FakeShillManagerClient::SetInitialNetworkState(std::string type_arg, |
state_arg == "inactive" || state_arg == shill::kStateIdle) { |
// Technology enabled, services are created but are not connected. |
state = shill::kStateIdle; |
+ } else if (type_arg == shill::kTypeWifi && state_arg_as_int > 1) { |
+ // Enabled and connected, add extra wifi networks. |
+ state = shill::kStateOnline; |
+ s_extra_wifi_networks = state_arg_as_int - 1; |
} else if (state_arg == "disabled" || state_arg == "disconnect") { |
// Technology disabled but available, services created but not connected. |
state = kNetworkDisabled; |