Chromium Code Reviews| Index: components/wifi_sync/wifi_credential_unittest.cc |
| diff --git a/components/wifi_sync/wifi_credential_unittest.cc b/components/wifi_sync/wifi_credential_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..445a486ff7a3d1527e888aff23ad4feae85d7d32 |
| --- /dev/null |
| +++ b/components/wifi_sync/wifi_credential_unittest.cc |
| @@ -0,0 +1,105 @@ |
| +// Copyright 2015 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 "components/wifi_sync/wifi_credential.h" |
| + |
| +#include "base/values.h" |
| +#include "components/onc/onc_constants.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace wifi_sync { |
| + |
| +WifiCredential MakeCredential(const std::string& ssid, |
| + WifiSecurityClass security_class, |
| + const std::string& passphrase) { |
| + return WifiCredential( |
| + WifiCredential::MakeSsidBytes(ssid), security_class, passphrase); |
| +} |
|
stevenjb
2015/01/08 17:27:51
nit: helper functions should be in a local namespa
erikwright (departed)
2015/01/08 19:27:08
by which he means anonymous.
mukesh agrawal
2015/01/09 02:00:18
Done.
mukesh agrawal
2015/01/09 02:00:18
Done.
|
| + |
| +bool TypeIsWifi(const base::DictionaryValue& onc_properties) { |
| + std::string network_type; |
| + EXPECT_TRUE(onc_properties.GetString( |
| + onc::toplevel_config::kType, &network_type)); |
| + return network_type == onc::network_type::kWiFi; |
| +} |
| + |
| +std::string GetSsid(const base::DictionaryValue& onc_properties) { |
| + std::string ssid; |
| + EXPECT_TRUE(onc_properties.GetString( |
| + onc::network_config::WifiProperty(onc::wifi::kSSID), &ssid)); |
| + return ssid; |
| +} |
| + |
| +std::string GetOncSecurity(const base::DictionaryValue& onc_properties) { |
| + std::string onc_security; |
| + EXPECT_TRUE(onc_properties.GetString( |
| + onc::network_config::WifiProperty(onc::wifi::kSecurity), &onc_security)); |
| + return onc_security; |
| +} |
| + |
| +std::string GetPassphrase(const base::DictionaryValue& onc_properties) { |
| + std::string passphrase; |
| + EXPECT_TRUE(onc_properties.GetString( |
| + onc::network_config::WifiProperty(onc::wifi::kPassphrase), &passphrase)); |
| + return passphrase; |
| +} |
| + |
| +TEST(WifiCredentialTest, ToOncPropertiesSecurityNone) { |
| + const auto kCredential(MakeCredential("fake-ssid", SECURITY_CLASS_NONE, "")); |
|
stevenjb
2015/01/08 17:27:51
nit: use a const string for repeated strings here
erikwright (departed)
2015/01/08 19:27:08
not a valid use of auto.
"Use auto to avoid type
mukesh agrawal
2015/01/09 02:00:18
Done.
mukesh agrawal
2015/01/09 02:00:18
Done.
|
| + base::DictionaryValue onc_properties; |
| + EXPECT_TRUE(kCredential.ToOncProperties(&onc_properties)); |
| + EXPECT_TRUE(TypeIsWifi(onc_properties)); |
| + EXPECT_EQ("fake-ssid", GetSsid(onc_properties)); |
| + EXPECT_EQ(onc::wifi::kSecurityNone, GetOncSecurity(onc_properties)); |
| +} |
| + |
| +TEST(WifiCredntialTest, ToOncPropertiesSecurityWep) { |
| + const auto kCredential( |
| + MakeCredential("fake-ssid", SECURITY_CLASS_WEP, "abcde")); |
| + base::DictionaryValue onc_properties; |
| + EXPECT_TRUE(kCredential.ToOncProperties(&onc_properties)); |
| + EXPECT_TRUE(TypeIsWifi(onc_properties)); |
| + EXPECT_EQ("fake-ssid", GetSsid(onc_properties)); |
| + EXPECT_EQ(onc::wifi::kWEP_PSK, GetOncSecurity(onc_properties)); |
| + EXPECT_EQ("abcde", GetPassphrase(onc_properties)); |
| +} |
| + |
| +TEST(WifiCredentialTest, ToOncPropertiesSecurityPsk) { |
| + const auto kCredential( |
| + MakeCredential("fake-ssid", SECURITY_CLASS_PSK, "fake-passphrase")); |
| + base::DictionaryValue onc_properties; |
| + EXPECT_TRUE(kCredential.ToOncProperties(&onc_properties)); |
| + EXPECT_TRUE(TypeIsWifi(onc_properties)); |
| + EXPECT_EQ("fake-ssid", GetSsid(onc_properties)); |
| + EXPECT_EQ(onc::wifi::kWPA_PSK, GetOncSecurity(onc_properties)); |
| + EXPECT_EQ("fake-passphrase", GetPassphrase(onc_properties)); |
| +} |
| + |
| +TEST(WifiCredentialTest, ToOncPropertiesSecurity8021X) { |
| + const auto kCredential( |
| + MakeCredential("fake-ssid", SECURITY_CLASS_802_1X, "fake-passphrase")); |
| + base::DictionaryValue onc_properties; |
| + EXPECT_TRUE(kCredential.ToOncProperties(&onc_properties)); |
| + EXPECT_TRUE(TypeIsWifi(onc_properties)); |
| + EXPECT_EQ("fake-ssid", GetSsid(onc_properties)); |
| + EXPECT_EQ(onc::wifi::kWPA_EAP, GetOncSecurity(onc_properties)); |
| + EXPECT_EQ("fake-passphrase", GetPassphrase(onc_properties)); |
| +} |
| + |
| +TEST(WifiCredentialTest, ToOncPropertiesSecurityInvalid) { |
| + const auto kCredential( |
| + MakeCredential("fake-ssid", SECURITY_CLASS_INVALID, "fake-passphrase")); |
| + base::DictionaryValue onc_properties; |
| + EXPECT_FALSE(kCredential.ToOncProperties(&onc_properties)); |
| + EXPECT_TRUE(onc_properties.empty()); |
| +} |
| + |
| +TEST(WifiCredentialTest, ToOncPropertiesSsidNonUtf8) { |
| + const auto kCredential(MakeCredential("\xc0", SECURITY_CLASS_NONE, "")); |
| + base::DictionaryValue onc_properties; |
| + EXPECT_FALSE(kCredential.ToOncProperties(&onc_properties)); |
| + EXPECT_TRUE(onc_properties.empty()); |
| +} |
| + |
| +} // namespace wifi_sync |