Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Unified Diff: chromeos/network/onc/onc_validator_unittest.cc

Issue 11578052: Replace OncNetworkParser by the new ONC translator. (Closed) Base URL: http://git.chromium.org/chromium/src.git@extend_onc_to_shill
Patch Set: Rebased. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/network/onc/onc_validator.cc ('k') | chromeos/test/data/network/managed_toplevel1.onc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/network/onc/onc_validator_unittest.cc
diff --git a/chromeos/network/onc/onc_validator_unittest.cc b/chromeos/network/onc/onc_validator_unittest.cc
index 105e9a0441f690ad79ccc0bc59df426a4b52bfbd..db37fd5c7f0da4c2ce25d73470f86515b0b7eaac 100644
--- a/chromeos/network/onc/onc_validator_unittest.cc
+++ b/chromeos/network/onc/onc_validator_unittest.cc
@@ -30,6 +30,15 @@ class ONCValidatorTest : public ::testing::Test {
scoped_ptr<base::DictionaryValue> onc_object,
const OncValueSignature* signature,
bool managed_onc) {
+ Validate(strict, onc_object.Pass(), signature, managed_onc,
+ ONC_SOURCE_NONE);
+ }
+
+ void Validate(bool strict,
+ scoped_ptr<base::DictionaryValue> onc_object,
+ const OncValueSignature* signature,
+ bool managed_onc,
+ ONCSource onc_source) {
scoped_ptr<Validator> validator;
if (strict) {
// Create a strict validator that complains about every error.
@@ -38,6 +47,7 @@ class ONCValidatorTest : public ::testing::Test {
// Create a liberal validator that ignores or repairs non-critical errors.
validator.reset(new Validator(false, false, false, managed_onc));
}
+ validator->SetOncSource(onc_source);
original_object_ = onc_object.Pass();
repaired_object_ = validator->ValidateAndRepairObject(signature,
*original_object_,
@@ -72,7 +82,7 @@ namespace {
struct OncParams {
// |location_of_object| is a string to identify the object to be tested. It
// may be used as a filename or as a dictionary key.
- OncParams(std::string location_of_object,
+ OncParams(const std::string& location_of_object,
const OncValueSignature* onc_signature,
bool is_managed_onc)
: location(location_of_object),
@@ -100,6 +110,27 @@ TEST_F(ONCValidatorTest, EmptyUnencryptedConfiguration) {
ExpectValid();
}
+// Ensure that VPN is rejected in device policies.
+TEST_F(ONCValidatorTest, VPNInDevicePolicyInvalid) {
+ Validate(true, test_utils::ReadTestDictionary("valid_openvpn.onc"),
+ &kNetworkConfigurationSignature, true, ONC_SOURCE_DEVICE_POLICY);
+ ExpectInvalid();
+}
+
+// Ensure that client certificate patterns are rejected in device policies.
+TEST_F(ONCValidatorTest, ClientCertPatternInDevicePolicyInvalid) {
+ Validate(true, test_utils::ReadTestDictionary("valid_wifi_clientcert.onc"),
+ &kNetworkConfigurationSignature, true, ONC_SOURCE_DEVICE_POLICY);
+ ExpectInvalid();
+}
+
+// Check that at least one configuration is accepted for device policies.
+TEST_F(ONCValidatorTest, ValidNetworkInDevicePolicy) {
+ Validate(true, test_utils::ReadTestDictionary("valid_wifi_psk.onc"),
+ &kNetworkConfigurationSignature, true, ONC_SOURCE_DEVICE_POLICY);
+ ExpectValid();
+}
+
// This test case is about validating valid ONC objects without any errors. Both
// the strict and the liberal validator accept the object.
class ONCValidatorValidTest : public ONCValidatorTest,
@@ -133,10 +164,9 @@ INSTANTIATE_TEST_CASE_P(
OncParams("managed_toplevel2.onc",
&kToplevelConfigurationSignature,
true),
- // Test a configuration generated by CPanel.
- OncParams("managed_toplevel_cpanel.onc",
+ OncParams("toplevel_wifi_wpa_psk.onc",
&kToplevelConfigurationSignature,
- true),
+ false),
OncParams("encrypted.onc",
&kToplevelConfigurationSignature,
true),
« no previous file with comments | « chromeos/network/onc/onc_validator.cc ('k') | chromeos/test/data/network/managed_toplevel1.onc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698