OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/cros/onc_network_parser.h" | 5 #include "chrome/browser/chromeos/cros/onc_network_parser.h" |
6 | 6 |
7 #include <cert.h> | 7 #include <cert.h> |
8 #include <keyhi.h> | 8 #include <keyhi.h> |
9 #include <pk11pub.h> | 9 #include <pk11pub.h> |
10 | 10 |
11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
12 #include "base/json/json_reader.h" | 12 #include "base/json/json_reader.h" |
13 #include "base/json/json_string_value_serializer.h" | 13 #include "base/json/json_string_value_serializer.h" |
14 #include "base/lazy_instance.h" | 14 #include "base/lazy_instance.h" |
15 #include "base/message_loop.h" | 15 #include "base/message_loop.h" |
16 #include "base/path_service.h" | 16 #include "base/path_service.h" |
17 #include "base/stringprintf.h" | 17 #include "base/stringprintf.h" |
18 #include "base/threading/thread_restrictions.h" | 18 #include "base/threading/thread_restrictions.h" |
19 #include "base/values.h" | 19 #include "base/values.h" |
20 #include "chrome/browser/chromeos/cros/certificate_pattern.h" | 20 #include "chrome/browser/chromeos/cros/certificate_pattern.h" |
21 #include "chrome/browser/chromeos/cros/cros_library.h" | 21 #include "chrome/browser/chromeos/cros/cros_library.h" |
22 #include "chrome/browser/chromeos/cros/network_library.h" | 22 #include "chrome/browser/chromeos/cros/network_library.h" |
23 #include "chrome/browser/chromeos/cros/onc_constants.h" | |
24 #include "chrome/browser/chromeos/login/mock_user_manager.h" | 23 #include "chrome/browser/chromeos/login/mock_user_manager.h" |
25 #include "chrome/browser/chromeos/network_settings/onc_utils.h" | |
26 #include "chrome/browser/net/pref_proxy_config_tracker_impl.h" | 24 #include "chrome/browser/net/pref_proxy_config_tracker_impl.h" |
27 #include "chrome/common/chrome_paths.h" | 25 #include "chrome/common/chrome_paths.h" |
28 #include "chrome/common/net/x509_certificate_model.h" | 26 #include "chrome/common/net/x509_certificate_model.h" |
29 #include "chrome/test/base/testing_browser_process.h" | 27 #include "chrome/test/base/testing_browser_process.h" |
30 #include "chrome/test/base/testing_pref_service.h" | 28 #include "chrome/test/base/testing_pref_service.h" |
31 #include "chromeos/dbus/dbus_thread_manager.h" | 29 #include "chromeos/dbus/dbus_thread_manager.h" |
| 30 #include "chromeos/network/onc/onc_constants.h" |
| 31 #include "chromeos/network/onc/onc_utils.h" |
32 #include "content/public/test/test_browser_thread.h" | 32 #include "content/public/test/test_browser_thread.h" |
33 #include "crypto/nss_util.h" | 33 #include "crypto/nss_util.h" |
34 #include "net/base/cert_type.h" | 34 #include "net/base/cert_type.h" |
35 #include "net/base/crypto_module.h" | 35 #include "net/base/crypto_module.h" |
36 #include "net/base/nss_cert_database.h" | 36 #include "net/base/nss_cert_database.h" |
37 #include "net/base/x509_certificate.h" | 37 #include "net/base/x509_certificate.h" |
38 #include "net/proxy/proxy_config.h" | 38 #include "net/proxy/proxy_config.h" |
39 #include "testing/gtest/include/gtest/gtest.h" | 39 #include "testing/gtest/include/gtest/gtest.h" |
40 #include "third_party/cros_system_api/dbus/service_constants.h" | 40 #include "third_party/cros_system_api/dbus/service_constants.h" |
41 | 41 |
(...skipping 28 matching lines...) Expand all Loading... |
70 } | 70 } |
71 | 71 |
72 virtual void TearDown() { | 72 virtual void TearDown() { |
73 EXPECT_TRUE(CleanupSlotContents(slot_->os_module_handle())); | 73 EXPECT_TRUE(CleanupSlotContents(slot_->os_module_handle())); |
74 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); | 74 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); |
75 } | 75 } |
76 | 76 |
77 virtual scoped_ptr<base::ListValue> ReadNetworkConfigs( | 77 virtual scoped_ptr<base::ListValue> ReadNetworkConfigs( |
78 const std::string& filename) { | 78 const std::string& filename) { |
79 FilePath path; | 79 FilePath path; |
80 std::string error; | |
81 PathService::Get(chrome::DIR_TEST_DATA, &path); | 80 PathService::Get(chrome::DIR_TEST_DATA, &path); |
82 path = path.AppendASCII("chromeos").AppendASCII("cros").Append(filename); | 81 path = path.AppendASCII("chromeos").AppendASCII("cros").Append(filename); |
83 CHECK(file_util::PathExists(path)) | 82 CHECK(file_util::PathExists(path)) |
84 << "Couldn't find test data file " << path.value(); | 83 << "Couldn't find test data file " << path.value(); |
85 std::string contents; | 84 std::string contents; |
86 CHECK(file_util::ReadFileToString(path, &contents)) | 85 CHECK(file_util::ReadFileToString(path, &contents)) |
87 << "Unable to read test data file " << path.value(); | 86 << "Unable to read test data file " << path.value(); |
88 | 87 |
89 scoped_ptr<base::DictionaryValue> root = | 88 scoped_ptr<base::DictionaryValue> root = |
90 onc::ReadDictionaryFromJson(contents, &error); | 89 onc::ReadDictionaryFromJson(contents); |
91 CHECK(root.get() != NULL) << "ONC is not a valid json dictionary: " | 90 CHECK(root.get() != NULL) << "ONC is not a valid JSON dictionary."; |
92 << error; | |
93 | 91 |
94 base::ListValue* network_configs; | 92 base::ListValue* network_configs; |
95 CHECK(root->GetListWithoutPathExpansion(onc::kNetworkConfigurations, | 93 CHECK(root->GetListWithoutPathExpansion(onc::kNetworkConfigurations, |
96 &network_configs)); | 94 &network_configs)); |
97 return make_scoped_ptr(network_configs->DeepCopy()); | 95 return make_scoped_ptr(network_configs->DeepCopy()); |
98 } | 96 } |
99 | 97 |
100 const base::Value* GetExpectedProperty(const Network* network, | 98 const base::Value* GetExpectedProperty(const Network* network, |
101 PropertyIndex index, | 99 PropertyIndex index, |
102 base::Value::Type expected_type); | 100 base::Value::Type expected_type); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 bool bool_value = false; | 182 bool bool_value = false; |
185 value->GetAsBoolean(&bool_value); | 183 value->GetAsBoolean(&bool_value); |
186 EXPECT_EQ(expected, bool_value); | 184 EXPECT_EQ(expected, bool_value); |
187 } | 185 } |
188 | 186 |
189 void OncNetworkParserTest::TestProxySettings(const std::string filename, | 187 void OncNetworkParserTest::TestProxySettings(const std::string filename, |
190 net::ProxyConfig* net_config) { | 188 net::ProxyConfig* net_config) { |
191 // Parse Network Configuration including ProxySettings dictionary. | 189 // Parse Network Configuration including ProxySettings dictionary. |
192 scoped_ptr<base::ListValue> network_configs = ReadNetworkConfigs(filename); | 190 scoped_ptr<base::ListValue> network_configs = ReadNetworkConfigs(filename); |
193 OncNetworkParser parser(*network_configs, | 191 OncNetworkParser parser(*network_configs, |
194 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 192 onc::ONC_SOURCE_USER_IMPORT); |
195 | 193 |
196 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 194 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
197 ASSERT_TRUE(network.get()); | 195 ASSERT_TRUE(network.get()); |
198 EXPECT_FALSE(network->proxy_config().empty()); | 196 EXPECT_FALSE(network->proxy_config().empty()); |
199 | 197 |
200 // Deserialize ProxyConfig string property of Network into | 198 // Deserialize ProxyConfig string property of Network into |
201 // ProxyConfigDictionary and decode into net::ProxyConfig. | 199 // ProxyConfigDictionary and decode into net::ProxyConfig. |
202 JSONStringValueSerializer serializer(network->proxy_config()); | 200 JSONStringValueSerializer serializer(network->proxy_config()); |
203 scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); | 201 scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); |
204 ASSERT_TRUE(value.get()); | 202 ASSERT_TRUE(value.get()); |
205 EXPECT_TRUE(value->GetType() == Value::TYPE_DICTIONARY); | 203 EXPECT_TRUE(value->GetType() == Value::TYPE_DICTIONARY); |
206 DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); | 204 DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); |
207 ProxyConfigDictionary proxy_dict(dict); | 205 ProxyConfigDictionary proxy_dict(dict); |
208 EXPECT_TRUE(PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, | 206 EXPECT_TRUE(PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, |
209 net_config)); | 207 net_config)); |
210 } | 208 } |
211 | 209 |
212 TEST_F(OncNetworkParserTest, TestCreateNetworkWifi) { | 210 TEST_F(OncNetworkParserTest, TestCreateNetworkWifi) { |
213 scoped_ptr<base::ListValue> network_configs = | 211 scoped_ptr<base::ListValue> network_configs = |
214 ReadNetworkConfigs("network-wifi.onc"); | 212 ReadNetworkConfigs("network-wifi.onc"); |
215 OncNetworkParser parser(*network_configs, | 213 OncNetworkParser parser(*network_configs, |
216 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 214 onc::ONC_SOURCE_USER_IMPORT); |
217 | 215 |
218 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 216 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
219 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 217 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
220 ASSERT_TRUE(network.get()); | 218 ASSERT_TRUE(network.get()); |
221 | 219 |
222 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 220 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
223 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 221 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
224 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); | 222 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); |
225 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurityWep); | 223 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurityWep); |
226 EXPECT_EQ("ssid", wifi->name()); | 224 EXPECT_EQ("ssid", wifi->name()); |
227 CheckStringProperty(wifi, PROPERTY_INDEX_SSID, "ssid"); | 225 CheckStringProperty(wifi, PROPERTY_INDEX_SSID, "ssid"); |
228 EXPECT_FALSE(wifi->auto_connect()); | 226 EXPECT_FALSE(wifi->auto_connect()); |
229 EXPECT_EQ("0x1234567890", wifi->passphrase()); | 227 EXPECT_EQ("0x1234567890", wifi->passphrase()); |
230 CheckStringProperty(wifi, PROPERTY_INDEX_PASSPHRASE, "0x1234567890"); | 228 CheckStringProperty(wifi, PROPERTY_INDEX_PASSPHRASE, "0x1234567890"); |
231 } | 229 } |
232 | 230 |
233 TEST_F(OncNetworkParserTest, TestCreateNetworkEthernet) { | 231 TEST_F(OncNetworkParserTest, TestCreateNetworkEthernet) { |
234 scoped_ptr<base::ListValue> network_configs = | 232 scoped_ptr<base::ListValue> network_configs = |
235 ReadNetworkConfigs("network-ethernet.onc"); | 233 ReadNetworkConfigs("network-ethernet.onc"); |
236 OncNetworkParser parser(*network_configs, | 234 OncNetworkParser parser(*network_configs, |
237 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 235 onc::ONC_SOURCE_USER_IMPORT); |
238 | 236 |
239 EXPECT_GE(parser.GetNetworkConfigsSize(), 1); | 237 EXPECT_GE(parser.GetNetworkConfigsSize(), 1); |
240 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 238 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
241 ASSERT_TRUE(network.get()); | 239 ASSERT_TRUE(network.get()); |
242 | 240 |
243 EXPECT_EQ(chromeos::TYPE_ETHERNET, network->type()); | 241 EXPECT_EQ(chromeos::TYPE_ETHERNET, network->type()); |
244 EthernetNetwork* ethernet = static_cast<EthernetNetwork*>(network.get()); | 242 EthernetNetwork* ethernet = static_cast<EthernetNetwork*>(network.get()); |
245 EXPECT_EQ(ethernet->unique_id(), "{485d6076-dd44-6b6d-69787465725f5045}"); | 243 EXPECT_EQ(ethernet->unique_id(), "{485d6076-dd44-6b6d-69787465725f5045}"); |
246 } | 244 } |
247 | 245 |
248 TEST_F(OncNetworkParserTest, TestLoadWifiCertificatePattern) { | 246 TEST_F(OncNetworkParserTest, TestLoadWifiCertificatePattern) { |
249 scoped_ptr<base::ListValue> network_configs = | 247 scoped_ptr<base::ListValue> network_configs = |
250 ReadNetworkConfigs("cert-pattern.onc"); | 248 ReadNetworkConfigs("cert-pattern.onc"); |
251 OncNetworkParser parser(*network_configs, | 249 OncNetworkParser parser(*network_configs, |
252 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 250 onc::ONC_SOURCE_USER_IMPORT); |
253 ASSERT_TRUE(parser.parse_error().empty()); | 251 ASSERT_TRUE(parser.parse_error().empty()); |
254 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 252 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
255 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 253 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
256 ASSERT_TRUE(network.get()); | 254 ASSERT_TRUE(network.get()); |
257 | 255 |
258 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 256 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
259 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 257 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
260 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 258 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
261 EXPECT_EQ("WirelessNetwork", wifi->name()); | 259 EXPECT_EQ("WirelessNetwork", wifi->name()); |
262 EXPECT_FALSE(wifi->auto_connect()); | 260 EXPECT_FALSE(wifi->auto_connect()); |
263 EXPECT_EQ("", wifi->passphrase()); | 261 EXPECT_EQ("", wifi->passphrase()); |
264 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); | 262 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); |
265 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); | 263 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); |
266 EXPECT_EQ("Google, Inc.", | 264 EXPECT_EQ("Google, Inc.", |
267 wifi->client_cert_pattern().issuer().organization()); | 265 wifi->client_cert_pattern().issuer().organization()); |
268 ASSERT_EQ(2ul, wifi->client_cert_pattern().enrollment_uri_list().size()); | 266 ASSERT_EQ(2ul, wifi->client_cert_pattern().enrollment_uri_list().size()); |
269 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", | 267 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", |
270 wifi->client_cert_pattern().enrollment_uri_list()[0]); | 268 wifi->client_cert_pattern().enrollment_uri_list()[0]); |
271 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", | 269 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", |
272 wifi->client_cert_pattern().enrollment_uri_list()[1]); | 270 wifi->client_cert_pattern().enrollment_uri_list()[1]); |
273 } | 271 } |
274 | 272 |
275 | 273 |
276 TEST_F(OncNetworkParserTest, TestLoadVPNCertificatePattern) { | 274 TEST_F(OncNetworkParserTest, TestLoadVPNCertificatePattern) { |
277 scoped_ptr<base::ListValue> network_configs = | 275 scoped_ptr<base::ListValue> network_configs = |
278 ReadNetworkConfigs("cert-pattern-vpn.onc"); | 276 ReadNetworkConfigs("cert-pattern-vpn.onc"); |
279 OncNetworkParser parser(*network_configs, | 277 OncNetworkParser parser(*network_configs, |
280 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 278 onc::ONC_SOURCE_USER_IMPORT); |
281 ASSERT_TRUE(parser.parse_error().empty()); | 279 ASSERT_TRUE(parser.parse_error().empty()); |
282 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 280 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
283 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 281 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
284 ASSERT_TRUE(network.get()); | 282 ASSERT_TRUE(network.get()); |
285 | 283 |
286 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); | 284 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); |
287 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); | 285 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); |
288 EXPECT_EQ("MyVPN", vpn->name()); | 286 EXPECT_EQ("MyVPN", vpn->name()); |
289 EXPECT_FALSE(vpn->auto_connect()); | 287 EXPECT_FALSE(vpn->auto_connect()); |
290 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, vpn->client_cert_type()); | 288 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, vpn->client_cert_type()); |
291 EXPECT_EQ("Google, Inc.", | 289 EXPECT_EQ("Google, Inc.", |
292 vpn->client_cert_pattern().issuer().organization()); | 290 vpn->client_cert_pattern().issuer().organization()); |
293 ASSERT_EQ(2ul, vpn->client_cert_pattern().enrollment_uri_list().size()); | 291 ASSERT_EQ(2ul, vpn->client_cert_pattern().enrollment_uri_list().size()); |
294 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", | 292 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", |
295 vpn->client_cert_pattern().enrollment_uri_list()[0]); | 293 vpn->client_cert_pattern().enrollment_uri_list()[0]); |
296 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", | 294 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", |
297 vpn->client_cert_pattern().enrollment_uri_list()[1]); | 295 vpn->client_cert_pattern().enrollment_uri_list()[1]); |
298 } | 296 } |
299 | 297 |
300 TEST_F(OncNetworkParserTest, TestNoCertificatePatternForDevicePolicy) { | 298 TEST_F(OncNetworkParserTest, TestNoCertificatePatternForDevicePolicy) { |
301 scoped_ptr<base::ListValue> network_configs = | 299 scoped_ptr<base::ListValue> network_configs = |
302 ReadNetworkConfigs("cert-pattern.onc"); | 300 ReadNetworkConfigs("cert-pattern.onc"); |
303 OncNetworkParser parser(*network_configs, | 301 OncNetworkParser parser(*network_configs, |
304 NetworkUIData::ONC_SOURCE_DEVICE_POLICY); | 302 onc::ONC_SOURCE_DEVICE_POLICY); |
305 | 303 |
306 // Make sure we fail when parsing a certificate pattern from a device policy | 304 // Make sure we fail when parsing a certificate pattern from a device policy |
307 // ONC file. | 305 // ONC file. |
308 ASSERT_TRUE(parser.parse_error().empty()); | 306 ASSERT_TRUE(parser.parse_error().empty()); |
309 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 307 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
310 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 308 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
311 ASSERT_TRUE(network.get()); | 309 ASSERT_TRUE(network.get()); |
312 | 310 |
313 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 311 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
314 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 312 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
315 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 313 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
316 EXPECT_EQ("WirelessNetwork", wifi->name()); | 314 EXPECT_EQ("WirelessNetwork", wifi->name()); |
317 EXPECT_FALSE(wifi->auto_connect()); | 315 EXPECT_FALSE(wifi->auto_connect()); |
318 EXPECT_EQ("", wifi->passphrase()); | 316 EXPECT_EQ("", wifi->passphrase()); |
319 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); | 317 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); |
320 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); | 318 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); |
321 EXPECT_EQ("", wifi->client_cert_pattern().issuer().organization()); | 319 EXPECT_EQ("", wifi->client_cert_pattern().issuer().organization()); |
322 ASSERT_EQ(0ul, wifi->client_cert_pattern().enrollment_uri_list().size()); | 320 ASSERT_EQ(0ul, wifi->client_cert_pattern().enrollment_uri_list().size()); |
323 } | 321 } |
324 | 322 |
325 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP1) { | 323 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP1) { |
326 scoped_ptr<base::ListValue> network_configs = | 324 scoped_ptr<base::ListValue> network_configs = |
327 ReadNetworkConfigs("network-wifi-eap1.onc"); | 325 ReadNetworkConfigs("network-wifi-eap1.onc"); |
328 OncNetworkParser parser(*network_configs, | 326 OncNetworkParser parser(*network_configs, |
329 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 327 onc::ONC_SOURCE_USER_IMPORT); |
330 | 328 |
331 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 329 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
332 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 330 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
333 ASSERT_TRUE(network.get()); | 331 ASSERT_TRUE(network.get()); |
334 | 332 |
335 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 333 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
336 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 334 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
337 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 335 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
338 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurity8021x); | 336 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurity8021x); |
339 EXPECT_EQ("ssid", wifi->name()); | 337 EXPECT_EQ("ssid", wifi->name()); |
340 EXPECT_EQ(true, wifi->auto_connect()); | 338 EXPECT_EQ(true, wifi->auto_connect()); |
341 CheckBooleanProperty(wifi, PROPERTY_INDEX_AUTO_CONNECT, true); | 339 CheckBooleanProperty(wifi, PROPERTY_INDEX_AUTO_CONNECT, true); |
342 EXPECT_EQ(EAP_METHOD_PEAP, wifi->eap_method()); | 340 EXPECT_EQ(EAP_METHOD_PEAP, wifi->eap_method()); |
343 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_METHOD, | 341 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_METHOD, |
344 flimflam::kEapMethodPEAP); | 342 flimflam::kEapMethodPEAP); |
345 EXPECT_FALSE(wifi->eap_use_system_cas()); | 343 EXPECT_FALSE(wifi->eap_use_system_cas()); |
346 } | 344 } |
347 | 345 |
348 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP2) { | 346 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP2) { |
349 scoped_ptr<base::ListValue> network_configs = | 347 scoped_ptr<base::ListValue> network_configs = |
350 ReadNetworkConfigs("network-wifi-eap2.onc"); | 348 ReadNetworkConfigs("network-wifi-eap2.onc"); |
351 OncNetworkParser parser(*network_configs, | 349 OncNetworkParser parser(*network_configs, |
352 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 350 onc::ONC_SOURCE_USER_IMPORT); |
353 | 351 |
354 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 352 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
355 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 353 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
356 ASSERT_TRUE(network.get()); | 354 ASSERT_TRUE(network.get()); |
357 | 355 |
358 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 356 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
359 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 357 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
360 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 358 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
361 EXPECT_EQ("ssid", wifi->name()); | 359 EXPECT_EQ("ssid", wifi->name()); |
362 EXPECT_FALSE(wifi->auto_connect()); | 360 EXPECT_FALSE(wifi->auto_connect()); |
363 EXPECT_EQ(EAP_METHOD_LEAP, wifi->eap_method()); | 361 EXPECT_EQ(EAP_METHOD_LEAP, wifi->eap_method()); |
364 EXPECT_EQ(true, wifi->eap_use_system_cas()); | 362 EXPECT_EQ(true, wifi->eap_use_system_cas()); |
365 EXPECT_EQ("user", wifi->eap_identity()); | 363 EXPECT_EQ("user", wifi->eap_identity()); |
366 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_IDENTITY, "user"); | 364 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_IDENTITY, "user"); |
367 EXPECT_EQ("pass", wifi->eap_passphrase()); | 365 EXPECT_EQ("pass", wifi->eap_passphrase()); |
368 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_PASSWORD, "pass"); | 366 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_PASSWORD, "pass"); |
369 EXPECT_EQ("anon", wifi->eap_anonymous_identity()); | 367 EXPECT_EQ("anon", wifi->eap_anonymous_identity()); |
370 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY, "anon"); | 368 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY, "anon"); |
371 } | 369 } |
372 | 370 |
373 TEST_F(OncNetworkParserTest, TestCreateNetworkUnknownFields) { | 371 TEST_F(OncNetworkParserTest, TestCreateNetworkUnknownFields) { |
374 scoped_ptr<base::ListValue> network_configs = | 372 scoped_ptr<base::ListValue> network_configs = |
375 ReadNetworkConfigs("network-unknown-fields.onc"); | 373 ReadNetworkConfigs("network-unknown-fields.onc"); |
376 OncNetworkParser parser(*network_configs, | 374 OncNetworkParser parser(*network_configs, |
377 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 375 onc::ONC_SOURCE_USER_IMPORT); |
378 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 376 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
379 ASSERT_TRUE(network.get()); | 377 ASSERT_TRUE(network.get()); |
380 | 378 |
381 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 379 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
382 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 380 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
383 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); | 381 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); |
384 EXPECT_EQ("ssid", wifi->name()); | 382 EXPECT_EQ("ssid", wifi->name()); |
385 EXPECT_EQ("z123456789012", wifi->passphrase()); | 383 EXPECT_EQ("z123456789012", wifi->passphrase()); |
386 } | 384 } |
387 | 385 |
388 TEST_F(OncNetworkParserTest, TestCreateNetworkOpenVPN) { | 386 TEST_F(OncNetworkParserTest, TestCreateNetworkOpenVPN) { |
389 scoped_ptr<base::ListValue> network_configs = | 387 scoped_ptr<base::ListValue> network_configs = |
390 ReadNetworkConfigs("network-openvpn.onc"); | 388 ReadNetworkConfigs("network-openvpn.onc"); |
391 OncNetworkParser parser(*network_configs, | 389 OncNetworkParser parser(*network_configs, |
392 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 390 onc::ONC_SOURCE_USER_IMPORT); |
393 | 391 |
394 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 392 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
395 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 393 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
396 ASSERT_TRUE(network.get() != NULL); | 394 ASSERT_TRUE(network.get() != NULL); |
397 | 395 |
398 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); | 396 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); |
399 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); | 397 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); |
400 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); | 398 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); |
401 EXPECT_EQ("MyVPN", vpn->name()); | 399 EXPECT_EQ("MyVPN", vpn->name()); |
402 EXPECT_EQ(PROVIDER_TYPE_OPEN_VPN, vpn->provider_type()); | 400 EXPECT_EQ(PROVIDER_TYPE_OPEN_VPN, vpn->provider_type()); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 CheckStringProperty(vpn, PROPERTY_INDEX_OPEN_VPN_TLSREMOTE, | 438 CheckStringProperty(vpn, PROPERTY_INDEX_OPEN_VPN_TLSREMOTE, |
441 "MyOpenVPNServer"); | 439 "MyOpenVPNServer"); |
442 EXPECT_FALSE(vpn->save_credentials()); | 440 EXPECT_FALSE(vpn->save_credentials()); |
443 EXPECT_EQ("{55ca78f6-0842-4e1b-96a3-09a9e1a26ef5}", vpn->ca_cert_nss()); | 441 EXPECT_EQ("{55ca78f6-0842-4e1b-96a3-09a9e1a26ef5}", vpn->ca_cert_nss()); |
444 } | 442 } |
445 | 443 |
446 TEST_F(OncNetworkParserTest, TestCreateNetworkL2TPIPsec) { | 444 TEST_F(OncNetworkParserTest, TestCreateNetworkL2TPIPsec) { |
447 scoped_ptr<base::ListValue> network_configs = | 445 scoped_ptr<base::ListValue> network_configs = |
448 ReadNetworkConfigs("network-l2tp-ipsec.onc"); | 446 ReadNetworkConfigs("network-l2tp-ipsec.onc"); |
449 OncNetworkParser parser(*network_configs, | 447 OncNetworkParser parser(*network_configs, |
450 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 448 onc::ONC_SOURCE_USER_IMPORT); |
451 | 449 |
452 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 450 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
453 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 451 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
454 ASSERT_TRUE(network != NULL); | 452 ASSERT_TRUE(network != NULL); |
455 | 453 |
456 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); | 454 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); |
457 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); | 455 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); |
458 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); | 456 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); |
459 EXPECT_EQ("MyL2TPVPN", vpn->name()); | 457 EXPECT_EQ("MyL2TPVPN", vpn->name()); |
460 EXPECT_EQ(PROVIDER_TYPE_L2TP_IPSEC_PSK, vpn->provider_type()); | 458 EXPECT_EQ(PROVIDER_TYPE_L2TP_IPSEC_PSK, vpn->provider_type()); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 } | 539 } |
542 | 540 |
543 TEST(OncNetworkParserUserExpansionTest, GetUserExpandedValue) { | 541 TEST(OncNetworkParserUserExpansionTest, GetUserExpandedValue) { |
544 ScopedMockUserManagerEnabler mock_user_manager; | 542 ScopedMockUserManagerEnabler mock_user_manager; |
545 mock_user_manager.user_manager()->SetLoggedInUser("onc@example.com"); | 543 mock_user_manager.user_manager()->SetLoggedInUser("onc@example.com"); |
546 | 544 |
547 EXPECT_CALL(*mock_user_manager.user_manager(), IsUserLoggedIn()) | 545 EXPECT_CALL(*mock_user_manager.user_manager(), IsUserLoggedIn()) |
548 .Times(2) | 546 .Times(2) |
549 .WillRepeatedly(Return(false)); | 547 .WillRepeatedly(Return(false)); |
550 | 548 |
551 NetworkUIData::ONCSource source = NetworkUIData::ONC_SOURCE_USER_IMPORT; | 549 onc::ONCSource source = onc::ONC_SOURCE_USER_IMPORT; |
552 | 550 |
553 // Setup environment needed by UserManager. | 551 // Setup environment needed by UserManager. |
554 MessageLoop loop; | 552 MessageLoop loop; |
555 content::TestBrowserThread ui_thread(content::BrowserThread::UI, &loop); | 553 content::TestBrowserThread ui_thread(content::BrowserThread::UI, &loop); |
556 base::ShadowingAtExitManager at_exit_manager; | 554 base::ShadowingAtExitManager at_exit_manager; |
557 ScopedTestingLocalState local_state( | 555 ScopedTestingLocalState local_state( |
558 static_cast<TestingBrowserProcess*>(g_browser_process)); | 556 static_cast<TestingBrowserProcess*>(g_browser_process)); |
559 | 557 |
560 base::StringValue login_id_pattern("a ${LOGIN_ID} b"); | 558 base::StringValue login_id_pattern("a ${LOGIN_ID} b"); |
561 base::StringValue login_email_pattern("a ${LOGIN_EMAIL} b"); | 559 base::StringValue login_email_pattern("a ${LOGIN_EMAIL} b"); |
(...skipping 16 matching lines...) Expand all Loading... |
578 login_id_pattern, source)); | 576 login_id_pattern, source)); |
579 EXPECT_EQ("a onc@example.com b", | 577 EXPECT_EQ("a onc@example.com b", |
580 chromeos::OncNetworkParser::GetUserExpandedValue( | 578 chromeos::OncNetworkParser::GetUserExpandedValue( |
581 login_email_pattern, source)); | 579 login_email_pattern, source)); |
582 } | 580 } |
583 | 581 |
584 TEST_F(OncNetworkParserTest, TestRemoveNetworkWifi) { | 582 TEST_F(OncNetworkParserTest, TestRemoveNetworkWifi) { |
585 scoped_ptr<base::ListValue> network_configs = | 583 scoped_ptr<base::ListValue> network_configs = |
586 ReadNetworkConfigs("network-wifi-remove.onc"); | 584 ReadNetworkConfigs("network-wifi-remove.onc"); |
587 OncNetworkParser parser(*network_configs, | 585 OncNetworkParser parser(*network_configs, |
588 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 586 onc::ONC_SOURCE_USER_IMPORT); |
589 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 587 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
590 bool marked_for_removal = false; | 588 bool marked_for_removal = false; |
591 scoped_ptr<Network> network(parser.ParseNetwork(0, &marked_for_removal)); | 589 scoped_ptr<Network> network(parser.ParseNetwork(0, &marked_for_removal)); |
592 | 590 |
593 EXPECT_TRUE(marked_for_removal); | 591 EXPECT_TRUE(marked_for_removal); |
594 EXPECT_EQ("{485d6076-dd44-6b6d-69787465725f5045}", network->unique_id()); | 592 EXPECT_EQ("{485d6076-dd44-6b6d-69787465725f5045}", network->unique_id()); |
595 } | 593 } |
596 | 594 |
597 } // namespace chromeos | 595 } // namespace chromeos |
OLD | NEW |