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

Side by Side Diff: components/policy/core/common/schema_registry_tracking_policy_provider_unittest.cc

Issue 1940153002: Use std::unique_ptr to express ownership of base::Value in PolicyMap::Entry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: another-fix Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/policy/core/common/schema_registry_tracking_policy_provider .h" 5 #include "components/policy/core/common/schema_registry_tracking_policy_provider .h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/memory/ptr_util.h"
11 #include "base/values.h" 12 #include "base/values.h"
12 #include "components/policy/core/common/mock_configuration_policy_provider.h" 13 #include "components/policy/core/common/mock_configuration_policy_provider.h"
13 #include "components/policy/core/common/policy_bundle.h" 14 #include "components/policy/core/common/policy_bundle.h"
14 #include "components/policy/core/common/policy_map.h" 15 #include "components/policy/core/common/policy_map.h"
15 #include "components/policy/core/common/policy_types.h" 16 #include "components/policy/core/common/policy_types.h"
16 #include "components/policy/core/common/schema.h" 17 #include "components/policy/core/common/schema.h"
17 #include "components/policy/core/common/schema_registry.h" 18 #include "components/policy/core/common/schema_registry.h"
18 #include "testing/gmock/include/gmock/gmock.h" 19 #include "testing/gmock/include/gmock/gmock.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 21
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 Mock::VerifyAndClearExpectations(&mock_provider_); 78 Mock::VerifyAndClearExpectations(&mock_provider_);
78 79
79 const PolicyBundle empty_bundle; 80 const PolicyBundle empty_bundle;
80 EXPECT_TRUE( 81 EXPECT_TRUE(
81 schema_registry_tracking_provider_.policies().Equals(empty_bundle)); 82 schema_registry_tracking_provider_.policies().Equals(empty_bundle));
82 } 83 }
83 84
84 TEST_F(SchemaRegistryTrackingPolicyProviderTest, PassOnChromePolicy) { 85 TEST_F(SchemaRegistryTrackingPolicyProviderTest, PassOnChromePolicy) {
85 PolicyBundle bundle; 86 PolicyBundle bundle;
86 const PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, ""); 87 const PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, "");
87 bundle.Get(chrome_ns).Set("policy", 88 bundle.Get(chrome_ns).Set(
88 POLICY_LEVEL_MANDATORY, 89 "policy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
89 POLICY_SCOPE_USER, 90 base::WrapUnique(new base::StringValue("visible")), nullptr);
90 POLICY_SOURCE_CLOUD,
91 new base::StringValue("visible"),
92 NULL);
93 91
94 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_)); 92 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_));
95 std::unique_ptr<PolicyBundle> delegate_bundle(new PolicyBundle); 93 std::unique_ptr<PolicyBundle> delegate_bundle(new PolicyBundle);
96 delegate_bundle->CopyFrom(bundle); 94 delegate_bundle->CopyFrom(bundle);
97 delegate_bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz")) 95 delegate_bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"))
98 .Set("foo", 96 .Set("foo", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
99 POLICY_LEVEL_MANDATORY,
100 POLICY_SCOPE_USER,
101 POLICY_SOURCE_CLOUD, 97 POLICY_SOURCE_CLOUD,
102 new base::StringValue("not visible"), 98 base::WrapUnique(new base::StringValue("not visible")), nullptr);
103 NULL);
104 mock_provider_.UpdatePolicy(std::move(delegate_bundle)); 99 mock_provider_.UpdatePolicy(std::move(delegate_bundle));
105 Mock::VerifyAndClearExpectations(&observer_); 100 Mock::VerifyAndClearExpectations(&observer_);
106 101
107 EXPECT_FALSE(schema_registry_tracking_provider_.IsInitializationComplete( 102 EXPECT_FALSE(schema_registry_tracking_provider_.IsInitializationComplete(
108 POLICY_DOMAIN_EXTENSIONS)); 103 POLICY_DOMAIN_EXTENSIONS));
109 EXPECT_TRUE(schema_registry_tracking_provider_.policies().Equals(bundle)); 104 EXPECT_TRUE(schema_registry_tracking_provider_.policies().Equals(bundle));
110 } 105 }
111 106
112 TEST_F(SchemaRegistryTrackingPolicyProviderTest, RefreshPolicies) { 107 TEST_F(SchemaRegistryTrackingPolicyProviderTest, RefreshPolicies) {
113 EXPECT_CALL(mock_provider_, RefreshPolicies()); 108 EXPECT_CALL(mock_provider_, RefreshPolicies());
114 schema_registry_tracking_provider_.RefreshPolicies(); 109 schema_registry_tracking_provider_.RefreshPolicies();
115 Mock::VerifyAndClearExpectations(&mock_provider_); 110 Mock::VerifyAndClearExpectations(&mock_provider_);
116 } 111 }
117 112
118 TEST_F(SchemaRegistryTrackingPolicyProviderTest, SchemaReady) { 113 TEST_F(SchemaRegistryTrackingPolicyProviderTest, SchemaReady) {
119 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_)); 114 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_));
120 schema_registry_.SetReady(POLICY_DOMAIN_CHROME); 115 schema_registry_.SetReady(POLICY_DOMAIN_CHROME);
121 schema_registry_.SetReady(POLICY_DOMAIN_EXTENSIONS); 116 schema_registry_.SetReady(POLICY_DOMAIN_EXTENSIONS);
122 Mock::VerifyAndClearExpectations(&observer_); 117 Mock::VerifyAndClearExpectations(&observer_);
123 118
124 EXPECT_TRUE(schema_registry_tracking_provider_.IsInitializationComplete( 119 EXPECT_TRUE(schema_registry_tracking_provider_.IsInitializationComplete(
125 policy::POLICY_DOMAIN_EXTENSIONS)); 120 policy::POLICY_DOMAIN_EXTENSIONS));
126 } 121 }
127 122
128 TEST_F(SchemaRegistryTrackingPolicyProviderTest, SchemaReadyWithComponents) { 123 TEST_F(SchemaRegistryTrackingPolicyProviderTest, SchemaReadyWithComponents) {
129 PolicyMap policy_map; 124 PolicyMap policy_map;
130 policy_map.Set("foo", 125 policy_map.Set("foo", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
131 POLICY_LEVEL_MANDATORY,
132 POLICY_SCOPE_USER,
133 POLICY_SOURCE_CLOUD, 126 POLICY_SOURCE_CLOUD,
134 new base::StringValue("omg"), 127 base::WrapUnique(new base::StringValue("omg")), nullptr);
135 NULL);
136 std::unique_ptr<PolicyBundle> bundle(new PolicyBundle); 128 std::unique_ptr<PolicyBundle> bundle(new PolicyBundle);
137 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, "")).CopyFrom(policy_map); 129 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, "")).CopyFrom(policy_map);
138 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz")) 130 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"))
139 .CopyFrom(policy_map); 131 .CopyFrom(policy_map);
140 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_)); 132 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_));
141 mock_provider_.UpdatePolicy(std::move(bundle)); 133 mock_provider_.UpdatePolicy(std::move(bundle));
142 Mock::VerifyAndClearExpectations(&observer_); 134 Mock::VerifyAndClearExpectations(&observer_);
143 135
144 EXPECT_CALL(mock_provider_, RefreshPolicies()).Times(0); 136 EXPECT_CALL(mock_provider_, RefreshPolicies()).Times(0);
145 schema_registry_.RegisterComponent( 137 schema_registry_.RegisterComponent(
(...skipping 26 matching lines...) Expand all
172 } 164 }
173 165
174 TEST_F(SchemaRegistryTrackingPolicyProviderTest, DelegateUpdates) { 166 TEST_F(SchemaRegistryTrackingPolicyProviderTest, DelegateUpdates) {
175 schema_registry_.RegisterComponent( 167 schema_registry_.RegisterComponent(
176 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"), CreateTestSchema()); 168 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, "xyz"), CreateTestSchema());
177 EXPECT_FALSE(schema_registry_.IsReady()); 169 EXPECT_FALSE(schema_registry_.IsReady());
178 EXPECT_FALSE(schema_registry_tracking_provider_.IsInitializationComplete( 170 EXPECT_FALSE(schema_registry_tracking_provider_.IsInitializationComplete(
179 policy::POLICY_DOMAIN_EXTENSIONS)); 171 policy::POLICY_DOMAIN_EXTENSIONS));
180 172
181 PolicyMap policy_map; 173 PolicyMap policy_map;
182 policy_map.Set("foo", 174 policy_map.Set("foo", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
183 POLICY_LEVEL_MANDATORY,
184 POLICY_SCOPE_USER,
185 POLICY_SOURCE_CLOUD, 175 POLICY_SOURCE_CLOUD,
186 new base::StringValue("omg"), 176 base::WrapUnique(new base::StringValue("omg")), nullptr);
187 NULL);
188 // Chrome policy updates are visible even if the components aren't ready. 177 // Chrome policy updates are visible even if the components aren't ready.
189 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_)); 178 EXPECT_CALL(observer_, OnUpdatePolicy(&schema_registry_tracking_provider_));
190 mock_provider_.UpdateChromePolicy(policy_map); 179 mock_provider_.UpdateChromePolicy(policy_map);
191 Mock::VerifyAndClearExpectations(&observer_); 180 Mock::VerifyAndClearExpectations(&observer_);
192 181
193 EXPECT_CALL(mock_provider_, RefreshPolicies()); 182 EXPECT_CALL(mock_provider_, RefreshPolicies());
194 schema_registry_.SetReady(POLICY_DOMAIN_CHROME); 183 schema_registry_.SetReady(POLICY_DOMAIN_CHROME);
195 schema_registry_.SetReady(POLICY_DOMAIN_EXTENSIONS); 184 schema_registry_.SetReady(POLICY_DOMAIN_EXTENSIONS);
196 EXPECT_TRUE(schema_registry_.IsReady()); 185 EXPECT_TRUE(schema_registry_.IsReady());
197 Mock::VerifyAndClearExpectations(&mock_provider_); 186 Mock::VerifyAndClearExpectations(&mock_provider_);
(...skipping 18 matching lines...) Expand all
216 TEST_F(SchemaRegistryTrackingPolicyProviderTest, RemoveAndAddComponent) { 205 TEST_F(SchemaRegistryTrackingPolicyProviderTest, RemoveAndAddComponent) {
217 EXPECT_CALL(mock_provider_, RefreshPolicies()); 206 EXPECT_CALL(mock_provider_, RefreshPolicies());
218 const PolicyNamespace ns(POLICY_DOMAIN_EXTENSIONS, "xyz"); 207 const PolicyNamespace ns(POLICY_DOMAIN_EXTENSIONS, "xyz");
219 schema_registry_.SetReady(POLICY_DOMAIN_CHROME); 208 schema_registry_.SetReady(POLICY_DOMAIN_CHROME);
220 schema_registry_.RegisterComponent(ns, CreateTestSchema()); 209 schema_registry_.RegisterComponent(ns, CreateTestSchema());
221 schema_registry_.SetReady(POLICY_DOMAIN_EXTENSIONS); 210 schema_registry_.SetReady(POLICY_DOMAIN_EXTENSIONS);
222 Mock::VerifyAndClearExpectations(&mock_provider_); 211 Mock::VerifyAndClearExpectations(&mock_provider_);
223 212
224 // Serve policy for |ns|. 213 // Serve policy for |ns|.
225 PolicyBundle platform_policy; 214 PolicyBundle platform_policy;
226 platform_policy.Get(ns).Set("foo", 215 platform_policy.Get(ns).Set(
227 POLICY_LEVEL_MANDATORY, 216 "foo", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
228 POLICY_SCOPE_USER, 217 base::WrapUnique(new base::StringValue("omg")), nullptr);
229 POLICY_SOURCE_CLOUD,
230 new base::StringValue("omg"),
231 NULL);
232 std::unique_ptr<PolicyBundle> copy(new PolicyBundle); 218 std::unique_ptr<PolicyBundle> copy(new PolicyBundle);
233 copy->CopyFrom(platform_policy); 219 copy->CopyFrom(platform_policy);
234 EXPECT_CALL(observer_, OnUpdatePolicy(_)); 220 EXPECT_CALL(observer_, OnUpdatePolicy(_));
235 mock_provider_.UpdatePolicy(std::move(copy)); 221 mock_provider_.UpdatePolicy(std::move(copy));
236 Mock::VerifyAndClearExpectations(&observer_); 222 Mock::VerifyAndClearExpectations(&observer_);
237 EXPECT_TRUE( 223 EXPECT_TRUE(
238 schema_registry_tracking_provider_.policies().Equals(platform_policy)); 224 schema_registry_tracking_provider_.policies().Equals(platform_policy));
239 225
240 // Now remove that component. 226 // Now remove that component.
241 EXPECT_CALL(observer_, OnUpdatePolicy(_)); 227 EXPECT_CALL(observer_, OnUpdatePolicy(_));
(...skipping 11 matching lines...) Expand all
253 EXPECT_CALL(observer_, OnUpdatePolicy(_)); 239 EXPECT_CALL(observer_, OnUpdatePolicy(_));
254 copy.reset(new PolicyBundle); 240 copy.reset(new PolicyBundle);
255 copy->CopyFrom(platform_policy); 241 copy->CopyFrom(platform_policy);
256 mock_provider_.UpdatePolicy(std::move(copy)); 242 mock_provider_.UpdatePolicy(std::move(copy));
257 Mock::VerifyAndClearExpectations(&observer_); 243 Mock::VerifyAndClearExpectations(&observer_);
258 EXPECT_TRUE( 244 EXPECT_TRUE(
259 schema_registry_tracking_provider_.policies().Equals(platform_policy)); 245 schema_registry_tracking_provider_.policies().Equals(platform_policy));
260 } 246 }
261 247
262 } // namespace policy 248 } // namespace policy
OLDNEW
« no previous file with comments | « components/policy/core/common/schema_map_unittest.cc ('k') | components/policy/tools/generate_policy_source.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698