| 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 |