network_ui_data_unittest.cc revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chromeos/network/network_ui_data.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/values.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chromeos/network/onc/onc_test_utils.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace chromeos { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(NetworkUIDataTest, ONCSource) { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue ui_data_dict; 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ui_data_dict.SetString(NetworkUIData::kKeyONCSource, "user_import"); 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkUIData ui_data(ui_data_dict); 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(::onc::ONC_SOURCE_USER_IMPORT, ui_data.onc_source()); 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_FALSE(ui_data.is_managed()); 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui_data_dict.SetString(NetworkUIData::kKeyONCSource, "device_policy"); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NetworkUIData ui_data(ui_data_dict); 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(::onc::ONC_SOURCE_DEVICE_POLICY, ui_data.onc_source()); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ui_data.is_managed()); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui_data_dict.SetString(NetworkUIData::kKeyONCSource, "user_policy"); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NetworkUIData ui_data(ui_data_dict); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(::onc::ONC_SOURCE_USER_POLICY, ui_data.onc_source()); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ui_data.is_managed()); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(NetworkUIDataTest, CertificateType) { 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue ui_data_dict; 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui_data_dict.SetString(NetworkUIData::kKeyCertificateType, "none"); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NetworkUIData ui_data(ui_data_dict); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(CLIENT_CERT_TYPE_NONE, ui_data.certificate_type()); 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue ui_data_dict; 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui_data_dict.SetString(NetworkUIData::kKeyCertificateType, "ref"); 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NetworkUIData ui_data(ui_data_dict); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(CLIENT_CERT_TYPE_REF, ui_data.certificate_type()); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) { 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // for type pattern we need to have some kind of pattern 52f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) std::string organization("Little If Any, Inc."); 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue ui_data_dict; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* pattern_dict = new base::DictionaryValue; 55a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) base::DictionaryValue* issuer_dict = new base::DictionaryValue; 56a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) issuer_dict->SetString("Organization", organization); 57a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) pattern_dict->Set("Issuer", issuer_dict); 58a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) ui_data_dict.Set("certificate_pattern", pattern_dict); 595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ui_data_dict.SetString(NetworkUIData::kKeyCertificateType, "pattern"); 605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) NetworkUIData ui_data(ui_data_dict); 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) EXPECT_EQ(CLIENT_CERT_TYPE_PATTERN, ui_data.certificate_type()); 625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(NetworkUIDataTest, CertificatePattern) { 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string organization("Little If Any, Inc."); 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue ui_data_dict; 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* pattern_dict = new base::DictionaryValue; 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue* issuer_dict = new base::DictionaryValue; 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) issuer_dict->SetString("Organization", organization); 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) pattern_dict->Set("Issuer", issuer_dict); 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui_data_dict.SetString("certificate_type", "pattern"); 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui_data_dict.Set("certificate_pattern", pattern_dict); 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NetworkUIData ui_data(ui_data_dict); 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(ui_data.certificate_pattern().Empty()); 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_EQ(organization, 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui_data.certificate_pattern().issuer().organization()); 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class CreateUIDataTest 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : public ::testing::TestWithParam<std::pair<std::string, std::string> > { 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST_P(CreateUIDataTest, CreateUIDataFromONC) { 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) namespace test_utils = onc::test_utils; 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<base::DictionaryValue> onc_network = 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_utils::ReadTestDictionary(GetParam().first); 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<base::DictionaryValue> expected_uidata = 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) test_utils::ReadTestDictionary(GetParam().second); 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<NetworkUIData> actual_uidata = 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NetworkUIData::CreateFromONC( 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ::onc::ONC_SOURCE_USER_POLICY, *onc_network); 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(actual_uidata != NULL); 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue actual_uidata_dict; 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) actual_uidata->FillDictionary(&actual_uidata_dict); 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(test_utils::Equals(&actual_uidata_dict, expected_uidata.get())); 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 101f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciINSTANTIATE_TEST_CASE_P( 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CreateUIDataTest, 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CreateUIDataTest, 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ::testing::Values( 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::make_pair("wifi_clientcert_with_cert_pems.onc", 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "uidata_for_wifi_clientcert.json"), 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::make_pair("valid_wifi_clientref.onc", 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "uidata_for_wifi_clientref.json"), 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::make_pair("valid_wifi_psk.onc", 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "uidata_for_wifi_psk.json"), 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::make_pair("openvpn_clientcert_with_cert_pems.onc", 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "uidata_for_openvpn_clientcert.json"), 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::make_pair("l2tpipsec_clientcert_with_cert_pems.onc", 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "uidata_for_l2tpipsec_clientcert.json"))); 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 117c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace chromeos 118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)