| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/extensions/api/messaging/native_messaging_policy_handle
r.h" | 5 #include "chrome/browser/extensions/api/messaging/native_messaging_policy_handle
r.h" |
| 6 | 6 |
| 7 #include "base/prefs/pref_value_map.h" | 7 #include "base/prefs/pref_value_map.h" |
| 8 #include "chrome/browser/extensions/policy_handlers.h" | 8 #include "chrome/browser/extensions/policy_handlers.h" |
| 9 #include "components/policy/core/browser/policy_error_map.h" | 9 #include "components/policy/core/browser/policy_error_map.h" |
| 10 #include "components/policy/core/common/policy_map.h" | 10 #include "components/policy/core/common/policy_map.h" |
| 11 #include "components/policy/core/common/policy_types.h" |
| 11 #include "policy/policy_constants.h" | 12 #include "policy/policy_constants.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 13 | 14 |
| 14 namespace extensions { | 15 namespace extensions { |
| 15 | 16 |
| 16 const char kTestPref[] = "unit_test.test_pref"; | 17 const char kTestPref[] = "unit_test.test_pref"; |
| 17 | 18 |
| 18 TEST(NativeMessagingHostListPolicyHandlerTest, CheckPolicySettings) { | 19 TEST(NativeMessagingHostListPolicyHandlerTest, CheckPolicySettings) { |
| 19 base::ListValue list; | 20 base::ListValue list; |
| 20 policy::PolicyMap policy_map; | 21 policy::PolicyMap policy_map; |
| 21 NativeMessagingHostListPolicyHandler handler( | 22 NativeMessagingHostListPolicyHandler handler( |
| 22 policy::key::kNativeMessagingBlacklist, kTestPref, true); | 23 policy::key::kNativeMessagingBlacklist, kTestPref, true); |
| 23 | 24 |
| 24 policy_map.Set(policy::key::kNativeMessagingBlacklist, | 25 policy_map.Set(policy::key::kNativeMessagingBlacklist, |
| 25 policy::POLICY_LEVEL_MANDATORY, | 26 policy::POLICY_LEVEL_MANDATORY, |
| 26 policy::POLICY_SCOPE_USER, | 27 policy::POLICY_SCOPE_USER, |
| 28 policy::POLICY_SOURCE_CLOUD, |
| 27 list.DeepCopy(), | 29 list.DeepCopy(), |
| 28 NULL); | 30 NULL); |
| 29 { | 31 { |
| 30 policy::PolicyErrorMap errors; | 32 policy::PolicyErrorMap errors; |
| 31 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 33 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 32 EXPECT_TRUE(errors.empty()); | 34 EXPECT_TRUE(errors.empty()); |
| 33 } | 35 } |
| 34 | 36 |
| 35 list.Append(new base::StringValue("test.a.b")); | 37 list.Append(new base::StringValue("test.a.b")); |
| 36 policy_map.Set(policy::key::kNativeMessagingBlacklist, | 38 policy_map.Set(policy::key::kNativeMessagingBlacklist, |
| 37 policy::POLICY_LEVEL_MANDATORY, | 39 policy::POLICY_LEVEL_MANDATORY, |
| 38 policy::POLICY_SCOPE_USER, | 40 policy::POLICY_SCOPE_USER, |
| 41 policy::POLICY_SOURCE_CLOUD, |
| 39 list.DeepCopy(), | 42 list.DeepCopy(), |
| 40 NULL); | 43 NULL); |
| 41 { | 44 { |
| 42 policy::PolicyErrorMap errors; | 45 policy::PolicyErrorMap errors; |
| 43 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 46 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 44 EXPECT_TRUE(errors.empty()); | 47 EXPECT_TRUE(errors.empty()); |
| 45 } | 48 } |
| 46 | 49 |
| 47 list.Append(new base::StringValue("*")); | 50 list.Append(new base::StringValue("*")); |
| 48 policy_map.Set(policy::key::kNativeMessagingBlacklist, | 51 policy_map.Set(policy::key::kNativeMessagingBlacklist, |
| 49 policy::POLICY_LEVEL_MANDATORY, | 52 policy::POLICY_LEVEL_MANDATORY, |
| 50 policy::POLICY_SCOPE_USER, | 53 policy::POLICY_SCOPE_USER, |
| 54 policy::POLICY_SOURCE_CLOUD, |
| 51 list.DeepCopy(), | 55 list.DeepCopy(), |
| 52 NULL); | 56 NULL); |
| 53 { | 57 { |
| 54 policy::PolicyErrorMap errors; | 58 policy::PolicyErrorMap errors; |
| 55 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 59 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 56 EXPECT_TRUE(errors.empty()); | 60 EXPECT_TRUE(errors.empty()); |
| 57 } | 61 } |
| 58 | 62 |
| 59 list.Append(new base::StringValue("invalid Name")); | 63 list.Append(new base::StringValue("invalid Name")); |
| 60 policy_map.Set(policy::key::kNativeMessagingBlacklist, | 64 policy_map.Set(policy::key::kNativeMessagingBlacklist, |
| 61 policy::POLICY_LEVEL_MANDATORY, | 65 policy::POLICY_LEVEL_MANDATORY, |
| 62 policy::POLICY_SCOPE_USER, | 66 policy::POLICY_SCOPE_USER, |
| 67 policy::POLICY_SOURCE_CLOUD, |
| 63 list.DeepCopy(), | 68 list.DeepCopy(), |
| 64 NULL); | 69 NULL); |
| 65 { | 70 { |
| 66 policy::PolicyErrorMap errors; | 71 policy::PolicyErrorMap errors; |
| 67 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 72 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 68 EXPECT_FALSE(errors.empty()); | 73 EXPECT_FALSE(errors.empty()); |
| 69 EXPECT_FALSE( | 74 EXPECT_FALSE( |
| 70 errors.GetErrors(policy::key::kNativeMessagingBlacklist).empty()); | 75 errors.GetErrors(policy::key::kNativeMessagingBlacklist).empty()); |
| 71 } | 76 } |
| 72 } | 77 } |
| 73 | 78 |
| 74 TEST(NativeMessagingHostListPolicyHandlerTest, ApplyPolicySettings) { | 79 TEST(NativeMessagingHostListPolicyHandlerTest, ApplyPolicySettings) { |
| 75 base::ListValue policy; | 80 base::ListValue policy; |
| 76 base::ListValue expected; | 81 base::ListValue expected; |
| 77 policy::PolicyMap policy_map; | 82 policy::PolicyMap policy_map; |
| 78 PrefValueMap prefs; | 83 PrefValueMap prefs; |
| 79 base::Value* value = NULL; | 84 base::Value* value = NULL; |
| 80 NativeMessagingHostListPolicyHandler handler( | 85 NativeMessagingHostListPolicyHandler handler( |
| 81 policy::key::kNativeMessagingBlacklist, kTestPref, true); | 86 policy::key::kNativeMessagingBlacklist, kTestPref, true); |
| 82 | 87 |
| 83 policy.Append(new base::StringValue("com.example.test")); | 88 policy.Append(new base::StringValue("com.example.test")); |
| 84 expected.Append(new base::StringValue("com.example.test")); | 89 expected.Append(new base::StringValue("com.example.test")); |
| 85 | 90 |
| 86 policy_map.Set(policy::key::kNativeMessagingBlacklist, | 91 policy_map.Set(policy::key::kNativeMessagingBlacklist, |
| 87 policy::POLICY_LEVEL_MANDATORY, | 92 policy::POLICY_LEVEL_MANDATORY, |
| 88 policy::POLICY_SCOPE_USER, | 93 policy::POLICY_SCOPE_USER, |
| 94 policy::POLICY_SOURCE_CLOUD, |
| 89 policy.DeepCopy(), | 95 policy.DeepCopy(), |
| 90 NULL); | 96 NULL); |
| 91 handler.ApplyPolicySettings(policy_map, &prefs); | 97 handler.ApplyPolicySettings(policy_map, &prefs); |
| 92 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 98 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 93 EXPECT_TRUE(base::Value::Equals(&expected, value)); | 99 EXPECT_TRUE(base::Value::Equals(&expected, value)); |
| 94 | 100 |
| 95 policy.Append(new base::StringValue("*")); | 101 policy.Append(new base::StringValue("*")); |
| 96 expected.Append(new base::StringValue("*")); | 102 expected.Append(new base::StringValue("*")); |
| 97 | 103 |
| 98 policy_map.Set(policy::key::kNativeMessagingBlacklist, | 104 policy_map.Set(policy::key::kNativeMessagingBlacklist, |
| 99 policy::POLICY_LEVEL_MANDATORY, | 105 policy::POLICY_LEVEL_MANDATORY, |
| 100 policy::POLICY_SCOPE_USER, | 106 policy::POLICY_SCOPE_USER, |
| 107 policy::POLICY_SOURCE_CLOUD, |
| 101 policy.DeepCopy(), | 108 policy.DeepCopy(), |
| 102 NULL); | 109 NULL); |
| 103 handler.ApplyPolicySettings(policy_map, &prefs); | 110 handler.ApplyPolicySettings(policy_map, &prefs); |
| 104 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 111 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 105 EXPECT_TRUE(base::Value::Equals(&expected, value)); | 112 EXPECT_TRUE(base::Value::Equals(&expected, value)); |
| 106 | 113 |
| 107 policy.Append(new base::StringValue("invalid Name")); | 114 policy.Append(new base::StringValue("invalid Name")); |
| 108 policy_map.Set(policy::key::kNativeMessagingBlacklist, | 115 policy_map.Set(policy::key::kNativeMessagingBlacklist, |
| 109 policy::POLICY_LEVEL_MANDATORY, | 116 policy::POLICY_LEVEL_MANDATORY, |
| 110 policy::POLICY_SCOPE_USER, | 117 policy::POLICY_SCOPE_USER, |
| 118 policy::POLICY_SOURCE_CLOUD, |
| 111 policy.DeepCopy(), | 119 policy.DeepCopy(), |
| 112 NULL); | 120 NULL); |
| 113 handler.ApplyPolicySettings(policy_map, &prefs); | 121 handler.ApplyPolicySettings(policy_map, &prefs); |
| 114 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); | 122 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); |
| 115 EXPECT_TRUE(base::Value::Equals(&expected, value)); | 123 EXPECT_TRUE(base::Value::Equals(&expected, value)); |
| 116 } | 124 } |
| 117 | 125 |
| 118 } // namespace extensions | 126 } // namespace extensions |
| OLD | NEW |