Chromium Code Reviews| Index: chromeos/network/onc/onc_utils_unittest.cc |
| diff --git a/chromeos/network/onc/onc_utils_unittest.cc b/chromeos/network/onc/onc_utils_unittest.cc |
| index f5acd5d04bd9449172a2f493e5076b6965547f59..6370a68507eccc4b562bf6cf28bd6f7eef4d3ec8 100644 |
| --- a/chromeos/network/onc/onc_utils_unittest.cc |
| +++ b/chromeos/network/onc/onc_utils_unittest.cc |
| @@ -6,12 +6,38 @@ |
| #include <string> |
| +#include "base/json/json_file_value_serializer.h" |
| +#include "base/logging.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "base/values.h" |
| +#include "chromeos/chromeos_test_utils.h" |
| +#include "chromeos/network/network_ui_data.h" |
| #include "chromeos/network/onc/onc_signature.h" |
| #include "chromeos/network/onc/onc_test_utils.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace chromeos { |
| + |
| +namespace { |
| + |
| +scoped_ptr<base::Value> ReadTestJson(const std::string& filename) { |
|
pneubeck (no reviews)
2015/07/09 07:16:12
optional nit: this could eventually be put into a
stevenjb
2015/07/09 18:24:28
Eventually :) We should do that if/when we need it
|
| + base::Value* result = nullptr; |
| + base::FilePath path; |
| + if (!test_utils::GetTestDataPath("network", filename, &path)) { |
| + NOTREACHED() << "Unable to get test file path for: " << filename; |
| + return make_scoped_ptr(result); |
| + } |
| + JSONFileValueDeserializer deserializer(path); |
| + deserializer.set_allow_trailing_comma(true); |
| + std::string error_message; |
| + result = deserializer.Deserialize(nullptr, &error_message); |
| + CHECK(result != nullptr) << "Couldn't json-deserialize file: " << filename |
| + << ": " << error_message; |
| + return make_scoped_ptr(result); |
| +} |
| + |
| +} // namespace |
| + |
| namespace onc { |
| TEST(ONCDecrypterTest, BrokenEncryptionIterations) { |
| @@ -136,5 +162,61 @@ TEST(ONCResolveServerCertRefs, ResolveServerCertRefs) { |
| } |
| } |
| +TEST(ONCUtils, ProxySettingsToProxyConfig) { |
| + scoped_ptr<base::Value> test_data(ReadTestJson("proxy_config.json")); |
| + |
| + base::ListValue* list_of_tests; |
| + test_data->GetAsList(&list_of_tests); |
| + ASSERT_TRUE(list_of_tests); |
| + |
| + int index = 0; |
| + for (base::ListValue::iterator it = list_of_tests->begin(); |
| + it != list_of_tests->end(); ++it, ++index) { |
| + SCOPED_TRACE("Test case #" + base::IntToString(index)); |
| + |
| + base::DictionaryValue* test_case; |
| + (*it)->GetAsDictionary(&test_case); |
| + |
| + base::DictionaryValue* onc_proxy_settings; |
| + test_case->GetDictionary("ONC_ProxySettings", &onc_proxy_settings); |
| + |
| + base::DictionaryValue* expected_proxy_config; |
| + test_case->GetDictionary("ProxyConfig", &expected_proxy_config); |
| + |
| + scoped_ptr<base::DictionaryValue> actual_proxy_config = |
| + ConvertOncProxySettingsToProxyConfig(*onc_proxy_settings); |
| + EXPECT_TRUE( |
| + test_utils::Equals(expected_proxy_config, actual_proxy_config.get())); |
| + } |
| +} |
| + |
| +TEST(ONCUtils, ProxyConfigToOncProxySettings) { |
| + scoped_ptr<base::Value> test_data(ReadTestJson("proxy_config.json")); |
| + |
| + base::ListValue* list_of_tests; |
| + test_data->GetAsList(&list_of_tests); |
| + ASSERT_TRUE(list_of_tests); |
| + |
| + int index = 0; |
| + for (base::ListValue::iterator it = list_of_tests->begin(); |
| + it != list_of_tests->end(); ++it, ++index) { |
| + SCOPED_TRACE("Test case #" + base::IntToString(index)); |
| + |
| + base::DictionaryValue* test_case; |
| + (*it)->GetAsDictionary(&test_case); |
| + |
| + base::DictionaryValue* shill_proxy_config; |
| + test_case->GetDictionary("ProxyConfig", &shill_proxy_config); |
| + |
| + base::DictionaryValue* onc_proxy_settings; |
| + test_case->GetDictionary("ONC_ProxySettings", &onc_proxy_settings); |
| + |
| + scoped_ptr<base::DictionaryValue> actual_proxy_settings = |
| + ConvertProxyConfigToOncProxySettings(*shill_proxy_config); |
| + EXPECT_TRUE( |
| + test_utils::Equals(onc_proxy_settings, actual_proxy_settings.get())); |
| + } |
| +} |
| + |
| } // namespace onc |
| } // namespace chromeos |