OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/wifi_sync/wifi_credential.h" | 5 #include "components/wifi_sync/wifi_credential.h" |
6 | 6 |
| 7 #include <memory> |
| 8 |
7 #include "base/logging.h" | 9 #include "base/logging.h" |
8 #include "base/values.h" | 10 #include "base/values.h" |
9 #include "components/onc/onc_constants.h" | 11 #include "components/onc/onc_constants.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
11 | 13 |
12 namespace wifi_sync { | 14 namespace wifi_sync { |
13 | 15 |
14 namespace { | 16 namespace { |
15 | 17 |
16 const char kSsid[] = "fake-ssid"; | 18 const char kSsid[] = "fake-ssid"; |
17 const char kSsidNonUtf8[] = "\xc0"; | 19 const char kSsidNonUtf8[] = "\xc0"; |
18 const char kPassphraseWep[] = "abcde"; | 20 const char kPassphraseWep[] = "abcde"; |
19 const char kPassphraseWepNonUtf8[] = "\xc0\xc0\xc0\xc0\xc0"; | 21 const char kPassphraseWepNonUtf8[] = "\xc0\xc0\xc0\xc0\xc0"; |
20 const char kPassphrasePsk[] = "fake-psk-passphrase"; | 22 const char kPassphrasePsk[] = "fake-psk-passphrase"; |
21 const char kPassphrase8021X[] = "fake-8021X-passphrase"; | 23 const char kPassphrase8021X[] = "fake-8021X-passphrase"; |
22 | 24 |
23 WifiCredential MakeCredential(const std::string& ssid, | 25 WifiCredential MakeCredential(const std::string& ssid, |
24 WifiSecurityClass security_class, | 26 WifiSecurityClass security_class, |
25 const std::string& passphrase) { | 27 const std::string& passphrase) { |
26 scoped_ptr<WifiCredential> credential = | 28 std::unique_ptr<WifiCredential> credential = WifiCredential::Create( |
27 WifiCredential::Create( | 29 WifiCredential::MakeSsidBytesForTest(ssid), security_class, passphrase); |
28 WifiCredential::MakeSsidBytesForTest(ssid), | |
29 security_class, | |
30 passphrase); | |
31 CHECK(credential); | 30 CHECK(credential); |
32 return *credential; | 31 return *credential; |
33 } | 32 } |
34 | 33 |
35 bool TypeIsWifi(const base::DictionaryValue& onc_properties) { | 34 bool TypeIsWifi(const base::DictionaryValue& onc_properties) { |
36 std::string network_type; | 35 std::string network_type; |
37 EXPECT_TRUE(onc_properties.GetString( | 36 EXPECT_TRUE(onc_properties.GetString( |
38 onc::toplevel_config::kType, &network_type)); | 37 onc::toplevel_config::kType, &network_type)); |
39 return network_type == onc::network_type::kWiFi; | 38 return network_type == onc::network_type::kWiFi; |
40 } | 39 } |
(...skipping 15 matching lines...) Expand all Loading... |
56 std::string GetPassphrase(const base::DictionaryValue& onc_properties) { | 55 std::string GetPassphrase(const base::DictionaryValue& onc_properties) { |
57 std::string passphrase; | 56 std::string passphrase; |
58 EXPECT_TRUE(onc_properties.GetString( | 57 EXPECT_TRUE(onc_properties.GetString( |
59 onc::network_config::WifiProperty(onc::wifi::kPassphrase), &passphrase)); | 58 onc::network_config::WifiProperty(onc::wifi::kPassphrase), &passphrase)); |
60 return passphrase; | 59 return passphrase; |
61 } | 60 } |
62 | 61 |
63 } // namespace | 62 } // namespace |
64 | 63 |
65 TEST(WifiCredentialTest, CreateWithSecurityClassInvalid) { | 64 TEST(WifiCredentialTest, CreateWithSecurityClassInvalid) { |
66 scoped_ptr<WifiCredential> credential = | 65 std::unique_ptr<WifiCredential> credential = WifiCredential::Create( |
67 WifiCredential::Create( | 66 WifiCredential::MakeSsidBytesForTest(kSsid), SECURITY_CLASS_INVALID, ""); |
68 WifiCredential::MakeSsidBytesForTest(kSsid), | |
69 SECURITY_CLASS_INVALID, | |
70 ""); | |
71 EXPECT_FALSE(credential); | 67 EXPECT_FALSE(credential); |
72 } | 68 } |
73 | 69 |
74 TEST(WifiCredentialTest, CreateWithPassphraseNonUtf8) { | 70 TEST(WifiCredentialTest, CreateWithPassphraseNonUtf8) { |
75 scoped_ptr<WifiCredential> credential = | 71 std::unique_ptr<WifiCredential> credential = |
76 WifiCredential::Create( | 72 WifiCredential::Create(WifiCredential::MakeSsidBytesForTest(kSsid), |
77 WifiCredential::MakeSsidBytesForTest(kSsid), | 73 SECURITY_CLASS_WEP, kPassphraseWepNonUtf8); |
78 SECURITY_CLASS_WEP, | |
79 kPassphraseWepNonUtf8); | |
80 EXPECT_FALSE(credential); | 74 EXPECT_FALSE(credential); |
81 } | 75 } |
82 | 76 |
83 TEST(WifiCredentialTest, ToOncPropertiesSecurityNone) { | 77 TEST(WifiCredentialTest, ToOncPropertiesSecurityNone) { |
84 const WifiCredential credential( | 78 const WifiCredential credential( |
85 MakeCredential(kSsid, SECURITY_CLASS_NONE, "")); | 79 MakeCredential(kSsid, SECURITY_CLASS_NONE, "")); |
86 scoped_ptr<base::DictionaryValue> onc_properties = | 80 std::unique_ptr<base::DictionaryValue> onc_properties = |
87 credential.ToOncProperties(); | 81 credential.ToOncProperties(); |
88 ASSERT_TRUE(onc_properties); | 82 ASSERT_TRUE(onc_properties); |
89 EXPECT_TRUE(TypeIsWifi(*onc_properties)); | 83 EXPECT_TRUE(TypeIsWifi(*onc_properties)); |
90 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); | 84 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); |
91 EXPECT_EQ(onc::wifi::kSecurityNone, GetOncSecurity(*onc_properties)); | 85 EXPECT_EQ(onc::wifi::kSecurityNone, GetOncSecurity(*onc_properties)); |
92 } | 86 } |
93 | 87 |
94 TEST(WifiCredentialTest, ToOncPropertiesSecurityWep) { | 88 TEST(WifiCredentialTest, ToOncPropertiesSecurityWep) { |
95 const WifiCredential credential( | 89 const WifiCredential credential( |
96 MakeCredential(kSsid, SECURITY_CLASS_WEP, kPassphraseWep)); | 90 MakeCredential(kSsid, SECURITY_CLASS_WEP, kPassphraseWep)); |
97 scoped_ptr<base::DictionaryValue> onc_properties = | 91 std::unique_ptr<base::DictionaryValue> onc_properties = |
98 credential.ToOncProperties(); | 92 credential.ToOncProperties(); |
99 ASSERT_TRUE(onc_properties); | 93 ASSERT_TRUE(onc_properties); |
100 EXPECT_TRUE(TypeIsWifi(*onc_properties)); | 94 EXPECT_TRUE(TypeIsWifi(*onc_properties)); |
101 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); | 95 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); |
102 EXPECT_EQ(onc::wifi::kWEP_PSK, GetOncSecurity(*onc_properties)); | 96 EXPECT_EQ(onc::wifi::kWEP_PSK, GetOncSecurity(*onc_properties)); |
103 EXPECT_EQ(kPassphraseWep, GetPassphrase(*onc_properties)); | 97 EXPECT_EQ(kPassphraseWep, GetPassphrase(*onc_properties)); |
104 } | 98 } |
105 | 99 |
106 TEST(WifiCredentialTest, ToOncPropertiesSecurityPsk) { | 100 TEST(WifiCredentialTest, ToOncPropertiesSecurityPsk) { |
107 const WifiCredential credential( | 101 const WifiCredential credential( |
108 MakeCredential(kSsid, SECURITY_CLASS_PSK, kPassphrasePsk)); | 102 MakeCredential(kSsid, SECURITY_CLASS_PSK, kPassphrasePsk)); |
109 scoped_ptr<base::DictionaryValue> onc_properties = | 103 std::unique_ptr<base::DictionaryValue> onc_properties = |
110 credential.ToOncProperties(); | 104 credential.ToOncProperties(); |
111 ASSERT_TRUE(onc_properties); | 105 ASSERT_TRUE(onc_properties); |
112 EXPECT_TRUE(TypeIsWifi(*onc_properties)); | 106 EXPECT_TRUE(TypeIsWifi(*onc_properties)); |
113 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); | 107 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); |
114 EXPECT_EQ(onc::wifi::kWPA_PSK, GetOncSecurity(*onc_properties)); | 108 EXPECT_EQ(onc::wifi::kWPA_PSK, GetOncSecurity(*onc_properties)); |
115 EXPECT_EQ(kPassphrasePsk, GetPassphrase(*onc_properties)); | 109 EXPECT_EQ(kPassphrasePsk, GetPassphrase(*onc_properties)); |
116 } | 110 } |
117 | 111 |
118 TEST(WifiCredentialTest, ToOncPropertiesSecurity8021X) { | 112 TEST(WifiCredentialTest, ToOncPropertiesSecurity8021X) { |
119 const WifiCredential credential( | 113 const WifiCredential credential( |
120 MakeCredential(kSsid, SECURITY_CLASS_802_1X, kPassphrase8021X)); | 114 MakeCredential(kSsid, SECURITY_CLASS_802_1X, kPassphrase8021X)); |
121 scoped_ptr<base::DictionaryValue> onc_properties = | 115 std::unique_ptr<base::DictionaryValue> onc_properties = |
122 credential.ToOncProperties(); | 116 credential.ToOncProperties(); |
123 ASSERT_TRUE(onc_properties); | 117 ASSERT_TRUE(onc_properties); |
124 EXPECT_TRUE(TypeIsWifi(*onc_properties)); | 118 EXPECT_TRUE(TypeIsWifi(*onc_properties)); |
125 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); | 119 EXPECT_EQ(kSsid, GetSsid(*onc_properties)); |
126 EXPECT_EQ(onc::wifi::kWPA_EAP, GetOncSecurity(*onc_properties)); | 120 EXPECT_EQ(onc::wifi::kWPA_EAP, GetOncSecurity(*onc_properties)); |
127 EXPECT_EQ(kPassphrase8021X, GetPassphrase(*onc_properties)); | 121 EXPECT_EQ(kPassphrase8021X, GetPassphrase(*onc_properties)); |
128 } | 122 } |
129 | 123 |
130 // TODO(quiche): Update this test, once ONC suports non-UTF-8 SSIDs. | 124 // TODO(quiche): Update this test, once ONC suports non-UTF-8 SSIDs. |
131 // crbug.com/432546. | 125 // crbug.com/432546. |
132 TEST(WifiCredentialTest, ToOncPropertiesSsidNonUtf8) { | 126 TEST(WifiCredentialTest, ToOncPropertiesSsidNonUtf8) { |
133 const WifiCredential credential( | 127 const WifiCredential credential( |
134 MakeCredential(kSsidNonUtf8, SECURITY_CLASS_NONE, "")); | 128 MakeCredential(kSsidNonUtf8, SECURITY_CLASS_NONE, "")); |
135 scoped_ptr<base::DictionaryValue> onc_properties = | 129 std::unique_ptr<base::DictionaryValue> onc_properties = |
136 credential.ToOncProperties(); | 130 credential.ToOncProperties(); |
137 EXPECT_FALSE(onc_properties); | 131 EXPECT_FALSE(onc_properties); |
138 } | 132 } |
139 | 133 |
140 } // namespace wifi_sync | 134 } // namespace wifi_sync |
OLD | NEW |