| 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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 bool bool_value = false; | 184 bool bool_value = false; |
| 185 value->GetAsBoolean(&bool_value); | 185 value->GetAsBoolean(&bool_value); |
| 186 EXPECT_EQ(expected, bool_value); | 186 EXPECT_EQ(expected, bool_value); |
| 187 } | 187 } |
| 188 | 188 |
| 189 void OncNetworkParserTest::TestProxySettings(const std::string filename, | 189 void OncNetworkParserTest::TestProxySettings(const std::string filename, |
| 190 net::ProxyConfig* net_config) { | 190 net::ProxyConfig* net_config) { |
| 191 // Parse Network Configuration including ProxySettings dictionary. | 191 // Parse Network Configuration including ProxySettings dictionary. |
| 192 scoped_ptr<base::ListValue> network_configs = ReadNetworkConfigs(filename); | 192 scoped_ptr<base::ListValue> network_configs = ReadNetworkConfigs(filename); |
| 193 OncNetworkParser parser(*network_configs, | 193 OncNetworkParser parser(*network_configs, |
| 194 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 194 onc::ONC_SOURCE_USER_IMPORT); |
| 195 | 195 |
| 196 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 196 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 197 ASSERT_TRUE(network.get()); | 197 ASSERT_TRUE(network.get()); |
| 198 EXPECT_FALSE(network->proxy_config().empty()); | 198 EXPECT_FALSE(network->proxy_config().empty()); |
| 199 | 199 |
| 200 // Deserialize ProxyConfig string property of Network into | 200 // Deserialize ProxyConfig string property of Network into |
| 201 // ProxyConfigDictionary and decode into net::ProxyConfig. | 201 // ProxyConfigDictionary and decode into net::ProxyConfig. |
| 202 JSONStringValueSerializer serializer(network->proxy_config()); | 202 JSONStringValueSerializer serializer(network->proxy_config()); |
| 203 scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); | 203 scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); |
| 204 ASSERT_TRUE(value.get()); | 204 ASSERT_TRUE(value.get()); |
| 205 EXPECT_TRUE(value->GetType() == Value::TYPE_DICTIONARY); | 205 EXPECT_TRUE(value->GetType() == Value::TYPE_DICTIONARY); |
| 206 DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); | 206 DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); |
| 207 ProxyConfigDictionary proxy_dict(dict); | 207 ProxyConfigDictionary proxy_dict(dict); |
| 208 EXPECT_TRUE(PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, | 208 EXPECT_TRUE(PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, |
| 209 net_config)); | 209 net_config)); |
| 210 } | 210 } |
| 211 | 211 |
| 212 TEST_F(OncNetworkParserTest, TestCreateNetworkWifi) { | 212 TEST_F(OncNetworkParserTest, TestCreateNetworkWifi) { |
| 213 scoped_ptr<base::ListValue> network_configs = | 213 scoped_ptr<base::ListValue> network_configs = |
| 214 ReadNetworkConfigs("network-wifi.onc"); | 214 ReadNetworkConfigs("network-wifi.onc"); |
| 215 OncNetworkParser parser(*network_configs, | 215 OncNetworkParser parser(*network_configs, |
| 216 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 216 onc::ONC_SOURCE_USER_IMPORT); |
| 217 | 217 |
| 218 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 218 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 219 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 219 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 220 ASSERT_TRUE(network.get()); | 220 ASSERT_TRUE(network.get()); |
| 221 | 221 |
| 222 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 222 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
| 223 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 223 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
| 224 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); | 224 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); |
| 225 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurityWep); | 225 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurityWep); |
| 226 EXPECT_EQ("ssid", wifi->name()); | 226 EXPECT_EQ("ssid", wifi->name()); |
| 227 CheckStringProperty(wifi, PROPERTY_INDEX_SSID, "ssid"); | 227 CheckStringProperty(wifi, PROPERTY_INDEX_SSID, "ssid"); |
| 228 EXPECT_FALSE(wifi->auto_connect()); | 228 EXPECT_FALSE(wifi->auto_connect()); |
| 229 EXPECT_EQ("0x1234567890", wifi->passphrase()); | 229 EXPECT_EQ("0x1234567890", wifi->passphrase()); |
| 230 CheckStringProperty(wifi, PROPERTY_INDEX_PASSPHRASE, "0x1234567890"); | 230 CheckStringProperty(wifi, PROPERTY_INDEX_PASSPHRASE, "0x1234567890"); |
| 231 } | 231 } |
| 232 | 232 |
| 233 TEST_F(OncNetworkParserTest, TestCreateNetworkEthernet) { | 233 TEST_F(OncNetworkParserTest, TestCreateNetworkEthernet) { |
| 234 scoped_ptr<base::ListValue> network_configs = | 234 scoped_ptr<base::ListValue> network_configs = |
| 235 ReadNetworkConfigs("network-ethernet.onc"); | 235 ReadNetworkConfigs("network-ethernet.onc"); |
| 236 OncNetworkParser parser(*network_configs, | 236 OncNetworkParser parser(*network_configs, |
| 237 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 237 onc::ONC_SOURCE_USER_IMPORT); |
| 238 | 238 |
| 239 EXPECT_GE(parser.GetNetworkConfigsSize(), 1); | 239 EXPECT_GE(parser.GetNetworkConfigsSize(), 1); |
| 240 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 240 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 241 ASSERT_TRUE(network.get()); | 241 ASSERT_TRUE(network.get()); |
| 242 | 242 |
| 243 EXPECT_EQ(chromeos::TYPE_ETHERNET, network->type()); | 243 EXPECT_EQ(chromeos::TYPE_ETHERNET, network->type()); |
| 244 EthernetNetwork* ethernet = static_cast<EthernetNetwork*>(network.get()); | 244 EthernetNetwork* ethernet = static_cast<EthernetNetwork*>(network.get()); |
| 245 EXPECT_EQ(ethernet->unique_id(), "{485d6076-dd44-6b6d-69787465725f5045}"); | 245 EXPECT_EQ(ethernet->unique_id(), "{485d6076-dd44-6b6d-69787465725f5045}"); |
| 246 } | 246 } |
| 247 | 247 |
| 248 TEST_F(OncNetworkParserTest, TestLoadWifiCertificatePattern) { | 248 TEST_F(OncNetworkParserTest, TestLoadWifiCertificatePattern) { |
| 249 scoped_ptr<base::ListValue> network_configs = | 249 scoped_ptr<base::ListValue> network_configs = |
| 250 ReadNetworkConfigs("cert-pattern.onc"); | 250 ReadNetworkConfigs("cert-pattern.onc"); |
| 251 OncNetworkParser parser(*network_configs, | 251 OncNetworkParser parser(*network_configs, |
| 252 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 252 onc::ONC_SOURCE_USER_IMPORT); |
| 253 ASSERT_TRUE(parser.parse_error().empty()); | 253 ASSERT_TRUE(parser.parse_error().empty()); |
| 254 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 254 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 255 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 255 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 256 ASSERT_TRUE(network.get()); | 256 ASSERT_TRUE(network.get()); |
| 257 | 257 |
| 258 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 258 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
| 259 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 259 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
| 260 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 260 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
| 261 EXPECT_EQ("WirelessNetwork", wifi->name()); | 261 EXPECT_EQ("WirelessNetwork", wifi->name()); |
| 262 EXPECT_FALSE(wifi->auto_connect()); | 262 EXPECT_FALSE(wifi->auto_connect()); |
| 263 EXPECT_EQ("", wifi->passphrase()); | 263 EXPECT_EQ("", wifi->passphrase()); |
| 264 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); | 264 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); |
| 265 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); | 265 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); |
| 266 EXPECT_EQ("Google, Inc.", | 266 EXPECT_EQ("Google, Inc.", |
| 267 wifi->client_cert_pattern().issuer().organization()); | 267 wifi->client_cert_pattern().issuer().organization()); |
| 268 ASSERT_EQ(2ul, wifi->client_cert_pattern().enrollment_uri_list().size()); | 268 ASSERT_EQ(2ul, wifi->client_cert_pattern().enrollment_uri_list().size()); |
| 269 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", | 269 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", |
| 270 wifi->client_cert_pattern().enrollment_uri_list()[0]); | 270 wifi->client_cert_pattern().enrollment_uri_list()[0]); |
| 271 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", | 271 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", |
| 272 wifi->client_cert_pattern().enrollment_uri_list()[1]); | 272 wifi->client_cert_pattern().enrollment_uri_list()[1]); |
| 273 } | 273 } |
| 274 | 274 |
| 275 | 275 |
| 276 TEST_F(OncNetworkParserTest, TestLoadVPNCertificatePattern) { | 276 TEST_F(OncNetworkParserTest, TestLoadVPNCertificatePattern) { |
| 277 scoped_ptr<base::ListValue> network_configs = | 277 scoped_ptr<base::ListValue> network_configs = |
| 278 ReadNetworkConfigs("cert-pattern-vpn.onc"); | 278 ReadNetworkConfigs("cert-pattern-vpn.onc"); |
| 279 OncNetworkParser parser(*network_configs, | 279 OncNetworkParser parser(*network_configs, |
| 280 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 280 onc::ONC_SOURCE_USER_IMPORT); |
| 281 ASSERT_TRUE(parser.parse_error().empty()); | 281 ASSERT_TRUE(parser.parse_error().empty()); |
| 282 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 282 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 283 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 283 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 284 ASSERT_TRUE(network.get()); | 284 ASSERT_TRUE(network.get()); |
| 285 | 285 |
| 286 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); | 286 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); |
| 287 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); | 287 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); |
| 288 EXPECT_EQ("MyVPN", vpn->name()); | 288 EXPECT_EQ("MyVPN", vpn->name()); |
| 289 EXPECT_FALSE(vpn->auto_connect()); | 289 EXPECT_FALSE(vpn->auto_connect()); |
| 290 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, vpn->client_cert_type()); | 290 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, vpn->client_cert_type()); |
| 291 EXPECT_EQ("Google, Inc.", | 291 EXPECT_EQ("Google, Inc.", |
| 292 vpn->client_cert_pattern().issuer().organization()); | 292 vpn->client_cert_pattern().issuer().organization()); |
| 293 ASSERT_EQ(2ul, vpn->client_cert_pattern().enrollment_uri_list().size()); | 293 ASSERT_EQ(2ul, vpn->client_cert_pattern().enrollment_uri_list().size()); |
| 294 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", | 294 EXPECT_EQ("http://youtu.be/dQw4w9WgXcQ", |
| 295 vpn->client_cert_pattern().enrollment_uri_list()[0]); | 295 vpn->client_cert_pattern().enrollment_uri_list()[0]); |
| 296 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", | 296 EXPECT_EQ("chrome-extension://abc/keygen-cert.html", |
| 297 vpn->client_cert_pattern().enrollment_uri_list()[1]); | 297 vpn->client_cert_pattern().enrollment_uri_list()[1]); |
| 298 } | 298 } |
| 299 | 299 |
| 300 TEST_F(OncNetworkParserTest, TestNoCertificatePatternForDevicePolicy) { | 300 TEST_F(OncNetworkParserTest, TestNoCertificatePatternForDevicePolicy) { |
| 301 scoped_ptr<base::ListValue> network_configs = | 301 scoped_ptr<base::ListValue> network_configs = |
| 302 ReadNetworkConfigs("cert-pattern.onc"); | 302 ReadNetworkConfigs("cert-pattern.onc"); |
| 303 OncNetworkParser parser(*network_configs, | 303 OncNetworkParser parser(*network_configs, |
| 304 NetworkUIData::ONC_SOURCE_DEVICE_POLICY); | 304 onc::ONC_SOURCE_DEVICE_POLICY); |
| 305 | 305 |
| 306 // Make sure we fail when parsing a certificate pattern from a device policy | 306 // Make sure we fail when parsing a certificate pattern from a device policy |
| 307 // ONC file. | 307 // ONC file. |
| 308 ASSERT_TRUE(parser.parse_error().empty()); | 308 ASSERT_TRUE(parser.parse_error().empty()); |
| 309 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 309 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 310 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 310 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 311 ASSERT_TRUE(network.get()); | 311 ASSERT_TRUE(network.get()); |
| 312 | 312 |
| 313 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 313 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
| 314 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 314 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
| 315 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 315 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
| 316 EXPECT_EQ("WirelessNetwork", wifi->name()); | 316 EXPECT_EQ("WirelessNetwork", wifi->name()); |
| 317 EXPECT_FALSE(wifi->auto_connect()); | 317 EXPECT_FALSE(wifi->auto_connect()); |
| 318 EXPECT_EQ("", wifi->passphrase()); | 318 EXPECT_EQ("", wifi->passphrase()); |
| 319 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); | 319 EXPECT_EQ(chromeos::EAP_METHOD_TLS, wifi->eap_method()); |
| 320 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); | 320 EXPECT_EQ(chromeos::CLIENT_CERT_TYPE_PATTERN, wifi->client_cert_type()); |
| 321 EXPECT_EQ("", wifi->client_cert_pattern().issuer().organization()); | 321 EXPECT_EQ("", wifi->client_cert_pattern().issuer().organization()); |
| 322 ASSERT_EQ(0ul, wifi->client_cert_pattern().enrollment_uri_list().size()); | 322 ASSERT_EQ(0ul, wifi->client_cert_pattern().enrollment_uri_list().size()); |
| 323 } | 323 } |
| 324 | 324 |
| 325 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP1) { | 325 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP1) { |
| 326 scoped_ptr<base::ListValue> network_configs = | 326 scoped_ptr<base::ListValue> network_configs = |
| 327 ReadNetworkConfigs("network-wifi-eap1.onc"); | 327 ReadNetworkConfigs("network-wifi-eap1.onc"); |
| 328 OncNetworkParser parser(*network_configs, | 328 OncNetworkParser parser(*network_configs, |
| 329 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 329 onc::ONC_SOURCE_USER_IMPORT); |
| 330 | 330 |
| 331 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 331 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 332 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 332 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 333 ASSERT_TRUE(network.get()); | 333 ASSERT_TRUE(network.get()); |
| 334 | 334 |
| 335 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 335 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
| 336 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 336 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
| 337 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 337 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
| 338 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurity8021x); | 338 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurity8021x); |
| 339 EXPECT_EQ("ssid", wifi->name()); | 339 EXPECT_EQ("ssid", wifi->name()); |
| 340 EXPECT_EQ(true, wifi->auto_connect()); | 340 EXPECT_EQ(true, wifi->auto_connect()); |
| 341 CheckBooleanProperty(wifi, PROPERTY_INDEX_AUTO_CONNECT, true); | 341 CheckBooleanProperty(wifi, PROPERTY_INDEX_AUTO_CONNECT, true); |
| 342 EXPECT_EQ(EAP_METHOD_PEAP, wifi->eap_method()); | 342 EXPECT_EQ(EAP_METHOD_PEAP, wifi->eap_method()); |
| 343 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_METHOD, | 343 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_METHOD, |
| 344 flimflam::kEapMethodPEAP); | 344 flimflam::kEapMethodPEAP); |
| 345 EXPECT_FALSE(wifi->eap_use_system_cas()); | 345 EXPECT_FALSE(wifi->eap_use_system_cas()); |
| 346 } | 346 } |
| 347 | 347 |
| 348 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP2) { | 348 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP2) { |
| 349 scoped_ptr<base::ListValue> network_configs = | 349 scoped_ptr<base::ListValue> network_configs = |
| 350 ReadNetworkConfigs("network-wifi-eap2.onc"); | 350 ReadNetworkConfigs("network-wifi-eap2.onc"); |
| 351 OncNetworkParser parser(*network_configs, | 351 OncNetworkParser parser(*network_configs, |
| 352 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 352 onc::ONC_SOURCE_USER_IMPORT); |
| 353 | 353 |
| 354 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 354 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 355 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 355 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 356 ASSERT_TRUE(network.get()); | 356 ASSERT_TRUE(network.get()); |
| 357 | 357 |
| 358 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 358 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
| 359 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 359 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
| 360 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); | 360 EXPECT_EQ(chromeos::SECURITY_8021X, wifi->encryption()); |
| 361 EXPECT_EQ("ssid", wifi->name()); | 361 EXPECT_EQ("ssid", wifi->name()); |
| 362 EXPECT_FALSE(wifi->auto_connect()); | 362 EXPECT_FALSE(wifi->auto_connect()); |
| 363 EXPECT_EQ(EAP_METHOD_LEAP, wifi->eap_method()); | 363 EXPECT_EQ(EAP_METHOD_LEAP, wifi->eap_method()); |
| 364 EXPECT_EQ(true, wifi->eap_use_system_cas()); | 364 EXPECT_EQ(true, wifi->eap_use_system_cas()); |
| 365 EXPECT_EQ("user", wifi->eap_identity()); | 365 EXPECT_EQ("user", wifi->eap_identity()); |
| 366 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_IDENTITY, "user"); | 366 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_IDENTITY, "user"); |
| 367 EXPECT_EQ("pass", wifi->eap_passphrase()); | 367 EXPECT_EQ("pass", wifi->eap_passphrase()); |
| 368 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_PASSWORD, "pass"); | 368 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_PASSWORD, "pass"); |
| 369 EXPECT_EQ("anon", wifi->eap_anonymous_identity()); | 369 EXPECT_EQ("anon", wifi->eap_anonymous_identity()); |
| 370 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY, "anon"); | 370 CheckStringProperty(wifi, PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY, "anon"); |
| 371 } | 371 } |
| 372 | 372 |
| 373 TEST_F(OncNetworkParserTest, TestCreateNetworkUnknownFields) { | 373 TEST_F(OncNetworkParserTest, TestCreateNetworkUnknownFields) { |
| 374 scoped_ptr<base::ListValue> network_configs = | 374 scoped_ptr<base::ListValue> network_configs = |
| 375 ReadNetworkConfigs("network-unknown-fields.onc"); | 375 ReadNetworkConfigs("network-unknown-fields.onc"); |
| 376 OncNetworkParser parser(*network_configs, | 376 OncNetworkParser parser(*network_configs, |
| 377 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 377 onc::ONC_SOURCE_USER_IMPORT); |
| 378 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 378 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 379 ASSERT_TRUE(network.get()); | 379 ASSERT_TRUE(network.get()); |
| 380 | 380 |
| 381 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); | 381 EXPECT_EQ(chromeos::TYPE_WIFI, network->type()); |
| 382 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); | 382 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); |
| 383 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); | 383 EXPECT_EQ(chromeos::SECURITY_WEP, wifi->encryption()); |
| 384 EXPECT_EQ("ssid", wifi->name()); | 384 EXPECT_EQ("ssid", wifi->name()); |
| 385 EXPECT_EQ("z123456789012", wifi->passphrase()); | 385 EXPECT_EQ("z123456789012", wifi->passphrase()); |
| 386 } | 386 } |
| 387 | 387 |
| 388 TEST_F(OncNetworkParserTest, TestCreateNetworkOpenVPN) { | 388 TEST_F(OncNetworkParserTest, TestCreateNetworkOpenVPN) { |
| 389 scoped_ptr<base::ListValue> network_configs = | 389 scoped_ptr<base::ListValue> network_configs = |
| 390 ReadNetworkConfigs("network-openvpn.onc"); | 390 ReadNetworkConfigs("network-openvpn.onc"); |
| 391 OncNetworkParser parser(*network_configs, | 391 OncNetworkParser parser(*network_configs, |
| 392 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 392 onc::ONC_SOURCE_USER_IMPORT); |
| 393 | 393 |
| 394 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 394 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 395 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 395 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 396 ASSERT_TRUE(network.get() != NULL); | 396 ASSERT_TRUE(network.get() != NULL); |
| 397 | 397 |
| 398 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); | 398 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); |
| 399 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); | 399 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); |
| 400 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); | 400 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); |
| 401 EXPECT_EQ("MyVPN", vpn->name()); | 401 EXPECT_EQ("MyVPN", vpn->name()); |
| 402 EXPECT_EQ(PROVIDER_TYPE_OPEN_VPN, vpn->provider_type()); | 402 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, | 440 CheckStringProperty(vpn, PROPERTY_INDEX_OPEN_VPN_TLSREMOTE, |
| 441 "MyOpenVPNServer"); | 441 "MyOpenVPNServer"); |
| 442 EXPECT_FALSE(vpn->save_credentials()); | 442 EXPECT_FALSE(vpn->save_credentials()); |
| 443 EXPECT_EQ("{55ca78f6-0842-4e1b-96a3-09a9e1a26ef5}", vpn->ca_cert_nss()); | 443 EXPECT_EQ("{55ca78f6-0842-4e1b-96a3-09a9e1a26ef5}", vpn->ca_cert_nss()); |
| 444 } | 444 } |
| 445 | 445 |
| 446 TEST_F(OncNetworkParserTest, TestCreateNetworkL2TPIPsec) { | 446 TEST_F(OncNetworkParserTest, TestCreateNetworkL2TPIPsec) { |
| 447 scoped_ptr<base::ListValue> network_configs = | 447 scoped_ptr<base::ListValue> network_configs = |
| 448 ReadNetworkConfigs("network-l2tp-ipsec.onc"); | 448 ReadNetworkConfigs("network-l2tp-ipsec.onc"); |
| 449 OncNetworkParser parser(*network_configs, | 449 OncNetworkParser parser(*network_configs, |
| 450 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 450 onc::ONC_SOURCE_USER_IMPORT); |
| 451 | 451 |
| 452 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 452 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 453 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); | 453 scoped_ptr<Network> network(parser.ParseNetwork(0, NULL)); |
| 454 ASSERT_TRUE(network != NULL); | 454 ASSERT_TRUE(network != NULL); |
| 455 | 455 |
| 456 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); | 456 EXPECT_EQ(chromeos::TYPE_VPN, network->type()); |
| 457 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); | 457 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); |
| 458 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); | 458 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); |
| 459 EXPECT_EQ("MyL2TPVPN", vpn->name()); | 459 EXPECT_EQ("MyL2TPVPN", vpn->name()); |
| 460 EXPECT_EQ(PROVIDER_TYPE_L2TP_IPSEC_PSK, vpn->provider_type()); | 460 EXPECT_EQ(PROVIDER_TYPE_L2TP_IPSEC_PSK, vpn->provider_type()); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 } | 541 } |
| 542 | 542 |
| 543 TEST(OncNetworkParserUserExpansionTest, GetUserExpandedValue) { | 543 TEST(OncNetworkParserUserExpansionTest, GetUserExpandedValue) { |
| 544 ScopedMockUserManagerEnabler mock_user_manager; | 544 ScopedMockUserManagerEnabler mock_user_manager; |
| 545 mock_user_manager.user_manager()->SetLoggedInUser("onc@example.com"); | 545 mock_user_manager.user_manager()->SetLoggedInUser("onc@example.com"); |
| 546 | 546 |
| 547 EXPECT_CALL(*mock_user_manager.user_manager(), IsUserLoggedIn()) | 547 EXPECT_CALL(*mock_user_manager.user_manager(), IsUserLoggedIn()) |
| 548 .Times(2) | 548 .Times(2) |
| 549 .WillRepeatedly(Return(false)); | 549 .WillRepeatedly(Return(false)); |
| 550 | 550 |
| 551 NetworkUIData::ONCSource source = NetworkUIData::ONC_SOURCE_USER_IMPORT; | 551 onc::ONCSource source = onc::ONC_SOURCE_USER_IMPORT; |
| 552 | 552 |
| 553 // Setup environment needed by UserManager. | 553 // Setup environment needed by UserManager. |
| 554 MessageLoop loop; | 554 MessageLoop loop; |
| 555 content::TestBrowserThread ui_thread(content::BrowserThread::UI, &loop); | 555 content::TestBrowserThread ui_thread(content::BrowserThread::UI, &loop); |
| 556 base::ShadowingAtExitManager at_exit_manager; | 556 base::ShadowingAtExitManager at_exit_manager; |
| 557 ScopedTestingLocalState local_state( | 557 ScopedTestingLocalState local_state( |
| 558 static_cast<TestingBrowserProcess*>(g_browser_process)); | 558 static_cast<TestingBrowserProcess*>(g_browser_process)); |
| 559 | 559 |
| 560 base::StringValue login_id_pattern("a ${LOGIN_ID} b"); | 560 base::StringValue login_id_pattern("a ${LOGIN_ID} b"); |
| 561 base::StringValue login_email_pattern("a ${LOGIN_EMAIL} b"); | 561 base::StringValue login_email_pattern("a ${LOGIN_EMAIL} b"); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 578 login_id_pattern, source)); | 578 login_id_pattern, source)); |
| 579 EXPECT_EQ("a onc@example.com b", | 579 EXPECT_EQ("a onc@example.com b", |
| 580 chromeos::OncNetworkParser::GetUserExpandedValue( | 580 chromeos::OncNetworkParser::GetUserExpandedValue( |
| 581 login_email_pattern, source)); | 581 login_email_pattern, source)); |
| 582 } | 582 } |
| 583 | 583 |
| 584 TEST_F(OncNetworkParserTest, TestRemoveNetworkWifi) { | 584 TEST_F(OncNetworkParserTest, TestRemoveNetworkWifi) { |
| 585 scoped_ptr<base::ListValue> network_configs = | 585 scoped_ptr<base::ListValue> network_configs = |
| 586 ReadNetworkConfigs("network-wifi-remove.onc"); | 586 ReadNetworkConfigs("network-wifi-remove.onc"); |
| 587 OncNetworkParser parser(*network_configs, | 587 OncNetworkParser parser(*network_configs, |
| 588 NetworkUIData::ONC_SOURCE_USER_IMPORT); | 588 onc::ONC_SOURCE_USER_IMPORT); |
| 589 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); | 589 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); |
| 590 bool marked_for_removal = false; | 590 bool marked_for_removal = false; |
| 591 scoped_ptr<Network> network(parser.ParseNetwork(0, &marked_for_removal)); | 591 scoped_ptr<Network> network(parser.ParseNetwork(0, &marked_for_removal)); |
| 592 | 592 |
| 593 EXPECT_TRUE(marked_for_removal); | 593 EXPECT_TRUE(marked_for_removal); |
| 594 EXPECT_EQ("{485d6076-dd44-6b6d-69787465725f5045}", network->unique_id()); | 594 EXPECT_EQ("{485d6076-dd44-6b6d-69787465725f5045}", network->unique_id()); |
| 595 } | 595 } |
| 596 | 596 |
| 597 } // namespace chromeos | 597 } // namespace chromeos |
| OLD | NEW |