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

Side by Side Diff: components/policy/core/browser/configuration_policy_pref_store_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 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 "components/policy/core/browser/configuration_policy_pref_store.h" 5 #include "components/policy/core/browser/configuration_policy_pref_store.h"
6 6
7 #include <memory>
7 #include <string> 8 #include <string>
9 #include <utility>
8 10
9 #include "base/callback.h" 11 #include "base/callback.h"
10 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
11 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
12 #include "base/run_loop.h" 14 #include "base/run_loop.h"
13 #include "components/policy/core/browser/configuration_policy_handler.h" 15 #include "components/policy/core/browser/configuration_policy_handler.h"
14 #include "components/policy/core/browser/configuration_policy_pref_store_test.h" 16 #include "components/policy/core/browser/configuration_policy_pref_store_test.h"
15 #include "components/policy/core/common/external_data_fetcher.h" 17 #include "components/policy/core/common/external_data_fetcher.h"
16 #include "components/policy/core/common/policy_details.h" 18 #include "components/policy/core/common/policy_details.h"
17 #include "components/policy/core/common/policy_map.h" 19 #include "components/policy/core/common/policy_map.h"
(...skipping 29 matching lines...) Expand all
47 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler( 49 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler(
48 kTestPolicy, kTestPref, base::Value::TYPE_LIST))); 50 kTestPolicy, kTestPref, base::Value::TYPE_LIST)));
49 } 51 }
50 }; 52 };
51 53
52 TEST_F(ConfigurationPolicyPrefStoreListTest, GetDefault) { 54 TEST_F(ConfigurationPolicyPrefStoreListTest, GetDefault) {
53 EXPECT_FALSE(store_->GetValue(kTestPref, NULL)); 55 EXPECT_FALSE(store_->GetValue(kTestPref, NULL));
54 } 56 }
55 57
56 TEST_F(ConfigurationPolicyPrefStoreListTest, SetValue) { 58 TEST_F(ConfigurationPolicyPrefStoreListTest, SetValue) {
57 base::ListValue* in_value = new base::ListValue(); 59 std::unique_ptr<base::ListValue> in_value(new base::ListValue());
58 in_value->Append(new base::StringValue("test1")); 60 in_value->Append(new base::StringValue("test1"));
59 in_value->Append(new base::StringValue("test2,")); 61 in_value->Append(new base::StringValue("test2,"));
60 PolicyMap policy; 62 PolicyMap policy;
61 policy.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 63 policy.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
62 POLICY_SOURCE_CLOUD, in_value, nullptr); 64 POLICY_SOURCE_CLOUD, in_value->CreateDeepCopy(), nullptr);
63 UpdateProviderPolicy(policy); 65 UpdateProviderPolicy(policy);
64 const base::Value* value = NULL; 66 const base::Value* value = NULL;
65 EXPECT_TRUE(store_->GetValue(kTestPref, &value)); 67 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
66 ASSERT_TRUE(value); 68 ASSERT_TRUE(value);
67 EXPECT_TRUE(in_value->Equals(value)); 69 EXPECT_TRUE(in_value->Equals(value));
68 } 70 }
69 71
70 // Test cases for string-valued policy settings. 72 // Test cases for string-valued policy settings.
71 class ConfigurationPolicyPrefStoreStringTest 73 class ConfigurationPolicyPrefStoreStringTest
72 : public ConfigurationPolicyPrefStoreTest { 74 : public ConfigurationPolicyPrefStoreTest {
73 void SetUp() override { 75 void SetUp() override {
74 handler_list_.AddHandler( 76 handler_list_.AddHandler(
75 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler( 77 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler(
76 kTestPolicy, kTestPref, base::Value::TYPE_STRING))); 78 kTestPolicy, kTestPref, base::Value::TYPE_STRING)));
77 } 79 }
78 }; 80 };
79 81
80 TEST_F(ConfigurationPolicyPrefStoreStringTest, GetDefault) { 82 TEST_F(ConfigurationPolicyPrefStoreStringTest, GetDefault) {
81 EXPECT_FALSE(store_->GetValue(kTestPref, NULL)); 83 EXPECT_FALSE(store_->GetValue(kTestPref, NULL));
82 } 84 }
83 85
84 TEST_F(ConfigurationPolicyPrefStoreStringTest, SetValue) { 86 TEST_F(ConfigurationPolicyPrefStoreStringTest, SetValue) {
85 PolicyMap policy; 87 PolicyMap policy;
86 policy.Set(kTestPolicy, 88 policy.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
87 POLICY_LEVEL_MANDATORY,
88 POLICY_SCOPE_USER,
89 POLICY_SOURCE_CLOUD, 89 POLICY_SOURCE_CLOUD,
90 new base::StringValue("http://chromium.org"), 90 base::WrapUnique(new base::StringValue("http://chromium.org")),
91 NULL); 91 nullptr);
92 UpdateProviderPolicy(policy); 92 UpdateProviderPolicy(policy);
93 const base::Value* value = NULL; 93 const base::Value* value = NULL;
94 EXPECT_TRUE(store_->GetValue(kTestPref, &value)); 94 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
95 ASSERT_TRUE(value); 95 ASSERT_TRUE(value);
96 EXPECT_TRUE(base::StringValue("http://chromium.org").Equals(value)); 96 EXPECT_TRUE(base::StringValue("http://chromium.org").Equals(value));
97 } 97 }
98 98
99 // Test cases for boolean-valued policy settings. 99 // Test cases for boolean-valued policy settings.
100 class ConfigurationPolicyPrefStoreBooleanTest 100 class ConfigurationPolicyPrefStoreBooleanTest
101 : public ConfigurationPolicyPrefStoreTest { 101 : public ConfigurationPolicyPrefStoreTest {
102 void SetUp() override { 102 void SetUp() override {
103 handler_list_.AddHandler( 103 handler_list_.AddHandler(
104 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler( 104 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler(
105 kTestPolicy, kTestPref, base::Value::TYPE_BOOLEAN))); 105 kTestPolicy, kTestPref, base::Value::TYPE_BOOLEAN)));
106 } 106 }
107 }; 107 };
108 108
109 TEST_F(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) { 109 TEST_F(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) {
110 EXPECT_FALSE(store_->GetValue(kTestPref, NULL)); 110 EXPECT_FALSE(store_->GetValue(kTestPref, NULL));
111 } 111 }
112 112
113 TEST_F(ConfigurationPolicyPrefStoreBooleanTest, SetValue) { 113 TEST_F(ConfigurationPolicyPrefStoreBooleanTest, SetValue) {
114 PolicyMap policy; 114 PolicyMap policy;
115 policy.Set(kTestPolicy, 115 policy.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
116 POLICY_LEVEL_MANDATORY,
117 POLICY_SCOPE_USER,
118 POLICY_SOURCE_CLOUD, 116 POLICY_SOURCE_CLOUD,
119 new base::FundamentalValue(false), 117 base::WrapUnique(new base::FundamentalValue(false)), nullptr);
120 NULL);
121 UpdateProviderPolicy(policy); 118 UpdateProviderPolicy(policy);
122 const base::Value* value = NULL; 119 const base::Value* value = NULL;
123 EXPECT_TRUE(store_->GetValue(kTestPref, &value)); 120 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
124 ASSERT_TRUE(value); 121 ASSERT_TRUE(value);
125 bool boolean_value = true; 122 bool boolean_value = true;
126 bool result = value->GetAsBoolean(&boolean_value); 123 bool result = value->GetAsBoolean(&boolean_value);
127 ASSERT_TRUE(result); 124 ASSERT_TRUE(result);
128 EXPECT_FALSE(boolean_value); 125 EXPECT_FALSE(boolean_value);
129 126
130 policy.Set(kTestPolicy, 127 policy.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
131 POLICY_LEVEL_MANDATORY,
132 POLICY_SCOPE_USER,
133 POLICY_SOURCE_CLOUD, 128 POLICY_SOURCE_CLOUD,
134 new base::FundamentalValue(true), 129 base::WrapUnique(new base::FundamentalValue(true)), nullptr);
135 NULL);
136 UpdateProviderPolicy(policy); 130 UpdateProviderPolicy(policy);
137 value = NULL; 131 value = NULL;
138 EXPECT_TRUE(store_->GetValue(kTestPref, &value)); 132 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
139 boolean_value = false; 133 boolean_value = false;
140 result = value->GetAsBoolean(&boolean_value); 134 result = value->GetAsBoolean(&boolean_value);
141 ASSERT_TRUE(result); 135 ASSERT_TRUE(result);
142 EXPECT_TRUE(boolean_value); 136 EXPECT_TRUE(boolean_value);
143 } 137 }
144 138
145 // Test cases for integer-valued policy settings. 139 // Test cases for integer-valued policy settings.
146 class ConfigurationPolicyPrefStoreIntegerTest 140 class ConfigurationPolicyPrefStoreIntegerTest
147 : public ConfigurationPolicyPrefStoreTest { 141 : public ConfigurationPolicyPrefStoreTest {
148 void SetUp() override { 142 void SetUp() override {
149 handler_list_.AddHandler( 143 handler_list_.AddHandler(
150 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler( 144 base::WrapUnique<ConfigurationPolicyHandler>(new SimplePolicyHandler(
151 kTestPolicy, kTestPref, base::Value::TYPE_INTEGER))); 145 kTestPolicy, kTestPref, base::Value::TYPE_INTEGER)));
152 } 146 }
153 }; 147 };
154 148
155 TEST_F(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) { 149 TEST_F(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) {
156 EXPECT_FALSE(store_->GetValue(kTestPref, NULL)); 150 EXPECT_FALSE(store_->GetValue(kTestPref, NULL));
157 } 151 }
158 152
159 TEST_F(ConfigurationPolicyPrefStoreIntegerTest, SetValue) { 153 TEST_F(ConfigurationPolicyPrefStoreIntegerTest, SetValue) {
160 PolicyMap policy; 154 PolicyMap policy;
161 policy.Set(kTestPolicy, 155 policy.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
162 POLICY_LEVEL_MANDATORY,
163 POLICY_SCOPE_USER,
164 POLICY_SOURCE_CLOUD, 156 POLICY_SOURCE_CLOUD,
165 new base::FundamentalValue(2), 157 base::WrapUnique(new base::FundamentalValue(2)), nullptr);
166 NULL);
167 UpdateProviderPolicy(policy); 158 UpdateProviderPolicy(policy);
168 const base::Value* value = NULL; 159 const base::Value* value = NULL;
169 EXPECT_TRUE(store_->GetValue(kTestPref, &value)); 160 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
170 EXPECT_TRUE(base::FundamentalValue(2).Equals(value)); 161 EXPECT_TRUE(base::FundamentalValue(2).Equals(value));
171 } 162 }
172 163
173 // Exercises the policy refresh mechanism. 164 // Exercises the policy refresh mechanism.
174 class ConfigurationPolicyPrefStoreRefreshTest 165 class ConfigurationPolicyPrefStoreRefreshTest
175 : public ConfigurationPolicyPrefStoreTest { 166 : public ConfigurationPolicyPrefStoreTest {
176 protected: 167 protected:
(...skipping 11 matching lines...) Expand all
188 } 179 }
189 180
190 PrefStoreObserverMock observer_; 181 PrefStoreObserverMock observer_;
191 }; 182 };
192 183
193 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) { 184 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) {
194 const base::Value* value = NULL; 185 const base::Value* value = NULL;
195 EXPECT_FALSE(store_->GetValue(kTestPolicy, NULL)); 186 EXPECT_FALSE(store_->GetValue(kTestPolicy, NULL));
196 187
197 PolicyMap policy; 188 PolicyMap policy;
198 policy.Set(kTestPolicy, 189 policy.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
199 POLICY_LEVEL_MANDATORY,
200 POLICY_SCOPE_USER,
201 POLICY_SOURCE_CLOUD, 190 POLICY_SOURCE_CLOUD,
202 new base::StringValue("http://www.chromium.org"), 191 base::WrapUnique(new base::StringValue("http://www.chromium.org")),
203 NULL); 192 nullptr);
204 UpdateProviderPolicy(policy); 193 UpdateProviderPolicy(policy);
205 observer_.VerifyAndResetChangedKey(kTestPref); 194 observer_.VerifyAndResetChangedKey(kTestPref);
206 EXPECT_TRUE(store_->GetValue(kTestPref, &value)); 195 EXPECT_TRUE(store_->GetValue(kTestPref, &value));
207 EXPECT_TRUE(base::StringValue("http://www.chromium.org").Equals(value)); 196 EXPECT_TRUE(base::StringValue("http://www.chromium.org").Equals(value));
208 197
209 UpdateProviderPolicy(policy); 198 UpdateProviderPolicy(policy);
210 EXPECT_TRUE(observer_.changed_keys.empty()); 199 EXPECT_TRUE(observer_.changed_keys.empty());
211 200
212 policy.Erase(kTestPolicy); 201 policy.Erase(kTestPolicy);
213 UpdateProviderPolicy(policy); 202 UpdateProviderPolicy(policy);
214 observer_.VerifyAndResetChangedKey(kTestPref); 203 observer_.VerifyAndResetChangedKey(kTestPref);
215 EXPECT_FALSE(store_->GetValue(kTestPref, NULL)); 204 EXPECT_FALSE(store_->GetValue(kTestPref, NULL));
216 } 205 }
217 206
218 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) { 207 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) {
219 EXPECT_FALSE(store_->IsInitializationComplete()); 208 EXPECT_FALSE(store_->IsInitializationComplete());
220 EXPECT_CALL(provider_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) 209 EXPECT_CALL(provider_, IsInitializationComplete(POLICY_DOMAIN_CHROME))
221 .WillRepeatedly(Return(true)); 210 .WillRepeatedly(Return(true));
222 PolicyMap policy; 211 PolicyMap policy;
223 UpdateProviderPolicy(policy); 212 UpdateProviderPolicy(policy);
224 EXPECT_TRUE(observer_.initialized); 213 EXPECT_TRUE(observer_.initialized);
225 EXPECT_TRUE(observer_.initialization_success); 214 EXPECT_TRUE(observer_.initialization_success);
226 Mock::VerifyAndClearExpectations(&observer_); 215 Mock::VerifyAndClearExpectations(&observer_);
227 EXPECT_TRUE(store_->IsInitializationComplete()); 216 EXPECT_TRUE(store_->IsInitializationComplete());
228 } 217 }
229 218
230 } // namespace policy 219 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698