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

Side by Side Diff: components/policy/tools/template_writers/writers/admx_writer_unittest.py

Issue 2481183002: Generate ADMX template for Chrome OS policies (Closed)
Patch Set: Couple of fixes after testing Created 3 years, 3 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 6
7 """Unittests for writers.admx_writer.""" 7 """Unittests for writers.admx_writer."""
8 8
9 9
10 import os 10 import os
11 import sys 11 import sys
12 import unittest 12 import unittest
13 if __name__ == '__main__': 13 if __name__ == '__main__':
14 sys.path.append(os.path.join(os.path.dirname(__file__), '../../../..')) 14 sys.path.append(os.path.join(os.path.dirname(__file__), '../../../..'))
15 15
16 16
17 from writers import admx_writer 17 from writers import admx_writer
18 from writers import xml_writer_base_unittest 18 from writers import xml_writer_base_unittest
19 from xml.dom import minidom 19 from xml.dom import minidom
20 20
21 21
22 class AdmxWriterUnittest(xml_writer_base_unittest.XmlWriterBaseTest): 22 class AdmxWriterUnittest(xml_writer_base_unittest.XmlWriterBaseTest):
23 23
24 def _CreateDocumentElement(self):
25 dom_impl = minidom.getDOMImplementation('')
26 doc = dom_impl.createDocument(None, 'root', None)
27 return doc.documentElement
28
24 def setUp(self): 29 def setUp(self):
25 # Writer configuration. This dictionary contains parameter used by the ADMX 30 # Writer configuration. This dictionary contains parameter used by the ADMX
26 # Writer 31 # Writer
27 config = { 32 config = {
28 'win_group_policy_class': 'TestClass',
29 'win_supported_os': 'SUPPORTED_TESTOS', 33 'win_supported_os': 'SUPPORTED_TESTOS',
30 'win_reg_mandatory_key_name': 'Software\\Policies\\Test', 34 'win_config' : {
31 'win_reg_recommended_key_name': 'Software\\Policies\\Test\\Recommended', 35 'win' : {
32 'win_mandatory_category_path': ['test_category'], 36 'reg_mandatory_key_name': 'Software\\Policies\\Test',
33 'win_recommended_category_path': ['test_recommended_category'], 37 'reg_recommended_key_name': 'Software\\Policies\\Test\\Recommended',
34 'win_category_path_strings': { 38 'mandatory_category_path': ['test_category'],
35 'test_category': 'TestCategory', 39 'recommended_category_path': ['test_recommended_category'],
36 'test_recommended_category': 'TestCategory - recommended' 40 'category_path_strings': {
41 'test_category': 'TestCategory',
42 'test_recommended_category': 'TestCategory - recommended',
43 },
44 'namespace': 'ADMXWriter.Test.Namespace',
45 },
46 'chrome_os' : {
47 'reg_mandatory_key_name': 'Software\\Policies\\CrOSTest',
48 'reg_recommended_key_name':
49 'Software\\Policies\\CrOSTest\\Recommended',
50 'mandatory_category_path': ['cros_test_category'],
51 'recommended_category_path': ['cros_test_recommended_category'],
52 'category_path_strings': {
53 'cros_test_category': 'CrOSTestCategory',
54 'cros_test_recommended_category': 'CrOSTestCategory - recommended',
55 },
56 'namespace': 'ADMXWriter.Test.Namespace.ChromeOS',
57 },
37 }, 58 },
38 'admx_namespace': 'ADMXWriter.Test.Namespace',
39 'admx_prefix': 'test_prefix', 59 'admx_prefix': 'test_prefix',
40 'build': 'test_product', 60 'build': 'test_product',
41 } 61 }
42 self.writer = admx_writer.GetWriter(config) 62 self.writer = self._GetWriter(config)
43 self.writer.Init() 63 self.writer.Init()
44 64
65 def _GetWriter(self, config):
66 return admx_writer.GetWriter(config)
67
68 def _GetKey(self):
69 return "Test";
70
71 def _GetCategory(self):
72 return "test_category";
73
74 def _GetCategoryRec(self):
75 return "test_recommended_category";
76
77 def _GetNamespace(self):
78 return "ADMXWriter.Test.Namespace";
79
45 def _GetPoliciesElement(self, doc): 80 def _GetPoliciesElement(self, doc):
46 node_list = doc.getElementsByTagName('policies') 81 node_list = doc.getElementsByTagName('policies')
47 self.assertTrue(node_list.length == 1) 82 self.assertTrue(node_list.length == 1)
48 return node_list.item(0) 83 return node_list.item(0)
49 84
50 def _GetCategoriesElement(self, doc): 85 def _GetCategoriesElement(self, doc):
51 node_list = doc.getElementsByTagName('categories') 86 node_list = doc.getElementsByTagName('categories')
52 self.assertTrue(node_list.length == 1) 87 self.assertTrue(node_list.length == 1)
53 return node_list.item(0) 88 return node_list.item(0)
54 89
55 def testEmpty(self): 90 def testEmpty(self):
56 self.writer.BeginTemplate() 91 self.writer.BeginTemplate()
57 self.writer.EndTemplate() 92 self.writer.EndTemplate()
58 93
59 output = self.writer.GetTemplateText() 94 output = self.writer.GetTemplateText()
60 expected_output = ( 95 expected_output = (
61 '<?xml version="1.0" ?>\n' 96 '<?xml version="1.0" ?>\n'
62 '<policyDefinitions revision="1.0" schemaVersion="1.0">\n' 97 '<policyDefinitions revision="1.0" schemaVersion="1.0">\n'
63 ' <policyNamespaces>\n' 98 ' <policyNamespaces>\n'
64 ' <target namespace="ADMXWriter.Test.Namespace"' 99 ' <target namespace="' + self._GetNamespace() + '"'
65 ' prefix="test_prefix"/>\n' 100 ' prefix="test_prefix"/>\n'
66 ' <using namespace="Microsoft.Policies.Windows" prefix="windows"/>\n' 101 ' <using namespace="Microsoft.Policies.Windows" prefix="windows"/>\n'
67 ' </policyNamespaces>\n' 102 ' </policyNamespaces>\n'
68 ' <resources minRequiredRevision="1.0"/>\n' 103 ' <resources minRequiredRevision="1.0"/>\n'
69 ' <supportedOn>\n' 104 ' <supportedOn>\n'
70 ' <definitions>\n' 105 ' <definitions>\n'
71 ' <definition displayName="' 106 ' <definition displayName="'
72 '$(string.SUPPORTED_TESTOS)" name="SUPPORTED_TESTOS"/>\n' 107 '$(string.SUPPORTED_TESTOS)" name="SUPPORTED_TESTOS"/>\n'
73 ' </definitions>\n' 108 ' </definitions>\n'
74 ' </supportedOn>\n' 109 ' </supportedOn>\n'
75 ' <categories>\n' 110 ' <categories>\n'
76 ' <category displayName="$(string.test_category)"' 111 ' <category displayName="$(string.' + self._GetCategory() + ')"'
77 ' name="test_category"/>\n' 112 ' name="' + self._GetCategory() + '"/>\n'
78 ' <category displayName="$(string.test_recommended_category)"' 113 ' <category displayName="$(string.' + self._GetCategoryRec() + ')"'
79 ' name="test_recommended_category"/>\n' 114 ' name="' + self._GetCategoryRec() + '"/>\n'
80 ' </categories>\n' 115 ' </categories>\n'
81 ' <policies/>\n' 116 ' <policies/>\n'
82 '</policyDefinitions>') 117 '</policyDefinitions>')
83 self.AssertXMLEquals(output, expected_output) 118 self.AssertXMLEquals(output, expected_output)
84 119
85 def testEmptyVersion(self): 120 def testEmptyVersion(self):
86 self.writer.config['version'] = '39.0.0.0' 121 self.writer.config['version'] = '39.0.0.0'
87 self.writer.BeginTemplate() 122 self.writer.BeginTemplate()
88 self.writer.EndTemplate() 123 self.writer.EndTemplate()
89 124
90 output = self.writer.GetTemplateText() 125 output = self.writer.GetTemplateText()
91 expected_output = ( 126 expected_output = (
92 '<?xml version="1.0" ?>\n' 127 '<?xml version="1.0" ?>\n'
93 '<policyDefinitions revision="1.0" schemaVersion="1.0">\n' 128 '<policyDefinitions revision="1.0" schemaVersion="1.0">\n'
94 ' <!--test_product version: 39.0.0.0-->\n' 129 ' <!--test_product version: 39.0.0.0-->\n'
95 ' <policyNamespaces>\n' 130 ' <policyNamespaces>\n'
96 ' <target namespace="ADMXWriter.Test.Namespace"' 131 ' <target namespace="' + self._GetNamespace() + '"'
97 ' prefix="test_prefix"/>\n' 132 ' prefix="test_prefix"/>\n'
98 ' <using namespace="Microsoft.Policies.Windows" prefix="windows"/>\n' 133 ' <using namespace="Microsoft.Policies.Windows" prefix="windows"/>\n'
99 ' </policyNamespaces>\n' 134 ' </policyNamespaces>\n'
100 ' <resources minRequiredRevision="1.0"/>\n' 135 ' <resources minRequiredRevision="1.0"/>\n'
101 ' <supportedOn>\n' 136 ' <supportedOn>\n'
102 ' <definitions>\n' 137 ' <definitions>\n'
103 ' <definition displayName="' 138 ' <definition displayName="'
104 '$(string.SUPPORTED_TESTOS)" name="SUPPORTED_TESTOS"/>\n' 139 '$(string.SUPPORTED_TESTOS)" name="SUPPORTED_TESTOS"/>\n'
105 ' </definitions>\n' 140 ' </definitions>\n'
106 ' </supportedOn>\n' 141 ' </supportedOn>\n'
107 ' <categories>\n' 142 ' <categories>\n'
108 ' <category displayName="$(string.test_category)"' 143 ' <category displayName="$(string.' + self._GetCategory() + ')"'
109 ' name="test_category"/>\n' 144 ' name="' + self._GetCategory() + '"/>\n'
110 ' <category displayName="$(string.test_recommended_category)"' 145 ' <category displayName="$(string.' + self._GetCategoryRec() + ')"'
111 ' name="test_recommended_category"/>\n' 146 ' name="' + self._GetCategoryRec() + '"/>\n'
112 ' </categories>\n' 147 ' </categories>\n'
113 ' <policies/>\n' 148 ' <policies/>\n'
114 '</policyDefinitions>') 149 '</policyDefinitions>')
115 self.AssertXMLEquals(output, expected_output) 150 self.AssertXMLEquals(output, expected_output)
116 151
117 def testEmptyPolicyGroup(self): 152 def testEmptyPolicyGroup(self):
118 empty_policy_group = { 153 empty_policy_group = {
119 'name': 'PolicyGroup', 154 'name': 'PolicyGroup',
120 'policies': [] 155 'policies': []
121 } 156 }
122 # Initialize writer to write a policy group. 157 # Initialize writer to write a policy group.
123 self.writer.BeginTemplate() 158 self.writer.BeginTemplate()
124 # Write policy group 159 # Write policy group
125 self.writer.BeginPolicyGroup(empty_policy_group) 160 self.writer.BeginPolicyGroup(empty_policy_group)
126 self.writer.EndPolicyGroup() 161 self.writer.EndPolicyGroup()
127 162
128 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 163 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
129 expected_output = '' 164 expected_output = ''
130 self.AssertXMLEquals(output, expected_output) 165 self.AssertXMLEquals(output, expected_output)
131 166
132 output = self.GetXMLOfChildren( 167 output = self.GetXMLOfChildren(
133 self._GetCategoriesElement(self.writer._doc)) 168 self._GetCategoriesElement(self.writer._doc))
134 expected_output = ( 169 expected_output = (
135 '<category displayName="$(string.test_category)"' 170 '<category displayName="$(string.' + self._GetCategory() + ')"'
136 ' name="test_category"/>\n' 171 ' name="' + self._GetCategory() + '"/>\n'
137 '<category displayName="$(string.test_recommended_category)"' 172 '<category displayName="$(string.' + self._GetCategoryRec() + ')"'
138 ' name="test_recommended_category"/>\n' 173 ' name="' + self._GetCategoryRec() + '"/>\n'
139 '<category displayName="$(string.PolicyGroup_group)"' 174 '<category displayName="$(string.PolicyGroup_group)"'
140 ' name="PolicyGroup">\n' 175 ' name="PolicyGroup">\n'
141 ' <parentCategory ref="test_category"/>\n' 176 ' <parentCategory ref="' + self._GetCategory() + '"/>\n'
142 '</category>') 177 '</category>')
143 178
144 self.AssertXMLEquals(output, expected_output) 179 self.AssertXMLEquals(output, expected_output)
145 180
146 def testPolicyGroup(self): 181 def testPolicyGroup(self):
147 empty_policy_group = { 182 empty_policy_group = {
148 'name': 'PolicyGroup', 183 'name': 'PolicyGroup',
149 'policies': [ 184 'policies': [
150 {'name': 'PolicyStub2', 185 {'name': 'PolicyStub2',
151 'type': 'main'}, 186 'type': 'main'},
152 {'name': 'PolicyStub1', 187 {'name': 'PolicyStub1',
153 'type': 'main'}, 188 'type': 'main'},
154 ] 189 ]
155 } 190 }
156 # Initialize writer to write a policy group. 191 # Initialize writer to write a policy group.
157 self.writer.BeginTemplate() 192 self.writer.BeginTemplate()
158 # Write policy group 193 # Write policy group
159 self.writer.BeginPolicyGroup(empty_policy_group) 194 self.writer.BeginPolicyGroup(empty_policy_group)
160 self.writer.EndPolicyGroup() 195 self.writer.EndPolicyGroup()
161 196
162 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 197 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
163 expected_output = '' 198 expected_output = ''
164 self.AssertXMLEquals(output, expected_output) 199 self.AssertXMLEquals(output, expected_output)
165 200
166 output = self.GetXMLOfChildren( 201 output = self.GetXMLOfChildren(
167 self._GetCategoriesElement(self.writer._doc)) 202 self._GetCategoriesElement(self.writer._doc))
168 expected_output = ( 203 expected_output = (
169 '<category displayName="$(string.test_category)"' 204 '<category displayName="$(string.' + self._GetCategory() + ')"'
170 ' name="test_category"/>\n' 205 ' name="' + self._GetCategory() + '"/>\n'
171 '<category displayName="$(string.test_recommended_category)"' 206 '<category displayName="$(string.' + self._GetCategoryRec() + ')"'
172 ' name="test_recommended_category"/>\n' 207 ' name="' + self._GetCategoryRec() + '"/>\n'
173 '<category displayName="$(string.PolicyGroup_group)"' 208 '<category displayName="$(string.PolicyGroup_group)"'
174 ' name="PolicyGroup">\n' 209 ' name="PolicyGroup">\n'
175 ' <parentCategory ref="test_category"/>\n' 210 ' <parentCategory ref="' + self._GetCategory() + '"/>\n'
176 '</category>') 211 '</category>')
177 self.AssertXMLEquals(output, expected_output) 212 self.AssertXMLEquals(output, expected_output)
178 213
179 214
180 def _initWriterForPolicy(self, writer, policy): 215 def _initWriterForPolicy(self, writer, policy):
181 '''Initializes the writer to write the given policy next. 216 '''Initializes the writer to write the given policy next.
182 ''' 217 '''
183 policy_group = { 218 policy_group = {
184 'name': 'PolicyGroup', 219 'name': 'PolicyGroup',
185 'policies': [policy] 220 'policies': [policy]
186 } 221 }
187 writer.BeginTemplate() 222 writer.BeginTemplate()
188 writer.BeginPolicyGroup(policy_group) 223 writer.BeginPolicyGroup(policy_group)
189 224
190 def testMainPolicy(self): 225 def testMainPolicy(self):
191 main_policy = { 226 main_policy = {
192 'name': 'DummyMainPolicy', 227 'name': 'DummyMainPolicy',
193 'type': 'main', 228 'type': 'main',
194 } 229 }
195 230
196 self._initWriterForPolicy(self.writer, main_policy) 231 self._initWriterForPolicy(self.writer, main_policy)
197 232
198 self.writer.WritePolicy(main_policy) 233 self.writer.WritePolicy(main_policy)
199 234
200 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 235 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
201 expected_output = ( 236 expected_output = (
202 '<policy class="TestClass" displayName="$(string.DummyMainPolicy)"' 237 '<policy class="' + self.writer.GetClass(main_policy) + '"'
238 ' displayName="$(string.DummyMainPolicy)"'
203 ' explainText="$(string.DummyMainPolicy_Explain)"' 239 ' explainText="$(string.DummyMainPolicy_Explain)"'
204 ' key="Software\\Policies\\Test" name="DummyMainPolicy"' 240 ' key="Software\\Policies\\' + self._GetKey() + '"'
241 ' name="DummyMainPolicy"'
205 ' presentation="$(presentation.DummyMainPolicy)"' 242 ' presentation="$(presentation.DummyMainPolicy)"'
206 ' valueName="DummyMainPolicy">\n' 243 ' valueName="DummyMainPolicy">\n'
207 ' <parentCategory ref="PolicyGroup"/>\n' 244 ' <parentCategory ref="PolicyGroup"/>\n'
208 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 245 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
209 ' <enabledValue>\n' 246 ' <enabledValue>\n'
210 ' <decimal value="1"/>\n' 247 ' <decimal value="1"/>\n'
211 ' </enabledValue>\n' 248 ' </enabledValue>\n'
212 ' <disabledValue>\n' 249 ' <disabledValue>\n'
213 ' <decimal value="0"/>\n' 250 ' <decimal value="0"/>\n'
214 ' </disabledValue>\n' 251 ' </disabledValue>\n'
(...skipping 11 matching lines...) Expand all
226 'name': 'PolicyGroup', 263 'name': 'PolicyGroup',
227 'policies': [main_policy], 264 'policies': [main_policy],
228 } 265 }
229 self.writer.BeginTemplate() 266 self.writer.BeginTemplate()
230 self.writer.BeginRecommendedPolicyGroup(policy_group) 267 self.writer.BeginRecommendedPolicyGroup(policy_group)
231 268
232 self.writer.WriteRecommendedPolicy(main_policy) 269 self.writer.WriteRecommendedPolicy(main_policy)
233 270
234 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 271 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
235 expected_output = ( 272 expected_output = (
236 '<policy class="TestClass" displayName="$(string.DummyMainPolicy)"' 273 '<policy class="' + self.writer.GetClass(main_policy) + '"'
274 ' displayName="$(string.DummyMainPolicy)"'
237 ' explainText="$(string.DummyMainPolicy_Explain)"' 275 ' explainText="$(string.DummyMainPolicy_Explain)"'
238 ' key="Software\\Policies\\Test\\Recommended"' 276 ' key="Software\\Policies\\' + self._GetKey() + '\\Recommended"'
239 ' name="DummyMainPolicy_recommended"' 277 ' name="DummyMainPolicy_recommended"'
240 ' presentation="$(presentation.DummyMainPolicy)"' 278 ' presentation="$(presentation.DummyMainPolicy)"'
241 ' valueName="DummyMainPolicy">\n' 279 ' valueName="DummyMainPolicy">\n'
242 ' <parentCategory ref="PolicyGroup_recommended"/>\n' 280 ' <parentCategory ref="PolicyGroup_recommended"/>\n'
243 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 281 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
244 ' <enabledValue>\n' 282 ' <enabledValue>\n'
245 ' <decimal value="1"/>\n' 283 ' <decimal value="1"/>\n'
246 ' </enabledValue>\n' 284 ' </enabledValue>\n'
247 ' <disabledValue>\n' 285 ' <disabledValue>\n'
248 ' <decimal value="0"/>\n' 286 ' <decimal value="0"/>\n'
(...skipping 17 matching lines...) Expand all
266 'policies': [main_policy], 304 'policies': [main_policy],
267 } 305 }
268 self.writer.BeginTemplate() 306 self.writer.BeginTemplate()
269 self.writer.BeginRecommendedPolicyGroup(policy_group) 307 self.writer.BeginRecommendedPolicyGroup(policy_group)
270 308
271 self.writer.WritePolicy(main_policy) 309 self.writer.WritePolicy(main_policy)
272 self.writer.WriteRecommendedPolicy(main_policy) 310 self.writer.WriteRecommendedPolicy(main_policy)
273 311
274 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 312 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
275 expected_output = ( 313 expected_output = (
276 '<policy class="TestClass" displayName="$(string.DummyMainPolicy)"' 314 '<policy class="' + self.writer.GetClass(main_policy) + '"'
315 ' displayName="$(string.DummyMainPolicy)"'
277 ' explainText="$(string.DummyMainPolicy_Explain)"' 316 ' explainText="$(string.DummyMainPolicy_Explain)"'
278 ' key="Software\\Policies\\Test\\Recommended"' 317 ' key="Software\\Policies\\' + self._GetKey() + '\\Recommended"'
279 ' name="DummyMainPolicy_recommended"' 318 ' name="DummyMainPolicy_recommended"'
280 ' presentation="$(presentation.DummyMainPolicy)"' 319 ' presentation="$(presentation.DummyMainPolicy)"'
281 ' valueName="DummyMainPolicy">\n' 320 ' valueName="DummyMainPolicy">\n'
282 ' <parentCategory ref="PolicyGroup_recommended"/>\n' 321 ' <parentCategory ref="PolicyGroup_recommended"/>\n'
283 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 322 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
284 ' <enabledValue>\n' 323 ' <enabledValue>\n'
285 ' <decimal value="1"/>\n' 324 ' <decimal value="1"/>\n'
286 ' </enabledValue>\n' 325 ' </enabledValue>\n'
287 ' <disabledValue>\n' 326 ' <disabledValue>\n'
288 ' <decimal value="0"/>\n' 327 ' <decimal value="0"/>\n'
289 ' </disabledValue>\n' 328 ' </disabledValue>\n'
290 '</policy>') 329 '</policy>')
291 330
292 self.AssertXMLEquals(output, expected_output) 331 self.AssertXMLEquals(output, expected_output)
293 332
294 def testStringPolicy(self): 333 def testStringPolicy(self):
295 string_policy = { 334 string_policy = {
296 'name': 'SampleStringPolicy', 335 'name': 'SampleStringPolicy',
297 'type': 'string', 336 'type': 'string',
298 } 337 }
299 self._initWriterForPolicy(self.writer, string_policy) 338 self._initWriterForPolicy(self.writer, string_policy)
300 339
301 self.writer.WritePolicy(string_policy) 340 self.writer.WritePolicy(string_policy)
302 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 341 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
303 expected_output = ( 342 expected_output = (
304 '<policy class="TestClass" displayName="$(string.SampleStringPolicy)"' 343 '<policy class="' + self.writer.GetClass(string_policy) + '"'
344 ' displayName="$(string.SampleStringPolicy)"'
305 ' explainText="$(string.SampleStringPolicy_Explain)"' 345 ' explainText="$(string.SampleStringPolicy_Explain)"'
306 ' key="Software\\Policies\\Test" name="SampleStringPolicy"' 346 ' key="Software\\Policies\\' + self._GetKey() + '"'
347 ' name="SampleStringPolicy"'
307 ' presentation="$(presentation.SampleStringPolicy)">\n' 348 ' presentation="$(presentation.SampleStringPolicy)">\n'
308 ' <parentCategory ref="PolicyGroup"/>\n' 349 ' <parentCategory ref="PolicyGroup"/>\n'
309 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 350 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
310 ' <elements>\n' 351 ' <elements>\n'
311 ' <text id="SampleStringPolicy" maxLength="1000000"' 352 ' <text id="SampleStringPolicy" maxLength="1000000"'
312 ' valueName="SampleStringPolicy"/>\n' 353 ' valueName="SampleStringPolicy"/>\n'
313 ' </elements>\n' 354 ' </elements>\n'
314 '</policy>') 355 '</policy>')
315 self.AssertXMLEquals(output, expected_output) 356 self.AssertXMLEquals(output, expected_output)
316 357
317 def testIntPolicy(self): 358 def testIntPolicy(self):
318 int_policy = { 359 int_policy = {
319 'name': 'SampleIntPolicy', 360 'name': 'SampleIntPolicy',
320 'type': 'int', 361 'type': 'int',
321 } 362 }
322 self._initWriterForPolicy(self.writer, int_policy) 363 self._initWriterForPolicy(self.writer, int_policy)
323 364
324 self.writer.WritePolicy(int_policy) 365 self.writer.WritePolicy(int_policy)
325 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 366 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
326 expected_output = ( 367 expected_output = (
327 '<policy class="TestClass" displayName="$(string.SampleIntPolicy)"' 368 '<policy class="' + self.writer.GetClass(int_policy) + '"'
369 ' displayName="$(string.SampleIntPolicy)"'
328 ' explainText="$(string.SampleIntPolicy_Explain)"' 370 ' explainText="$(string.SampleIntPolicy_Explain)"'
329 ' key="Software\\Policies\\Test" name="SampleIntPolicy"' 371 ' key="Software\\Policies\\' + self._GetKey() + '"'
372 ' name="SampleIntPolicy"'
330 ' presentation="$(presentation.SampleIntPolicy)">\n' 373 ' presentation="$(presentation.SampleIntPolicy)">\n'
331 ' <parentCategory ref="PolicyGroup"/>\n' 374 ' <parentCategory ref="PolicyGroup"/>\n'
332 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 375 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
333 ' <elements>\n' 376 ' <elements>\n'
334 ' <decimal id="SampleIntPolicy" maxValue="2000000000" ' 377 ' <decimal id="SampleIntPolicy" maxValue="2000000000" '
335 'valueName="SampleIntPolicy"/>\n' 378 'valueName="SampleIntPolicy"/>\n'
336 ' </elements>\n' 379 ' </elements>\n'
337 '</policy>') 380 '</policy>')
338 self.AssertXMLEquals(output, expected_output) 381 self.AssertXMLEquals(output, expected_output)
339 382
340 def testIntEnumPolicy(self): 383 def testIntEnumPolicy(self):
341 enum_policy = { 384 enum_policy = {
342 'name': 'SampleEnumPolicy', 385 'name': 'SampleEnumPolicy',
343 'type': 'int-enum', 386 'type': 'int-enum',
344 'items': [ 387 'items': [
345 {'name': 'item_1', 'value': 0}, 388 {'name': 'item_1', 'value': 0},
346 {'name': 'item_2', 'value': 1}, 389 {'name': 'item_2', 'value': 1},
347 ] 390 ]
348 } 391 }
349 392
350 self._initWriterForPolicy(self.writer, enum_policy) 393 self._initWriterForPolicy(self.writer, enum_policy)
351 self.writer.WritePolicy(enum_policy) 394 self.writer.WritePolicy(enum_policy)
352 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 395 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
353 expected_output = ( 396 expected_output = (
354 '<policy class="TestClass" displayName="$(string.SampleEnumPolicy)"' 397 '<policy class="' + self.writer.GetClass(enum_policy) + '"'
398 ' displayName="$(string.SampleEnumPolicy)"'
355 ' explainText="$(string.SampleEnumPolicy_Explain)"' 399 ' explainText="$(string.SampleEnumPolicy_Explain)"'
356 ' key="Software\\Policies\\Test" name="SampleEnumPolicy"' 400 ' key="Software\\Policies\\' + self._GetKey() + '"'
401 ' name="SampleEnumPolicy"'
357 ' presentation="$(presentation.SampleEnumPolicy)">\n' 402 ' presentation="$(presentation.SampleEnumPolicy)">\n'
358 ' <parentCategory ref="PolicyGroup"/>\n' 403 ' <parentCategory ref="PolicyGroup"/>\n'
359 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 404 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
360 ' <elements>\n' 405 ' <elements>\n'
361 ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n' 406 ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n'
362 ' <item displayName="$(string.item_1)">\n' 407 ' <item displayName="$(string.SampleEnumPolicy_item_1)">\n'
363 ' <value>\n' 408 ' <value>\n'
364 ' <decimal value="0"/>\n' 409 ' <decimal value="0"/>\n'
365 ' </value>\n' 410 ' </value>\n'
366 ' </item>\n' 411 ' </item>\n'
367 ' <item displayName="$(string.item_2)">\n' 412 ' <item displayName="$(string.SampleEnumPolicy_item_2)">\n'
368 ' <value>\n' 413 ' <value>\n'
369 ' <decimal value="1"/>\n' 414 ' <decimal value="1"/>\n'
370 ' </value>\n' 415 ' </value>\n'
371 ' </item>\n' 416 ' </item>\n'
372 ' </enum>\n' 417 ' </enum>\n'
373 ' </elements>\n' 418 ' </elements>\n'
374 '</policy>') 419 '</policy>')
375 self.AssertXMLEquals(output, expected_output) 420 self.AssertXMLEquals(output, expected_output)
376 421
377 def testStringEnumPolicy(self): 422 def testStringEnumPolicy(self):
(...skipping 10 matching lines...) Expand all
388 # usage inside <string> nodes is correct. 433 # usage inside <string> nodes is correct.
389 dom_impl = minidom.getDOMImplementation('') 434 dom_impl = minidom.getDOMImplementation('')
390 self.writer._doc = dom_impl.createDocument(None, 'policyDefinitions', None) 435 self.writer._doc = dom_impl.createDocument(None, 'policyDefinitions', None)
391 self.writer._active_policies_elem = self.writer._doc.documentElement 436 self.writer._active_policies_elem = self.writer._doc.documentElement
392 self.writer._active_mandatory_policy_group_name = 'PolicyGroup' 437 self.writer._active_mandatory_policy_group_name = 'PolicyGroup'
393 self.writer.WritePolicy(enum_policy) 438 self.writer.WritePolicy(enum_policy)
394 output = self.writer.GetTemplateText() 439 output = self.writer.GetTemplateText()
395 expected_output = ( 440 expected_output = (
396 '<?xml version="1.0" ?>\n' 441 '<?xml version="1.0" ?>\n'
397 '<policyDefinitions>\n' 442 '<policyDefinitions>\n'
398 ' <policy class="TestClass" displayName="$(string.SampleEnumPolicy)"' 443 ' <policy class="' + self.writer.GetClass(enum_policy) + '"'
444 ' displayName="$(string.SampleEnumPolicy)"'
399 ' explainText="$(string.SampleEnumPolicy_Explain)"' 445 ' explainText="$(string.SampleEnumPolicy_Explain)"'
400 ' key="Software\\Policies\\Test" name="SampleEnumPolicy"' 446 ' key="Software\\Policies\\' + self._GetKey() + '"'
447 ' name="SampleEnumPolicy"'
401 ' presentation="$(presentation.SampleEnumPolicy)">\n' 448 ' presentation="$(presentation.SampleEnumPolicy)">\n'
402 ' <parentCategory ref="PolicyGroup"/>\n' 449 ' <parentCategory ref="PolicyGroup"/>\n'
403 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 450 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
404 ' <elements>\n' 451 ' <elements>\n'
405 ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n' 452 ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n'
406 ' <item displayName="$(string.item_1)">\n' 453 ' <item displayName="$(string.SampleEnumPolicy_item_1)">\n'
407 ' <value>\n' 454 ' <value>\n'
408 ' <string>one</string>\n' 455 ' <string>one</string>\n'
409 ' </value>\n' 456 ' </value>\n'
410 ' </item>\n' 457 ' </item>\n'
411 ' <item displayName="$(string.item_2)">\n' 458 ' <item displayName="$(string.SampleEnumPolicy_item_2)">\n'
412 ' <value>\n' 459 ' <value>\n'
413 ' <string>two</string>\n' 460 ' <string>two</string>\n'
414 ' </value>\n' 461 ' </value>\n'
415 ' </item>\n' 462 ' </item>\n'
416 ' </enum>\n' 463 ' </enum>\n'
417 ' </elements>\n' 464 ' </elements>\n'
418 ' </policy>\n' 465 ' </policy>\n'
419 '</policyDefinitions>') 466 '</policyDefinitions>')
420 self.AssertXMLEquals(output, expected_output) 467 self.AssertXMLEquals(output, expected_output)
421 468
422 def testListPolicy(self): 469 def testListPolicy(self):
423 list_policy = { 470 list_policy = {
424 'name': 'SampleListPolicy', 471 'name': 'SampleListPolicy',
425 'type': 'list', 472 'type': 'list',
426 } 473 }
427 self._initWriterForPolicy(self.writer, list_policy) 474 self._initWriterForPolicy(self.writer, list_policy)
428 self.writer.WritePolicy(list_policy) 475 self.writer.WritePolicy(list_policy)
429 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 476 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
430 expected_output = ( 477 expected_output = (
431 '<policy class="TestClass" displayName="$(string.SampleListPolicy)"' 478 '<policy class="' + self.writer.GetClass(list_policy) + '"'
479 ' displayName="$(string.SampleListPolicy)"'
432 ' explainText="$(string.SampleListPolicy_Explain)"' 480 ' explainText="$(string.SampleListPolicy_Explain)"'
433 ' key="Software\\Policies\\Test" name="SampleListPolicy"' 481 ' key="Software\\Policies\\' + self._GetKey() + '"'
482 ' name="SampleListPolicy"'
434 ' presentation="$(presentation.SampleListPolicy)">\n' 483 ' presentation="$(presentation.SampleListPolicy)">\n'
435 ' <parentCategory ref="PolicyGroup"/>\n' 484 ' <parentCategory ref="PolicyGroup"/>\n'
436 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 485 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
437 ' <elements>\n' 486 ' <elements>\n'
438 ' <list id="SampleListPolicyDesc"' 487 ' <list id="SampleListPolicyDesc"'
439 ' key="Software\Policies\Test\SampleListPolicy" valuePrefix=""/>\n' 488 ' key="Software\Policies\\' + self._GetKey() + '\SampleListPolicy"'
489 ' valuePrefix=""/>\n'
440 ' </elements>\n' 490 ' </elements>\n'
441 '</policy>') 491 '</policy>')
442 492
443 self.AssertXMLEquals(output, expected_output) 493 self.AssertXMLEquals(output, expected_output)
444 494
445 def testStringEnumListPolicy(self): 495 def testStringEnumListPolicy(self):
446 list_policy = { 496 list_policy = {
447 'name': 'SampleListPolicy', 497 'name': 'SampleListPolicy',
448 'type': 'string-enum-list', 498 'type': 'string-enum-list',
449 'items': [ 499 'items': [
450 {'name': 'item_1', 'value': 'one'}, 500 {'name': 'item_1', 'value': 'one'},
451 {'name': 'item_2', 'value': 'two'}, 501 {'name': 'item_2', 'value': 'two'},
452 ] 502 ]
453 } 503 }
454 self._initWriterForPolicy(self.writer, list_policy) 504 self._initWriterForPolicy(self.writer, list_policy)
455 self.writer.WritePolicy(list_policy) 505 self.writer.WritePolicy(list_policy)
456 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 506 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
457 expected_output = ( 507 expected_output = (
458 '<policy class="TestClass" displayName="$(string.SampleListPolicy)"' 508 '<policy class="' + self.writer.GetClass(list_policy) + '"'
509 ' displayName="$(string.SampleListPolicy)"'
459 ' explainText="$(string.SampleListPolicy_Explain)"' 510 ' explainText="$(string.SampleListPolicy_Explain)"'
460 ' key="Software\\Policies\\Test" name="SampleListPolicy"' 511 ' key="Software\\Policies\\' + self._GetKey() + '"'
512 ' name="SampleListPolicy"'
461 ' presentation="$(presentation.SampleListPolicy)">\n' 513 ' presentation="$(presentation.SampleListPolicy)">\n'
462 ' <parentCategory ref="PolicyGroup"/>\n' 514 ' <parentCategory ref="PolicyGroup"/>\n'
463 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 515 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
464 ' <elements>\n' 516 ' <elements>\n'
465 ' <list id="SampleListPolicyDesc"' 517 ' <list id="SampleListPolicyDesc"'
466 ' key="Software\Policies\Test\SampleListPolicy" valuePrefix=""/>\n' 518 ' key="Software\Policies\\' + self._GetKey() + '\SampleListPolicy"'
519 ' valuePrefix=""/>\n'
467 ' </elements>\n' 520 ' </elements>\n'
468 '</policy>') 521 '</policy>')
469 522
470 self.AssertXMLEquals(output, expected_output) 523 self.AssertXMLEquals(output, expected_output)
471 524
472 def testDictionaryPolicy(self): 525 def testDictionaryPolicy(self):
473 dict_policy = { 526 dict_policy = {
474 'name': 'SampleDictionaryPolicy', 527 'name': 'SampleDictionaryPolicy',
475 'type': 'dict', 528 'type': 'dict',
476 } 529 }
477 self._initWriterForPolicy(self.writer, dict_policy) 530 self._initWriterForPolicy(self.writer, dict_policy)
478 531
479 self.writer.WritePolicy(dict_policy) 532 self.writer.WritePolicy(dict_policy)
480 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 533 output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
481 expected_output = ( 534 expected_output = (
482 '<policy class="TestClass" displayName="$(string.' 535 '<policy class="' + self.writer.GetClass(dict_policy) + '"'
483 'SampleDictionaryPolicy)"' 536 ' displayName="$(string.SampleDictionaryPolicy)"'
484 ' explainText="$(string.SampleDictionaryPolicy_Explain)"' 537 ' explainText="$(string.SampleDictionaryPolicy_Explain)"'
485 ' key="Software\\Policies\\Test" name="SampleDictionaryPolicy"' 538 ' key="Software\\Policies\\' + self._GetKey() + '"'
539 ' name="SampleDictionaryPolicy"'
486 ' presentation="$(presentation.SampleDictionaryPolicy)">\n' 540 ' presentation="$(presentation.SampleDictionaryPolicy)">\n'
487 ' <parentCategory ref="PolicyGroup"/>\n' 541 ' <parentCategory ref="PolicyGroup"/>\n'
488 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 542 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
489 ' <elements>\n' 543 ' <elements>\n'
490 ' <text id="SampleDictionaryPolicy" maxLength="1000000"' 544 ' <text id="SampleDictionaryPolicy" maxLength="1000000"'
491 ' valueName="SampleDictionaryPolicy"/>\n' 545 ' valueName="SampleDictionaryPolicy"/>\n'
492 ' </elements>\n' 546 ' </elements>\n'
493 '</policy>') 547 '</policy>')
494 self.AssertXMLEquals(output, expected_output) 548 self.AssertXMLEquals(output, expected_output)
495 549
(...skipping 29 matching lines...) Expand all
525 dom_impl = minidom.getDOMImplementation('') 579 dom_impl = minidom.getDOMImplementation('')
526 self.writer._doc = dom_impl.createDocument(None, 'policyDefinitions', None) 580 self.writer._doc = dom_impl.createDocument(None, 'policyDefinitions', None)
527 self.writer._active_policies_elem = self.writer._doc.documentElement 581 self.writer._active_policies_elem = self.writer._doc.documentElement
528 self.writer._active_mandatory_policy_group_name = 'PolicyGroup' 582 self.writer._active_mandatory_policy_group_name = 'PolicyGroup'
529 self.writer.WritePolicy(enum_policy_a) 583 self.writer.WritePolicy(enum_policy_a)
530 self.writer.WritePolicy(enum_policy_b) 584 self.writer.WritePolicy(enum_policy_b)
531 output = self.writer.GetTemplateText() 585 output = self.writer.GetTemplateText()
532 expected_output = ( 586 expected_output = (
533 '<?xml version="1.0" ?>\n' 587 '<?xml version="1.0" ?>\n'
534 '<policyDefinitions>\n' 588 '<policyDefinitions>\n'
535 ' <policy class="TestClass" displayName="$(string.SampleEnumPolicy_A)"' 589 ' <policy class="' + self.writer.GetClass(enum_policy_a) + '"'
590 ' displayName="$(string.SampleEnumPolicy_A)"'
536 ' explainText="$(string.SampleEnumPolicy_A_Explain)"' 591 ' explainText="$(string.SampleEnumPolicy_A_Explain)"'
537 ' key="Software\\Policies\\Test" name="SampleEnumPolicy.A"' 592 ' key="Software\\Policies\\' + self._GetKey() + '"'
593 ' name="SampleEnumPolicy.A"'
538 ' presentation="$(presentation.SampleEnumPolicy.A)">\n' 594 ' presentation="$(presentation.SampleEnumPolicy.A)">\n'
539 ' <parentCategory ref="PolicyGroup"/>\n' 595 ' <parentCategory ref="PolicyGroup"/>\n'
540 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 596 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
541 ' <elements>\n' 597 ' <elements>\n'
542 ' <enum id="SampleEnumPolicy.A" valueName="SampleEnumPolicy.A">\n' 598 ' <enum id="SampleEnumPolicy.A" valueName="SampleEnumPolicy.A">\n'
543 ' <item displayName="$(string.tls1_2)">\n' 599 ' <item displayName="$(string.SampleEnumPolicy_A_tls1_2)">\n'
544 ' <value>\n' 600 ' <value>\n'
545 ' <string>tls1.2</string>\n' 601 ' <string>tls1.2</string>\n'
546 ' </value>\n' 602 ' </value>\n'
547 ' </item>\n' 603 ' </item>\n'
548 ' </enum>\n' 604 ' </enum>\n'
549 ' </elements>\n' 605 ' </elements>\n'
550 ' </policy>\n' 606 ' </policy>\n'
551 ' <policy class="TestClass" displayName="$(string.SampleEnumPolicy_B)"' 607 ' <policy class="' + self.writer.GetClass(enum_policy_b) + '"'
608 ' displayName="$(string.SampleEnumPolicy_B)"'
552 ' explainText="$(string.SampleEnumPolicy_B_Explain)"' 609 ' explainText="$(string.SampleEnumPolicy_B_Explain)"'
553 ' key="Software\\Policies\\Test" name="SampleEnumPolicy.B"' 610 ' key="Software\\Policies\\' + self._GetKey() + '"'
611 ' name="SampleEnumPolicy.B"'
554 ' presentation="$(presentation.SampleEnumPolicy.B)">\n' 612 ' presentation="$(presentation.SampleEnumPolicy.B)">\n'
555 ' <parentCategory ref="PolicyGroup"/>\n' 613 ' <parentCategory ref="PolicyGroup"/>\n'
556 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 614 ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
557 ' <elements>\n' 615 ' <elements>\n'
558 ' <enum id="SampleEnumPolicy.B" valueName="SampleEnumPolicy.B">\n' 616 ' <enum id="SampleEnumPolicy.B" valueName="SampleEnumPolicy.B">\n'
559 ' <item displayName="$(string.tls1_2)">\n' 617 ' <item displayName="$(string.SampleEnumPolicy_B_tls1_2)">\n'
560 ' <value>\n' 618 ' <value>\n'
561 ' <string>tls1.2</string>\n' 619 ' <string>tls1.2</string>\n'
562 ' </value>\n' 620 ' </value>\n'
563 ' </item>\n' 621 ' </item>\n'
564 ' </enum>\n' 622 ' </enum>\n'
565 ' </elements>\n' 623 ' </elements>\n'
566 ' </policy>\n' 624 ' </policy>\n'
567 '</policyDefinitions>') 625 '</policyDefinitions>')
568 self.AssertXMLEquals(output, expected_output) 626 self.AssertXMLEquals(output, expected_output)
569 627
570 628
571 if __name__ == '__main__': 629 if __name__ == '__main__':
572 unittest.main() 630 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698