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