Index: chrome/browser/sync/test/integration/wifi_credentials_helper_chromeos.cc |
diff --git a/chrome/browser/sync/test/integration/wifi_credentials_helper_chromeos.cc b/chrome/browser/sync/test/integration/wifi_credentials_helper_chromeos.cc |
index 8e5400247c21808abee5edcbbdf3b236208d1440..0a9b3189e68b5ce70b55c6f9076efd491ac20db4 100644 |
--- a/chrome/browser/sync/test/integration/wifi_credentials_helper_chromeos.cc |
+++ b/chrome/browser/sync/test/integration/wifi_credentials_helper_chromeos.cc |
@@ -6,14 +6,23 @@ |
#include <string> |
+#include "base/bind.h" |
#include "base/files/file_path.h" |
#include "base/logging.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "base/strings/stringprintf.h" |
+#include "base/values.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "chromeos/dbus/shill_profile_client.h" |
+#include "chromeos/network/managed_network_configuration_handler.h" |
#include "chromeos/network/network_handler.h" |
-#include "chromeos/network/network_state.h" |
#include "chromeos/network/network_state_handler.h" |
+#include "components/onc/onc_constants.h" |
#include "components/wifi_sync/network_state_helper_chromeos.h" |
-#include "components/wifi_sync/wifi_security_class.h" |
+#include "components/wifi_sync/wifi_credential_syncable_service_factory.h" |
+ |
+using wifi_sync::WifiCredential; |
using WifiCredentialSet = wifi_sync::WifiCredential::CredentialSet; |
@@ -23,6 +32,13 @@ namespace { |
const char kProfilePrefix[] = "/profile/"; |
+void LogCreateConfigurationFailure( |
+ const std::string& debug_hint, |
+ const std::string& /* network_config_error_message */, |
+ scoped_ptr<base::DictionaryValue> /* network_config_error_data */) { |
+ LOG(FATAL) << debug_hint; |
+} |
+ |
std::string ChromeOsUserHashForBrowserContext( |
const content::BrowserContext& context) { |
return context.GetPath().BaseName().value(); |
@@ -33,17 +49,79 @@ std::string ShillProfilePathForBrowserContext( |
return kProfilePrefix + ChromeOsUserHashForBrowserContext(context); |
pneubeck (no reviews)
2015/01/30 14:38:45
if this is for testing only, it should be irreleva
mukesh agrawal
2015/01/30 22:28:14
Are you referring to the use of kProfilePrefix (wh
pneubeck (no reviews)
2015/01/31 10:26:40
makes sense.
I'd just add a short comment in front
mukesh agrawal
2015/02/02 20:36:40
Done.
|
} |
-chromeos::NetworkStateHandler* GetNetworkStateHandler() { |
- DCHECK(chromeos::NetworkHandler::Get()->network_state_handler()); |
- return chromeos::NetworkHandler::Get()->network_state_handler(); |
+::chromeos::ShillProfileClient::TestInterface* |
+GetShillProfileClientTestInterface() { |
+ DCHECK(::chromeos::DBusThreadManager::Get()->GetShillProfileClient()); |
pneubeck (no reviews)
2015/01/30 14:38:45
the DCHECKs (here and in the other Get*()) are not
mukesh agrawal
2015/01/30 22:28:14
Agreed that a nullptr would cause a crash.
The re
pneubeck (no reviews)
2015/01/31 10:26:40
no, keep them if you find them helpful.
just keep
mukesh agrawal
2015/02/02 20:36:40
Acknowledged.
|
+ DCHECK(::chromeos::DBusThreadManager::Get()->GetShillProfileClient() |
+ ->GetTestInterface()); |
+ return ::chromeos::DBusThreadManager::Get()->GetShillProfileClient() |
+ ->GetTestInterface(); |
+} |
+ |
+::chromeos::ManagedNetworkConfigurationHandler* |
+GetManagedNetworkConfigurationHandler() { |
+ DCHECK(::chromeos::NetworkHandler::Get() |
+ ->managed_network_configuration_handler()); |
+ return ::chromeos::NetworkHandler::Get() |
+ ->managed_network_configuration_handler(); |
+} |
+ |
+::chromeos::NetworkStateHandler* GetNetworkStateHandler() { |
+ DCHECK(::chromeos::NetworkHandler::Get()->network_state_handler()); |
+ return ::chromeos::NetworkHandler::Get()->network_state_handler(); |
} |
} // namespace |
+namespace chromeos { |
+ |
+void SetUpChromeOs() { |
+ wifi_sync::WifiCredentialSyncableServiceFactory::GetInstance() |
+ ->IgnoreLoginStateForTest(); |
+} |
+ |
+bool SetupClientForProfileChromeOs(const Profile* profile) { |
+ DCHECK(profile); |
+ GetShillProfileClientTestInterface() |
+ ->AddProfile(ShillProfilePathForBrowserContext(*profile), |
+ ChromeOsUserHashForBrowserContext(*profile)); |
+ |
+ const base::ListValue policy_network_configs; |
+ const base::DictionaryValue policy_global_config; |
+ GetManagedNetworkConfigurationHandler() |
+ ->SetPolicy(onc::ONC_SOURCE_UNKNOWN, |
+ ChromeOsUserHashForBrowserContext(*profile), |
+ policy_network_configs, |
+ policy_global_config); |
+ |
+ return true; |
pneubeck (no reviews)
2015/01/30 14:38:45
return value not required?
mukesh agrawal
2015/01/30 22:28:14
I think your point is that, since the function alw
pneubeck (no reviews)
2015/01/31 10:26:40
If you want to keep it, I'd suggest to at least do
mukesh agrawal
2015/02/02 20:36:40
Done.
|
+} |
+ |
+void AddWifiCredentialToProfileChromeOs( |
+ Profile* profile, const WifiCredential& credential) { |
+ DCHECK(profile); |
+ scoped_ptr<base::DictionaryValue> onc_properties = |
+ credential.ToOncProperties(); |
+ if (!onc_properties) { |
pneubeck (no reviews)
2015/01/30 14:38:45
nit: equivalent to
CHECK(onc_properties) << ...
mukesh agrawal
2015/01/30 22:28:14
Done.
|
+ LOG(FATAL) << "Failed to generate ONC properties for " |
+ << credential.ToString(); |
+ } |
+ GetManagedNetworkConfigurationHandler() |
+ ->CreateConfiguration( |
+ ChromeOsUserHashForBrowserContext(*profile), |
+ *onc_properties, |
+ ::chromeos::network_handler::StringResultCallback(), |
+ base::Bind(LogCreateConfigurationFailure, |
+ base::StringPrintf("Failed to add credential %s", |
+ credential.ToString().c_str()))); |
+} |
+ |
WifiCredentialSet GetWifiCredentialsForProfileChromeOs(const Profile* profile) { |
DCHECK(profile); |
return wifi_sync::GetWifiCredentialsForShillProfile( |
GetNetworkStateHandler(), ShillProfilePathForBrowserContext(*profile)); |
} |
+} // namespace chromeos |
+ |
} // namespace wifi_credentials_helper |