| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/chromeos/network_settings/onc_translator.h" | |
| 6 | |
| 7 #include "base/memory/scoped_ptr.h" | |
| 8 #include "base/values.h" | |
| 9 #include "chrome/browser/chromeos/cros/onc_constants.h" | |
| 10 #include "chrome/browser/chromeos/network_settings/onc_signature.h" | |
| 11 #include "chrome/browser/chromeos/network_settings/onc_test_utils.h" | |
| 12 #include "testing/gtest/include/gtest/gtest.h" | |
| 13 | |
| 14 namespace chromeos { | |
| 15 namespace onc { | |
| 16 | |
| 17 // First parameter: Filename of source ONC. | |
| 18 // Second parameter: Filename of expected translated Shill json. | |
| 19 class ONCTranslatorOncToShillTest | |
| 20 : public ::testing::TestWithParam<std::pair<std::string, std::string> > { | |
| 21 }; | |
| 22 | |
| 23 // Test the translation from ONC to Shill json. | |
| 24 TEST_P(ONCTranslatorOncToShillTest, Translate) { | |
| 25 std::string source_onc_filename = GetParam().first; | |
| 26 scoped_ptr<const base::DictionaryValue> onc_network( | |
| 27 test_utils::ReadTestDictionary(source_onc_filename)); | |
| 28 std::string result_json_filename = GetParam().second; | |
| 29 scoped_ptr<const base::DictionaryValue> shill_network( | |
| 30 test_utils::ReadTestDictionary(result_json_filename)); | |
| 31 | |
| 32 scoped_ptr<base::DictionaryValue> translation(TranslateONCObjectToShill( | |
| 33 &kNetworkConfigurationSignature, *onc_network)); | |
| 34 | |
| 35 EXPECT_TRUE(test_utils::Equals(shill_network.get(), translation.get())); | |
| 36 } | |
| 37 | |
| 38 // Test different network types, such that each ONC object type is tested at | |
| 39 // least once. | |
| 40 INSTANTIATE_TEST_CASE_P( | |
| 41 ONCTranslatorOncToShillTest, | |
| 42 ONCTranslatorOncToShillTest, | |
| 43 ::testing::Values( | |
| 44 std::make_pair("valid.onc", "shill_ethernet.json"), | |
| 45 std::make_pair("valid_l2tpipsec.onc", "shill_l2tpipsec.json"), | |
| 46 std::make_pair("valid_openvpn.onc", "shill_openvpn.json"))); | |
| 47 | |
| 48 // Test the translation from Shill json to ONC. | |
| 49 // | |
| 50 // Note: This translation direction doesn't have to reconstruct all of the ONC | |
| 51 // fields, as Chrome doesn't need all of a Service's properties. | |
| 52 TEST(ONCTranslatorShillToOncTest, L2TPIPsec) { | |
| 53 scoped_ptr<base::DictionaryValue> onc_network( | |
| 54 test_utils::ReadTestDictionary("valid_l2tpipsec.onc")); | |
| 55 | |
| 56 // These two fields are part of the ONC (and are required). However, they | |
| 57 // don't exist explicitly in the Shill dictionary. As there is no use-case | |
| 58 // yet, that requires to reconstruct these fields from a Shill dictionary, we | |
| 59 // don't require their translation. | |
| 60 onc_network->Remove("VPN.IPsec.AuthenticationType", NULL); | |
| 61 onc_network->Remove("VPN.IPsec.IKEVersion", NULL); | |
| 62 | |
| 63 scoped_ptr<const base::DictionaryValue> shill_network( | |
| 64 test_utils::ReadTestDictionary("shill_l2tpipsec.json")); | |
| 65 | |
| 66 scoped_ptr<base::DictionaryValue> translation(TranslateShillServiceToONCPart( | |
| 67 *shill_network, &kNetworkConfigurationSignature)); | |
| 68 | |
| 69 EXPECT_TRUE(test_utils::Equals(onc_network.get(), translation.get())); | |
| 70 } | |
| 71 | |
| 72 TEST(ONCTranslatorShillToOncTest, OpenVPN) { | |
| 73 scoped_ptr<const base::DictionaryValue> onc_network( | |
| 74 test_utils::ReadTestDictionary("valid_openvpn.onc")); | |
| 75 | |
| 76 scoped_ptr<const base::DictionaryValue> shill_network( | |
| 77 test_utils::ReadTestDictionary("shill_openvpn.json")); | |
| 78 | |
| 79 scoped_ptr<base::DictionaryValue> translation(TranslateShillServiceToONCPart( | |
| 80 *shill_network, &kNetworkConfigurationSignature)); | |
| 81 | |
| 82 EXPECT_TRUE(test_utils::Equals(onc_network.get(), translation.get())); | |
| 83 } | |
| 84 | |
| 85 } // namespace onc | |
| 86 } // namespace chromeos | |
| OLD | NEW |