| Index: chrome/browser/automation/testing_automation_provider_chromeos.cc
|
| diff --git a/chrome/browser/automation/testing_automation_provider_chromeos.cc b/chrome/browser/automation/testing_automation_provider_chromeos.cc
|
| index 02014979fcfb5877cfe7f822029eb2af0479ebb0..9ca8f98cf4e32d0ee2f4c60d54f8714466ae4388 100644
|
| --- a/chrome/browser/automation/testing_automation_provider_chromeos.cc
|
| +++ b/chrome/browser/automation/testing_automation_provider_chromeos.cc
|
| @@ -66,7 +66,7 @@ void TestingAutomationProvider::Login(DictionaryValue* args,
|
| if (!args->GetString("username", &username) ||
|
| !args->GetString("password", &password)) {
|
| AutomationJSONReply(this, reply_message).SendError(
|
| - "Invalid or missing args");
|
| + "Invalid or missing args.");
|
| return;
|
| }
|
|
|
| @@ -196,6 +196,22 @@ void TestingAutomationProvider::GetNetworkInfo(DictionaryValue* args,
|
| reply.SendSuccess(return_value.get());
|
| }
|
|
|
| +void TestingAutomationProvider::NetworkScan(DictionaryValue* args,
|
| + IPC::Message* reply_message) {
|
| + AutomationJSONReply reply(this, reply_message);
|
| +
|
| + if (!CrosLibrary::Get()->EnsureLoaded()) {
|
| + reply.SendError("Could not load cros library.");
|
| + return;
|
| + }
|
| +
|
| + NetworkLibrary* network_library = CrosLibrary::Get()->GetNetworkLibrary();
|
| + network_library->RequestNetworkScan();
|
| +
|
| + // Set up an observer (it will delete itself).
|
| + new NetworkScanObserver(this, reply_message);
|
| +}
|
| +
|
| void TestingAutomationProvider::ConnectToWifiNetwork(
|
| DictionaryValue* args, IPC::Message* reply_message) {
|
| AutomationJSONReply reply(this, reply_message);
|
| @@ -204,7 +220,7 @@ void TestingAutomationProvider::ConnectToWifiNetwork(
|
| !args->GetString("password", &password) ||
|
| !args->GetString("identity", &identity) ||
|
| !args->GetString("certpath", &certpath)) {
|
| - reply.SendError("Invalid or missing args");
|
| + reply.SendError("Invalid or missing args.");
|
| return;
|
| }
|
|
|
| @@ -217,7 +233,7 @@ void TestingAutomationProvider::ConnectToWifiNetwork(
|
| chromeos::WifiNetwork* wifi =
|
| network_library->FindWifiNetworkByPath(service_path);
|
| if (!wifi) {
|
| - reply.SendError("Failed to connect");
|
| + reply.SendError("No network found with specified service path.");
|
| return;
|
| }
|
| if (!password.empty())
|
| @@ -226,10 +242,36 @@ void TestingAutomationProvider::ConnectToWifiNetwork(
|
| wifi->SetIdentity(identity);
|
| if (!certpath.empty())
|
| wifi->SetCertPath(certpath);
|
| - network_library->ConnectToWifiNetwork(service_path);
|
|
|
| - // TODO(stevenjb): Observe the network library and check for a successful
|
| - // connection.
|
| + // Set up an observer (it will delete itself).
|
| + new NetworkConnectObserver(this, reply_message, service_path);
|
| +
|
| + network_library->ConnectToWifiNetwork(wifi);
|
| + network_library->RequestNetworkScan();
|
| +}
|
| +
|
| +void TestingAutomationProvider::DisconnectFromWifiNetwork(
|
| + DictionaryValue* args, IPC::Message* reply_message) {
|
| + AutomationJSONReply reply(this, reply_message);
|
| + std::string service_path;
|
| + if (!args->GetString("service_path", &service_path)) {
|
| + reply.SendError("Invalid or missing args.");
|
| + return;
|
| + }
|
| +
|
| + if (!CrosLibrary::Get()->EnsureLoaded()) {
|
| + reply.SendError("Could not load cros library.");
|
| + return;
|
| + }
|
| +
|
| + NetworkLibrary* network_library = CrosLibrary::Get()->GetNetworkLibrary();
|
| + chromeos::WifiNetwork* wifi =
|
| + network_library->FindWifiNetworkByPath(service_path);
|
| + if (!wifi) {
|
| + reply.SendError("No network found with specified service path.");
|
| + return;
|
| + }
|
|
|
| + network_library->DisconnectFromWirelessNetwork(wifi);
|
| reply.SendSuccess(NULL);
|
| }
|
|
|