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

Side by Side Diff: components/policy/core/browser/configuration_policy_handler_unittest.cc

Issue 341723002: Refactored StringToIntEnumListPolicyHandler to be more general purpose (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review feedback. Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « components/policy/core/browser/configuration_policy_handler.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "base/bind.h"
5 #include "base/callback.h" 6 #include "base/callback.h"
6 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
7 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
8 #include "base/prefs/pref_value_map.h" 9 #include "base/prefs/pref_value_map.h"
9 #include "base/values.h" 10 #include "base/values.h"
10 #include "components/policy/core/browser/configuration_policy_handler.h" 11 #include "components/policy/core/browser/configuration_policy_handler.h"
11 #include "components/policy/core/browser/policy_error_map.h" 12 #include "components/policy/core/browser/policy_error_map.h"
12 #include "components/policy/core/common/policy_map.h" 13 #include "components/policy/core/common/policy_map.h"
13 #include "components/policy/core/common/schema.h" 14 #include "components/policy/core/common/schema.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 16
16 namespace policy { 17 namespace policy {
17 18
18 namespace { 19 namespace {
19 20
20 StringToIntEnumListPolicyHandler::MappingEntry kTestTypeMap[] = { 21 void GetIntegerTypeMap(
21 { "one", 1 }, 22 ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) {
22 { "two", 2 }, 23 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
23 }; 24 "one", scoped_ptr<base::Value>(new base::FundamentalValue(1))));
25 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
26 "two", scoped_ptr<base::Value>(new base::FundamentalValue(2))));
27 }
24 28
25 const char kTestPolicy[] = "unit_test.test_policy"; 29 const char kTestPolicy[] = "unit_test.test_policy";
26 const char kTestPref[] = "unit_test.test_pref"; 30 const char kTestPref[] = "unit_test.test_pref";
27 31
28 class TestSchemaValidatingPolicyHandler : public SchemaValidatingPolicyHandler { 32 class TestSchemaValidatingPolicyHandler : public SchemaValidatingPolicyHandler {
29 public: 33 public:
30 TestSchemaValidatingPolicyHandler(const Schema& schema, 34 TestSchemaValidatingPolicyHandler(const Schema& schema,
31 SchemaOnErrorStrategy strategy) 35 SchemaOnErrorStrategy strategy)
32 : SchemaValidatingPolicyHandler("PolicyForTesting", schema, strategy) {} 36 : SchemaValidatingPolicyHandler("PolicyForTesting", schema, strategy) {}
33 virtual ~TestSchemaValidatingPolicyHandler() {} 37 virtual ~TestSchemaValidatingPolicyHandler() {}
34 38
35 virtual void ApplyPolicySettings(const policy::PolicyMap&, 39 virtual void ApplyPolicySettings(const policy::PolicyMap&,
36 PrefValueMap*) OVERRIDE { 40 PrefValueMap*) OVERRIDE {
37 } 41 }
38 42
39 bool CheckAndGetValueForTest(const PolicyMap& policies, 43 bool CheckAndGetValueForTest(const PolicyMap& policies,
40 scoped_ptr<base::Value>* value) { 44 scoped_ptr<base::Value>* value) {
41 return SchemaValidatingPolicyHandler::CheckAndGetValue( 45 return SchemaValidatingPolicyHandler::CheckAndGetValue(
42 policies, NULL, value); 46 policies, NULL, value);
43 } 47 }
44 }; 48 };
45 49
46 } // namespace 50 } // namespace
47 51
48 TEST(StringToIntEnumListPolicyHandlerTest, CheckPolicySettings) { 52 TEST(StringToIntEnumListPolicyHandlerTest, CheckPolicySettings) {
49 base::ListValue list; 53 base::ListValue list;
50 PolicyMap policy_map; 54 PolicyMap policy_map;
51 PolicyErrorMap errors; 55 PolicyErrorMap errors;
52 StringToIntEnumListPolicyHandler handler( 56 StringMappingListPolicyHandler handler(
53 kTestPolicy, 57 kTestPolicy,
54 kTestPref, 58 kTestPref,
55 kTestTypeMap, 59 base::Bind(GetIntegerTypeMap));
56 kTestTypeMap + arraysize(kTestTypeMap));
57 60
58 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, 61 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY,
59 POLICY_SCOPE_USER, list.DeepCopy(), NULL); 62 POLICY_SCOPE_USER, list.DeepCopy(), NULL);
60 errors.Clear(); 63 errors.Clear();
61 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 64 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
62 EXPECT_TRUE(errors.empty()); 65 EXPECT_TRUE(errors.empty());
63 66
64 list.AppendString("one"); 67 list.AppendString("one");
65 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, 68 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY,
66 POLICY_SCOPE_USER, list.DeepCopy(), NULL); 69 POLICY_SCOPE_USER, list.DeepCopy(), NULL);
(...skipping 11 matching lines...) Expand all
78 81
79 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, 82 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY,
80 POLICY_SCOPE_USER, 83 POLICY_SCOPE_USER,
81 base::Value::CreateStringValue("no list"), NULL); 84 base::Value::CreateStringValue("no list"), NULL);
82 errors.Clear(); 85 errors.Clear();
83 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 86 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
84 EXPECT_FALSE(errors.empty()); 87 EXPECT_FALSE(errors.empty());
85 EXPECT_FALSE(errors.GetErrors(kTestPolicy).empty()); 88 EXPECT_FALSE(errors.GetErrors(kTestPolicy).empty());
86 } 89 }
87 90
88 TEST(StringToIntEnumListPolicyHandlerTest, ApplyPolicySettings) { 91 TEST(StringMappingListPolicyHandlerTest, ApplyPolicySettings) {
89 base::ListValue list; 92 base::ListValue list;
90 base::ListValue expected; 93 base::ListValue expected;
91 PolicyMap policy_map; 94 PolicyMap policy_map;
92 PrefValueMap prefs; 95 PrefValueMap prefs;
93 base::Value* value; 96 base::Value* value;
94 StringToIntEnumListPolicyHandler handler( 97 StringMappingListPolicyHandler handler(
95 kTestPolicy, 98 kTestPolicy,
96 kTestPref, 99 kTestPref,
97 kTestTypeMap, 100 base::Bind(GetIntegerTypeMap));
98 kTestTypeMap + arraysize(kTestTypeMap));
99 101
100 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, 102 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY,
101 POLICY_SCOPE_USER, list.DeepCopy(), NULL); 103 POLICY_SCOPE_USER, list.DeepCopy(), NULL);
102 handler.ApplyPolicySettings(policy_map, &prefs); 104 handler.ApplyPolicySettings(policy_map, &prefs);
103 EXPECT_TRUE(prefs.GetValue(kTestPref, &value)); 105 EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
104 EXPECT_TRUE(base::Value::Equals(&expected, value)); 106 EXPECT_TRUE(base::Value::Equals(&expected, value));
105 107
106 list.AppendString("two"); 108 list.AppendString("two");
107 expected.AppendInteger(2); 109 expected.AppendInteger(2);
108 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, 110 policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY,
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 handler_recommended.ApplyPolicySettings(policy_map_mandatory, &prefs); 689 handler_recommended.ApplyPolicySettings(policy_map_mandatory, &prefs);
688 EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref)); 690 EXPECT_TRUE(prefs.GetValue(kTestPref, &value_set_in_pref));
689 EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref)); 691 EXPECT_TRUE(value_expected_in_pref->Equals(value_set_in_pref));
690 692
691 EXPECT_FALSE( 693 EXPECT_FALSE(
692 handler_none.CheckPolicySettings(policy_map_recommended, &errors)); 694 handler_none.CheckPolicySettings(policy_map_recommended, &errors));
693 EXPECT_FALSE(errors.empty()); 695 EXPECT_FALSE(errors.empty());
694 } 696 }
695 697
696 } // namespace policy 698 } // namespace policy
OLDNEW
« no previous file with comments | « components/policy/core/browser/configuration_policy_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698