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

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

Issue 2539363004: Make base::Value::TYPE a scoped enum. (Closed)
Patch Set: Rebase Created 4 years 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 <cstring> 5 #include <cstring>
6 #include <memory> 6 #include <memory>
7 #include <string> 7 #include <string>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 13 matching lines...) Expand all
24 #if defined(OS_CHROMEOS) 24 #if defined(OS_CHROMEOS)
25 // Checks if two schemas are the same or not. Note that this function doesn't 25 // Checks if two schemas are the same or not. Note that this function doesn't
26 // consider restrictions on integers and strings nor pattern properties. 26 // consider restrictions on integers and strings nor pattern properties.
27 bool IsSameSchema(Schema a, Schema b) { 27 bool IsSameSchema(Schema a, Schema b) {
28 if (a.valid() != b.valid()) 28 if (a.valid() != b.valid())
29 return false; 29 return false;
30 if (!a.valid()) 30 if (!a.valid())
31 return true; 31 return true;
32 if (a.type() != b.type()) 32 if (a.type() != b.type())
33 return false; 33 return false;
34 if (a.type() == base::Value::TYPE_LIST) 34 if (a.type() == base::Value::Type::LIST)
35 return IsSameSchema(a.GetItems(), b.GetItems()); 35 return IsSameSchema(a.GetItems(), b.GetItems());
36 if (a.type() != base::Value::TYPE_DICTIONARY) 36 if (a.type() != base::Value::Type::DICTIONARY)
37 return true; 37 return true;
38 Schema::Iterator a_it = a.GetPropertiesIterator(); 38 Schema::Iterator a_it = a.GetPropertiesIterator();
39 Schema::Iterator b_it = b.GetPropertiesIterator(); 39 Schema::Iterator b_it = b.GetPropertiesIterator();
40 while (!a_it.IsAtEnd()) { 40 while (!a_it.IsAtEnd()) {
41 if (b_it.IsAtEnd()) 41 if (b_it.IsAtEnd())
42 return false; 42 return false;
43 if (strcmp(a_it.key(), b_it.key()) != 0) 43 if (strcmp(a_it.key(), b_it.key()) != 0)
44 return false; 44 return false;
45 if (!IsSameSchema(a_it.schema(), b_it.schema())) 45 if (!IsSameSchema(a_it.schema(), b_it.schema()))
46 return false; 46 return false;
47 a_it.Advance(); 47 a_it.Advance();
48 b_it.Advance(); 48 b_it.Advance();
49 } 49 }
50 if (!b_it.IsAtEnd()) 50 if (!b_it.IsAtEnd())
51 return false; 51 return false;
52 return IsSameSchema(a.GetAdditionalProperties(), b.GetAdditionalProperties()); 52 return IsSameSchema(a.GetAdditionalProperties(), b.GetAdditionalProperties());
53 } 53 }
54 #endif 54 #endif
55 55
56 } // namespace 56 } // namespace
57 57
58 TEST(GeneratePolicySource, ChromeSchemaData) { 58 TEST(GeneratePolicySource, ChromeSchemaData) {
59 Schema schema = Schema::Wrap(GetChromeSchemaData()); 59 Schema schema = Schema::Wrap(GetChromeSchemaData());
60 ASSERT_TRUE(schema.valid()); 60 ASSERT_TRUE(schema.valid());
61 EXPECT_EQ(base::Value::TYPE_DICTIONARY, schema.type()); 61 EXPECT_EQ(base::Value::Type::DICTIONARY, schema.type());
62 62
63 Schema subschema = schema.GetAdditionalProperties(); 63 Schema subschema = schema.GetAdditionalProperties();
64 EXPECT_FALSE(subschema.valid()); 64 EXPECT_FALSE(subschema.valid());
65 65
66 subschema = schema.GetProperty("no such policy exists"); 66 subschema = schema.GetProperty("no such policy exists");
67 EXPECT_FALSE(subschema.valid()); 67 EXPECT_FALSE(subschema.valid());
68 68
69 subschema = schema.GetProperty(key::kSearchSuggestEnabled); 69 subschema = schema.GetProperty(key::kSearchSuggestEnabled);
70 ASSERT_TRUE(subschema.valid()); 70 ASSERT_TRUE(subschema.valid());
71 EXPECT_EQ(base::Value::TYPE_BOOLEAN, subschema.type()); 71 EXPECT_EQ(base::Value::Type::BOOLEAN, subschema.type());
72 72
73 subschema = schema.GetProperty(key::kDefaultCookiesSetting); 73 subschema = schema.GetProperty(key::kDefaultCookiesSetting);
74 ASSERT_TRUE(subschema.valid()); 74 ASSERT_TRUE(subschema.valid());
75 EXPECT_EQ(base::Value::TYPE_INTEGER, subschema.type()); 75 EXPECT_EQ(base::Value::Type::INTEGER, subschema.type());
76 76
77 subschema = schema.GetProperty(key::kProxyMode); 77 subschema = schema.GetProperty(key::kProxyMode);
78 ASSERT_TRUE(subschema.valid()); 78 ASSERT_TRUE(subschema.valid());
79 EXPECT_EQ(base::Value::TYPE_STRING, subschema.type()); 79 EXPECT_EQ(base::Value::Type::STRING, subschema.type());
80 80
81 subschema = schema.GetProperty(key::kURLBlacklist); 81 subschema = schema.GetProperty(key::kURLBlacklist);
82 ASSERT_TRUE(subschema.valid()); 82 ASSERT_TRUE(subschema.valid());
83 EXPECT_EQ(base::Value::TYPE_LIST, subschema.type()); 83 EXPECT_EQ(base::Value::Type::LIST, subschema.type());
84 ASSERT_TRUE(subschema.GetItems().valid()); 84 ASSERT_TRUE(subschema.GetItems().valid());
85 EXPECT_EQ(base::Value::TYPE_STRING, subschema.GetItems().type()); 85 EXPECT_EQ(base::Value::Type::STRING, subschema.GetItems().type());
86 86
87 #if !defined(OS_ANDROID) && !defined(OS_IOS) 87 #if !defined(OS_ANDROID) && !defined(OS_IOS)
88 subschema = schema.GetProperty(key::kExtensionSettings); 88 subschema = schema.GetProperty(key::kExtensionSettings);
89 ASSERT_TRUE(subschema.valid()); 89 ASSERT_TRUE(subschema.valid());
90 ASSERT_EQ(base::Value::TYPE_DICTIONARY, subschema.type()); 90 ASSERT_EQ(base::Value::Type::DICTIONARY, subschema.type());
91 EXPECT_FALSE(subschema.GetAdditionalProperties().valid()); 91 EXPECT_FALSE(subschema.GetAdditionalProperties().valid());
92 EXPECT_FALSE(subschema.GetProperty("no such extension id exists").valid()); 92 EXPECT_FALSE(subschema.GetProperty("no such extension id exists").valid());
93 EXPECT_TRUE(subschema.GetPatternProperties("*").empty()); 93 EXPECT_TRUE(subschema.GetPatternProperties("*").empty());
94 EXPECT_TRUE(subschema.GetPatternProperties("no such extension id").empty()); 94 EXPECT_TRUE(subschema.GetPatternProperties("no such extension id").empty());
95 EXPECT_TRUE(subschema.GetPatternProperties("^[a-p]{32}$").empty()); 95 EXPECT_TRUE(subschema.GetPatternProperties("^[a-p]{32}$").empty());
96 EXPECT_TRUE(subschema.GetPatternProperties( 96 EXPECT_TRUE(subschema.GetPatternProperties(
97 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").empty()); 97 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").empty());
98 EXPECT_TRUE(subschema.GetPatternProperties( 98 EXPECT_TRUE(subschema.GetPatternProperties(
99 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").empty()); 99 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").empty());
100 SchemaList schema_list = 100 SchemaList schema_list =
101 subschema.GetPatternProperties("abcdefghijklmnopabcdefghijklmnop"); 101 subschema.GetPatternProperties("abcdefghijklmnopabcdefghijklmnop");
102 ASSERT_EQ(1u, schema_list.size()); 102 ASSERT_EQ(1u, schema_list.size());
103 subschema = schema_list[0]; 103 subschema = schema_list[0];
104 ASSERT_TRUE(subschema.valid()); 104 ASSERT_TRUE(subschema.valid());
105 ASSERT_EQ(base::Value::TYPE_DICTIONARY, subschema.type()); 105 ASSERT_EQ(base::Value::Type::DICTIONARY, subschema.type());
106 subschema = subschema.GetProperty("installation_mode"); 106 subschema = subschema.GetProperty("installation_mode");
107 ASSERT_TRUE(subschema.valid()); 107 ASSERT_TRUE(subschema.valid());
108 ASSERT_EQ(base::Value::TYPE_STRING, subschema.type()); 108 ASSERT_EQ(base::Value::Type::STRING, subschema.type());
109 109
110 subschema = schema.GetProperty(key::kExtensionSettings).GetProperty("*"); 110 subschema = schema.GetProperty(key::kExtensionSettings).GetProperty("*");
111 ASSERT_TRUE(subschema.valid()); 111 ASSERT_TRUE(subschema.valid());
112 ASSERT_EQ(base::Value::TYPE_DICTIONARY, subschema.type()); 112 ASSERT_EQ(base::Value::Type::DICTIONARY, subschema.type());
113 subschema = subschema.GetProperty("installation_mode"); 113 subschema = subschema.GetProperty("installation_mode");
114 ASSERT_TRUE(subschema.valid()); 114 ASSERT_TRUE(subschema.valid());
115 ASSERT_EQ(base::Value::TYPE_STRING, subschema.type()); 115 ASSERT_EQ(base::Value::Type::STRING, subschema.type());
116 #endif 116 #endif
117 117
118 subschema = schema.GetProperty(key::kProxySettings); 118 subschema = schema.GetProperty(key::kProxySettings);
119 ASSERT_TRUE(subschema.valid()); 119 ASSERT_TRUE(subschema.valid());
120 EXPECT_EQ(base::Value::TYPE_DICTIONARY, subschema.type()); 120 EXPECT_EQ(base::Value::Type::DICTIONARY, subschema.type());
121 EXPECT_FALSE(subschema.GetAdditionalProperties().valid()); 121 EXPECT_FALSE(subschema.GetAdditionalProperties().valid());
122 EXPECT_FALSE(subschema.GetProperty("no such proxy key exists").valid()); 122 EXPECT_FALSE(subschema.GetProperty("no such proxy key exists").valid());
123 ASSERT_TRUE(subschema.GetProperty(key::kProxyMode).valid()); 123 ASSERT_TRUE(subschema.GetProperty(key::kProxyMode).valid());
124 ASSERT_TRUE(subschema.GetProperty(key::kProxyServer).valid()); 124 ASSERT_TRUE(subschema.GetProperty(key::kProxyServer).valid());
125 ASSERT_TRUE(subschema.GetProperty(key::kProxyServerMode).valid()); 125 ASSERT_TRUE(subschema.GetProperty(key::kProxyServerMode).valid());
126 ASSERT_TRUE(subschema.GetProperty(key::kProxyPacUrl).valid()); 126 ASSERT_TRUE(subschema.GetProperty(key::kProxyPacUrl).valid());
127 ASSERT_TRUE(subschema.GetProperty(key::kProxyBypassList).valid()); 127 ASSERT_TRUE(subschema.GetProperty(key::kProxyBypassList).valid());
128 128
129 // Verify that all the Chrome policies are there. 129 // Verify that all the Chrome policies are there.
130 for (Schema::Iterator it = schema.GetPropertiesIterator(); 130 for (Schema::Iterator it = schema.GetPropertiesIterator();
(...skipping 11 matching lines...) Expand all
142 key::kProxyServer, 142 key::kProxyServer,
143 key::kProxyServerMode, 143 key::kProxyServerMode,
144 NULL, 144 NULL,
145 }; 145 };
146 const char** next = kExpectedProperties; 146 const char** next = kExpectedProperties;
147 for (Schema::Iterator it(subschema.GetPropertiesIterator()); 147 for (Schema::Iterator it(subschema.GetPropertiesIterator());
148 !it.IsAtEnd(); it.Advance(), ++next) { 148 !it.IsAtEnd(); it.Advance(), ++next) {
149 ASSERT_TRUE(*next != NULL); 149 ASSERT_TRUE(*next != NULL);
150 EXPECT_STREQ(*next, it.key()); 150 EXPECT_STREQ(*next, it.key());
151 ASSERT_TRUE(it.schema().valid()); 151 ASSERT_TRUE(it.schema().valid());
152 EXPECT_EQ(base::Value::TYPE_STRING, it.schema().type()); 152 EXPECT_EQ(base::Value::Type::STRING, it.schema().type());
153 } 153 }
154 EXPECT_TRUE(*next == NULL); 154 EXPECT_TRUE(*next == NULL);
155 155
156 #if defined(OS_CHROMEOS) 156 #if defined(OS_CHROMEOS)
157 subschema = schema.GetKnownProperty(key::kPowerManagementIdleSettings); 157 subschema = schema.GetKnownProperty(key::kPowerManagementIdleSettings);
158 ASSERT_TRUE(subschema.valid()); 158 ASSERT_TRUE(subschema.valid());
159 159
160 EXPECT_TRUE(IsSameSchema(subschema.GetKnownProperty("AC"), 160 EXPECT_TRUE(IsSameSchema(subschema.GetKnownProperty("AC"),
161 subschema.GetKnownProperty("Battery"))); 161 subschema.GetKnownProperty("Battery")));
162 162
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 base::MakeUnique<base::StringValue>("test_value"), nullptr); 223 base::MakeUnique<base::StringValue>("test_value"), nullptr);
224 SetEnterpriseUsersDefaults(&policy_map); 224 SetEnterpriseUsersDefaults(&policy_map);
225 multiprof_behavior = 225 multiprof_behavior =
226 policy_map.GetValue(key::kChromeOsMultiProfileUserBehavior); 226 policy_map.GetValue(key::kChromeOsMultiProfileUserBehavior);
227 expected = base::StringValue("test_value"); 227 expected = base::StringValue("test_value");
228 EXPECT_TRUE(expected.Equals(multiprof_behavior)); 228 EXPECT_TRUE(expected.Equals(multiprof_behavior));
229 } 229 }
230 #endif 230 #endif
231 231
232 } // namespace policy 232 } // namespace policy
OLDNEW
« no previous file with comments | « components/policy/core/browser/url_blacklist_policy_handler.cc ('k') | components/policy/core/common/mac_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698