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

Side by Side Diff: chrome/browser/policy/managed_bookmarks_policy_handler_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 "chrome/browser/policy/managed_bookmarks_policy_handler.h" 5 #include "chrome/browser/policy/managed_bookmarks_policy_handler.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 18 matching lines...) Expand all
29 handler_list_.AddHandler(base::WrapUnique<ConfigurationPolicyHandler>( 29 handler_list_.AddHandler(base::WrapUnique<ConfigurationPolicyHandler>(
30 new ManagedBookmarksPolicyHandler(chrome_schema))); 30 new ManagedBookmarksPolicyHandler(chrome_schema)));
31 } 31 }
32 }; 32 };
33 33
34 #if defined(ENABLE_EXTENSIONS) 34 #if defined(ENABLE_EXTENSIONS)
35 TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettings) { 35 TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettings) {
36 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); 36 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL));
37 37
38 PolicyMap policy; 38 PolicyMap policy;
39 policy.Set(key::kManagedBookmarks, 39 policy.Set(key::kManagedBookmarks, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
40 POLICY_LEVEL_MANDATORY,
41 POLICY_SCOPE_USER,
42 POLICY_SOURCE_CLOUD, 40 POLICY_SOURCE_CLOUD,
43 base::JSONReader::Read("[" 41 base::JSONReader::Read("["
44 // The following gets filtered out from the 42 // The following gets filtered out from the
45 // JSON string when parsed. 43 // JSON string when parsed.
46 " {" 44 " {"
47 " \"toplevel_name\": \"abc 123\"" 45 " \"toplevel_name\": \"abc 123\""
48 " }," 46 " },"
49 " {" 47 " {"
50 " \"name\": \"Google\"," 48 " \"name\": \"Google\","
51 " \"url\": \"google.com\"" 49 " \"url\": \"google.com\""
(...skipping 17 matching lines...) Expand all
69 " \"name\": \"More Stuff\"," 67 " \"name\": \"More Stuff\","
70 " \"children\": [" 68 " \"children\": ["
71 " {" 69 " {"
72 " \"name\": \"Bugs\"," 70 " \"name\": \"Bugs\","
73 " \"url\": \"crbug.com\"" 71 " \"url\": \"crbug.com\""
74 " }" 72 " }"
75 " ]" 73 " ]"
76 " }" 74 " }"
77 " ]" 75 " ]"
78 " }" 76 " }"
79 "]") 77 "]"),
80 .release(), 78 nullptr);
81 NULL);
82 UpdateProviderPolicy(policy); 79 UpdateProviderPolicy(policy);
83 const base::Value* pref_value = NULL; 80 const base::Value* pref_value = NULL;
84 EXPECT_TRUE( 81 EXPECT_TRUE(
85 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); 82 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value));
86 ASSERT_TRUE(pref_value); 83 ASSERT_TRUE(pref_value);
87 84
88 // Make sure the kManagedBookmarksFolderName pref is set correctly. 85 // Make sure the kManagedBookmarksFolderName pref is set correctly.
89 const base::Value* folder_value = NULL; 86 const base::Value* folder_value = NULL;
90 std::string folder_name; 87 std::string folder_name;
91 EXPECT_TRUE(store_->GetValue(bookmarks::prefs::kManagedBookmarksFolderName, 88 EXPECT_TRUE(store_->GetValue(bookmarks::prefs::kManagedBookmarksFolderName,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 .Build()); 135 .Build());
139 EXPECT_TRUE(pref_value->Equals(expected.get())); 136 EXPECT_TRUE(pref_value->Equals(expected.get()));
140 } 137 }
141 #endif // defined(ENABLE_EXTENSIONS) 138 #endif // defined(ENABLE_EXTENSIONS)
142 139
143 #if defined(ENABLE_EXTENSIONS) 140 #if defined(ENABLE_EXTENSIONS)
144 TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettingsNoTitle) { 141 TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettingsNoTitle) {
145 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); 142 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL));
146 143
147 PolicyMap policy; 144 PolicyMap policy;
148 policy.Set(key::kManagedBookmarks, 145 policy.Set(key::kManagedBookmarks, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
149 POLICY_LEVEL_MANDATORY,
150 POLICY_SCOPE_USER,
151 POLICY_SOURCE_CLOUD, 146 POLICY_SOURCE_CLOUD,
152 base::JSONReader::Read("[" 147 base::JSONReader::Read("["
153 " {" 148 " {"
154 " \"name\": \"Google\"," 149 " \"name\": \"Google\","
155 " \"url\": \"google.com\"" 150 " \"url\": \"google.com\""
156 " }" 151 " }"
157 "]") 152 "]"),
158 .release(), 153 nullptr);
159 NULL);
160 UpdateProviderPolicy(policy); 154 UpdateProviderPolicy(policy);
161 const base::Value* pref_value = NULL; 155 const base::Value* pref_value = NULL;
162 EXPECT_TRUE( 156 EXPECT_TRUE(
163 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); 157 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value));
164 ASSERT_TRUE(pref_value); 158 ASSERT_TRUE(pref_value);
165 159
166 // Make sure the kManagedBookmarksFolderName pref is set correctly. 160 // Make sure the kManagedBookmarksFolderName pref is set correctly.
167 const base::Value* folder_value = NULL; 161 const base::Value* folder_value = NULL;
168 std::string folder_name; 162 std::string folder_name;
169 EXPECT_TRUE(store_->GetValue(bookmarks::prefs::kManagedBookmarksFolderName, 163 EXPECT_TRUE(store_->GetValue(bookmarks::prefs::kManagedBookmarksFolderName,
(...skipping 10 matching lines...) Expand all
180 .Build()) 174 .Build())
181 .Build()); 175 .Build());
182 EXPECT_TRUE(pref_value->Equals(expected.get())); 176 EXPECT_TRUE(pref_value->Equals(expected.get()));
183 } 177 }
184 #endif // defined(ENABLE_EXTENSIONS) 178 #endif // defined(ENABLE_EXTENSIONS)
185 179
186 TEST_F(ManagedBookmarksPolicyHandlerTest, WrongPolicyType) { 180 TEST_F(ManagedBookmarksPolicyHandlerTest, WrongPolicyType) {
187 PolicyMap policy; 181 PolicyMap policy;
188 // The expected type is base::ListValue, but this policy sets it as an 182 // The expected type is base::ListValue, but this policy sets it as an
189 // unparsed base::StringValue. Any type other than ListValue should fail. 183 // unparsed base::StringValue. Any type other than ListValue should fail.
190 policy.Set(key::kManagedBookmarks, 184 policy.Set(
191 POLICY_LEVEL_MANDATORY, 185 key::kManagedBookmarks, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
192 POLICY_SCOPE_USER, 186 POLICY_SOURCE_CLOUD,
193 POLICY_SOURCE_CLOUD, 187 base::WrapUnique(new base::StringValue("["
194 new base::StringValue( 188 " {"
195 "[" 189 " \"name\": \"Google\","
196 " {" 190 " \"url\": \"google.com\""
197 " \"name\": \"Google\"," 191 " },"
198 " \"url\": \"google.com\"" 192 "]")),
199 " }," 193 nullptr);
200 "]"),
201 NULL);
202 UpdateProviderPolicy(policy); 194 UpdateProviderPolicy(policy);
203 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); 195 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL));
204 } 196 }
205 197
206 #if defined(ENABLE_EXTENSIONS) 198 #if defined(ENABLE_EXTENSIONS)
207 TEST_F(ManagedBookmarksPolicyHandlerTest, UnknownKeys) { 199 TEST_F(ManagedBookmarksPolicyHandlerTest, UnknownKeys) {
208 PolicyMap policy; 200 PolicyMap policy;
209 policy.Set(key::kManagedBookmarks, 201 policy.Set(key::kManagedBookmarks, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
210 POLICY_LEVEL_MANDATORY,
211 POLICY_SCOPE_USER,
212 POLICY_SOURCE_CLOUD, 202 POLICY_SOURCE_CLOUD,
213 base::JSONReader::Read("[" 203 base::JSONReader::Read("["
214 " {" 204 " {"
215 " \"name\": \"Google\"," 205 " \"name\": \"Google\","
216 " \"unknown\": \"should be ignored\"," 206 " \"unknown\": \"should be ignored\","
217 " \"url\": \"google.com\"" 207 " \"url\": \"google.com\""
218 " }" 208 " }"
219 "]") 209 "]"),
220 .release(), 210 nullptr);
221 NULL);
222 UpdateProviderPolicy(policy); 211 UpdateProviderPolicy(policy);
223 const base::Value* pref_value = NULL; 212 const base::Value* pref_value = NULL;
224 EXPECT_TRUE( 213 EXPECT_TRUE(
225 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); 214 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value));
226 ASSERT_TRUE(pref_value); 215 ASSERT_TRUE(pref_value);
227 216
228 std::unique_ptr<base::Value> expected( 217 std::unique_ptr<base::Value> expected(
229 extensions::ListBuilder() 218 extensions::ListBuilder()
230 .Append(extensions::DictionaryBuilder() 219 .Append(extensions::DictionaryBuilder()
231 .Set("name", "Google") 220 .Set("name", "Google")
232 .Set("url", "http://google.com/") 221 .Set("url", "http://google.com/")
233 .Build()) 222 .Build())
234 .Build()); 223 .Build());
235 EXPECT_TRUE(pref_value->Equals(expected.get())); 224 EXPECT_TRUE(pref_value->Equals(expected.get()));
236 } 225 }
237 #endif 226 #endif
238 227
239 #if defined(ENABLE_EXTENSIONS) 228 #if defined(ENABLE_EXTENSIONS)
240 TEST_F(ManagedBookmarksPolicyHandlerTest, BadBookmark) { 229 TEST_F(ManagedBookmarksPolicyHandlerTest, BadBookmark) {
241 PolicyMap policy; 230 PolicyMap policy;
242 policy.Set(key::kManagedBookmarks, 231 policy.Set(key::kManagedBookmarks, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
243 POLICY_LEVEL_MANDATORY,
244 POLICY_SCOPE_USER,
245 POLICY_SOURCE_CLOUD, 232 POLICY_SOURCE_CLOUD,
246 base::JSONReader::Read("[" 233 base::JSONReader::Read("["
247 " {" 234 " {"
248 " \"name\": \"Empty\"," 235 " \"name\": \"Empty\","
249 " \"url\": \"\"" 236 " \"url\": \"\""
250 " }," 237 " },"
251 " {" 238 " {"
252 " \"name\": \"Invalid type\"," 239 " \"name\": \"Invalid type\","
253 " \"url\": 4" 240 " \"url\": 4"
254 " }," 241 " },"
255 " {" 242 " {"
256 " \"name\": \"Invalid URL\"," 243 " \"name\": \"Invalid URL\","
257 " \"url\": \"?\"" 244 " \"url\": \"?\""
258 " }," 245 " },"
259 " {" 246 " {"
260 " \"name\": \"Google\"," 247 " \"name\": \"Google\","
261 " \"url\": \"google.com\"" 248 " \"url\": \"google.com\""
262 " }" 249 " }"
263 "]") 250 "]"),
264 .release(), 251 nullptr);
265 NULL);
266 UpdateProviderPolicy(policy); 252 UpdateProviderPolicy(policy);
267 const base::Value* pref_value = NULL; 253 const base::Value* pref_value = NULL;
268 EXPECT_TRUE( 254 EXPECT_TRUE(
269 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); 255 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value));
270 ASSERT_TRUE(pref_value); 256 ASSERT_TRUE(pref_value);
271 257
272 std::unique_ptr<base::Value> expected( 258 std::unique_ptr<base::Value> expected(
273 extensions::ListBuilder() 259 extensions::ListBuilder()
274 .Append(extensions::DictionaryBuilder() 260 .Append(extensions::DictionaryBuilder()
275 .Set("name", "Google") 261 .Set("name", "Google")
276 .Set("url", "http://google.com/") 262 .Set("url", "http://google.com/")
277 .Build()) 263 .Build())
278 .Build()); 264 .Build());
279 EXPECT_TRUE(pref_value->Equals(expected.get())); 265 EXPECT_TRUE(pref_value->Equals(expected.get()));
280 } 266 }
281 #endif 267 #endif
282 268
283 } // namespace policy 269 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/javascript_policy_handler_unittest.cc ('k') | chrome/browser/policy/policy_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698