Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(140)

Unified Diff: components/wifi_sync/wifi_credential_unittest.cc

Issue 809803005: wifi_sync: add ability to convert WifiCredential to onc properties (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@submit-4.0-wifi-security-class
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« components/wifi_sync/wifi_credential.cc ('K') | « components/wifi_sync/wifi_credential.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698