195640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org#!/usr/bin/env python 295640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org# Copyright (c) 2012 The Chromium Authors. All rights reserved. 301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# Use of this source code is governed by a BSD-style license that can be 401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# found in the LICENSE file. 501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org"""Unittests for grit.format.policy_templates.writers.admx_writer.""" 801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgimport os 1101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgimport sys 1201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgimport unittest 1301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgif __name__ == '__main__': 1498b76c0017dbdc61506f146d197d594b1ce07db7joi@chromium.org sys.path.append(os.path.join(os.path.dirname(__file__), '../../../..')) 1501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.format.policy_templates.writers import admx_writer 1801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.format.policy_templates.writers import xml_writer_base_unittest 1901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom xml.dom import minidom 2001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 226fb6d62a2a05b7a7c268cc4e6bf0452e376e1990joaodasilva@chromium.orgclass AdmxWriterUnittest(xml_writer_base_unittest.XmlWriterBaseTest): 2301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _CreateDocumentElement(self): 2501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org dom_impl = minidom.getDOMImplementation('') 2601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org doc = dom_impl.createDocument(None, 'root', None) 2701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org return doc.documentElement 2801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def setUp(self): 3001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # Writer configuration. This dictionary contains parameter used by the ADMX 3101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # Writer 3201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org config = { 3301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'win_group_policy_class': 'TestClass', 3401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'win_supported_os': 'SUPPORTED_TESTOS', 350bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'win_reg_mandatory_key_name': 'Software\\Policies\\Test', 360bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'win_reg_recommended_key_name': 'Software\\Policies\\Test\\Recommended', 370bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'win_mandatory_category_path': ['test_category'], 380bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'win_recommended_category_path': ['test_recommended_category'], 3901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'admx_namespace': 'ADMXWriter.Test.Namespace', 4001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'admx_prefix': 'test_prefix' 4101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 4201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer = admx_writer.GetWriter(config) 4301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.Init() 4401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _GetPoliciesElement(self, doc): 4601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org node_list = doc.getElementsByTagName('policies') 4701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.assertTrue(node_list.length == 1) 4801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org return node_list.item(0) 4901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _GetCategoriesElement(self, doc): 5101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org node_list = doc.getElementsByTagName('categories') 5201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.assertTrue(node_list.length == 1) 5301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org return node_list.item(0) 5401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testEmpty(self): 5601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.BeginTemplate() 5701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.EndTemplate() 5801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.writer.GetTemplateText() 6001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 6101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<?xml version="1.0" ?>\n' 6201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<policyDefinitions revision="1.0" schemaVersion="1.0">\n' 6301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <policyNamespaces>\n' 6401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <target namespace="ADMXWriter.Test.Namespace"' 6501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' prefix="test_prefix"/>\n' 6601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <using namespace="Microsoft.Policies.Windows" prefix="windows"/>\n' 6701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </policyNamespaces>\n' 6801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <resources minRequiredRevision="1.0"/>\n' 6901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <supportedOn>\n' 7001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <definitions>\n' 7101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <definition displayName="' 7201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '$(string.SUPPORTED_TESTOS)" name="SUPPORTED_TESTOS"/>\n' 7301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </definitions>\n' 7401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </supportedOn>\n' 7501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <categories>\n' 7601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <category displayName="$(string.test_category)"' 7701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' name="test_category"/>\n' 780bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' <category displayName="$(string.test_recommended_category)"' 790bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' name="test_recommended_category"/>\n' 8001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </categories>\n' 8101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <policies/>\n' 8201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</policyDefinitions>') 8301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 8401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 8501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testEmptyPolicyGroup(self): 8601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org empty_policy_group = { 8701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'PolicyGroup', 8801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'policies': [] 8901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 9001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # Initialize writer to write a policy group. 9101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.BeginTemplate() 9201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # Write policy group 9301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.BeginPolicyGroup(empty_policy_group) 9401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.EndPolicyGroup() 9501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 9601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 9701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = '' 9801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 9901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 10001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren( 10101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._GetCategoriesElement(self.writer._doc)) 10201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 10301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<category displayName="$(string.test_category)"' 10401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' name="test_category"/>\n' 1050bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org '<category displayName="$(string.test_recommended_category)"' 1060bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' name="test_recommended_category"/>\n' 10701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<category displayName="$(string.PolicyGroup_group)"' 10801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' name="PolicyGroup">\n' 10901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="test_category"/>\n' 11001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</category>') 11101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 11201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 11301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 11401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testPolicyGroup(self): 11501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org empty_policy_group = { 11601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'PolicyGroup', 11701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'policies': [ 11801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'name': 'PolicyStub2', 11901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'main'}, 12001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'name': 'PolicyStub1', 12101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'main'}, 12201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ] 12301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 12401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # Initialize writer to write a policy group. 12501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.BeginTemplate() 12601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # Write policy group 12701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.BeginPolicyGroup(empty_policy_group) 12801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.EndPolicyGroup() 12901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 13001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 13101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = '' 13201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 13301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 13401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren( 13501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._GetCategoriesElement(self.writer._doc)) 13601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 13701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<category displayName="$(string.test_category)"' 13801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' name="test_category"/>\n' 1390bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org '<category displayName="$(string.test_recommended_category)"' 1400bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' name="test_recommended_category"/>\n' 14101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<category displayName="$(string.PolicyGroup_group)"' 14201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' name="PolicyGroup">\n' 14301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="test_category"/>\n' 14401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</category>') 14501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 14601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 14701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 14801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _initWriterForPolicy(self, writer, policy): 14901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Initializes the writer to write the given policy next. 15001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ''' 15101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org policy_group = { 15201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'PolicyGroup', 15301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'policies': [policy] 15401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 15501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org writer.BeginTemplate() 15601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org writer.BeginPolicyGroup(policy_group) 15701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 15801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testMainPolicy(self): 15901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org main_policy = { 16001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'DummyMainPolicy', 16101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'main', 16201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 16301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 16401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._initWriterForPolicy(self.writer, main_policy) 16501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 16601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.WritePolicy(main_policy) 16701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 16801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 16901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 17001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<policy class="TestClass" displayName="$(string.DummyMainPolicy)"' 17101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' explainText="$(string.DummyMainPolicy_Explain)"' 17201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' key="Software\\Policies\\Test" name="DummyMainPolicy"' 17301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' presentation="$(presentation.DummyMainPolicy)"' 17401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' valueName="DummyMainPolicy">\n' 17501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 17601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 17701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <enabledValue>\n' 17801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <decimal value="1"/>\n' 17901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </enabledValue>\n' 18001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <disabledValue>\n' 18101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <decimal value="0"/>\n' 18201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </disabledValue>\n' 18301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</policy>') 18401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 18501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 18601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1870bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org def testRecommendedPolicy(self): 1880bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org main_policy = { 1890bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'name': 'DummyMainPolicy', 1900bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'type': 'main', 1910bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org } 1920bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 1930bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org policy_group = { 1940bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'name': 'PolicyGroup', 1950bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 'policies': [main_policy], 1960bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org } 1970bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org self.writer.BeginTemplate() 1980bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org self.writer.BeginRecommendedPolicyGroup(policy_group) 1990bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 2000bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org self.writer.WriteRecommendedPolicy(main_policy) 2010bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 2020bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 203740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org expected_output = ( 204740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org '<policy class="TestClass" displayName="$(string.DummyMainPolicy)"' 205740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' explainText="$(string.DummyMainPolicy_Explain)"' 206740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' key="Software\\Policies\\Test\\Recommended"' 207740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' name="DummyMainPolicy_recommended"' 208740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' presentation="$(presentation.DummyMainPolicy)"' 209740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' valueName="DummyMainPolicy">\n' 210740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' <parentCategory ref="PolicyGroup_recommended"/>\n' 211740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 212740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' <enabledValue>\n' 213740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' <decimal value="1"/>\n' 214740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' </enabledValue>\n' 215740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' <disabledValue>\n' 216740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' <decimal value="0"/>\n' 217740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org ' </disabledValue>\n' 218740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org '</policy>') 219740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 220740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org self.AssertXMLEquals(output, expected_output) 221740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 222740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org def testRecommendedOnlyPolicy(self): 223740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org main_policy = { 224740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 'name': 'DummyMainPolicy', 225740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 'type': 'main', 226740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 'features': { 227740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 'can_be_recommended': True, 228740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 'can_be_mandatory': False, 229740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org } 230740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org } 231740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 232740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org policy_group = { 233740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 'name': 'PolicyGroup', 234740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 'policies': [main_policy], 235740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org } 236740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org self.writer.BeginTemplate() 237740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org self.writer.BeginRecommendedPolicyGroup(policy_group) 238740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 239740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org self.writer.WritePolicy(main_policy) 240740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org self.writer.WriteRecommendedPolicy(main_policy) 241740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org 242740badd5e3e44434a9a47b5d16749daac1e8ea80joaodasilva@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 2430bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org expected_output = ( 2440bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org '<policy class="TestClass" displayName="$(string.DummyMainPolicy)"' 2450bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' explainText="$(string.DummyMainPolicy_Explain)"' 2460bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' key="Software\\Policies\\Test\\Recommended"' 2470bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' name="DummyMainPolicy_recommended"' 2480bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' presentation="$(presentation.DummyMainPolicy)"' 2490bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' valueName="DummyMainPolicy">\n' 2500bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' <parentCategory ref="PolicyGroup_recommended"/>\n' 2510bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 2520bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' <enabledValue>\n' 2530bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' <decimal value="1"/>\n' 2540bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' </enabledValue>\n' 2550bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' <disabledValue>\n' 2560bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' <decimal value="0"/>\n' 2570bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org ' </disabledValue>\n' 2580bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org '</policy>') 2590bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 2600bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org self.AssertXMLEquals(output, expected_output) 2610bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org 26201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testStringPolicy(self): 26301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org string_policy = { 26401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'SampleStringPolicy', 26501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'string', 26601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 26701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._initWriterForPolicy(self.writer, string_policy) 26801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 26901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.WritePolicy(string_policy) 27001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 27101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 27201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<policy class="TestClass" displayName="$(string.SampleStringPolicy)"' 27301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' explainText="$(string.SampleStringPolicy_Explain)"' 27401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' key="Software\\Policies\\Test" name="SampleStringPolicy"' 27501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' presentation="$(presentation.SampleStringPolicy)">\n' 27601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 27701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 27801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <elements>\n' 27901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <text id="SampleStringPolicy" valueName="SampleStringPolicy"/>\n' 28001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </elements>\n' 28101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</policy>') 28201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 28301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 28401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testIntPolicy(self): 28501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org int_policy = { 28601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'SampleIntPolicy', 28701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'int', 28801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 28901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._initWriterForPolicy(self.writer, int_policy) 29001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 29101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.WritePolicy(int_policy) 29201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 29301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 29401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<policy class="TestClass" displayName="$(string.SampleIntPolicy)"' 29501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' explainText="$(string.SampleIntPolicy_Explain)"' 29601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' key="Software\\Policies\\Test" name="SampleIntPolicy"' 29701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' presentation="$(presentation.SampleIntPolicy)">\n' 29801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 29901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 30001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <elements>\n' 3019286469aaa9be3f2bef0156a27faf105b8d55449pastarmovj@chromium.org ' <decimal id="SampleIntPolicy" maxValue="2000000000" ' 3029286469aaa9be3f2bef0156a27faf105b8d55449pastarmovj@chromium.org 'valueName="SampleIntPolicy"/>\n' 30301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </elements>\n' 30401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</policy>') 30501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 30601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 30701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testIntEnumPolicy(self): 30801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org enum_policy = { 30901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'SampleEnumPolicy', 31001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'int-enum', 31101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'items': [ 31201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'name': 'item_1', 'value': 0}, 31301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'name': 'item_2', 'value': 1}, 31401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ] 31501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 31601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 31701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._initWriterForPolicy(self.writer, enum_policy) 31801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.WritePolicy(enum_policy) 31901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 32001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 32101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<policy class="TestClass" displayName="$(string.SampleEnumPolicy)"' 32201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' explainText="$(string.SampleEnumPolicy_Explain)"' 32301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' key="Software\\Policies\\Test" name="SampleEnumPolicy"' 32401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' presentation="$(presentation.SampleEnumPolicy)">\n' 32501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 32601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 32701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <elements>\n' 32801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n' 32901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <item displayName="$(string.item_1)">\n' 33001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <value>\n' 33101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <decimal value="0"/>\n' 33201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </value>\n' 33301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </item>\n' 33401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <item displayName="$(string.item_2)">\n' 33501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <value>\n' 33601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <decimal value="1"/>\n' 33701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </value>\n' 33801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </item>\n' 33901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </enum>\n' 34001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </elements>\n' 34101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</policy>') 34201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 34301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 34401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testStringEnumPolicy(self): 34501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org enum_policy = { 34601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'SampleEnumPolicy', 34701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'string-enum', 34801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'items': [ 34901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'name': 'item_1', 'value': 'one'}, 35001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'name': 'item_2', 'value': 'two'}, 35101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ] 35201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 35301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 35401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # This test is different than the others because it also tests that space 35501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # usage inside <string> nodes is correct. 35601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org dom_impl = minidom.getDOMImplementation('') 35701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer._doc = dom_impl.createDocument(None, 'policyDefinitions', None) 35801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer._active_policies_elem = self.writer._doc.documentElement 3590bb959423818266efea82162f48ad83e5eb2e8b2joaodasilva@chromium.org self.writer._active_mandatory_policy_group_name = 'PolicyGroup' 36001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.WritePolicy(enum_policy) 36101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.writer.GetTemplateText() 36201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 36301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<?xml version="1.0" ?>\n' 36401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<policyDefinitions>\n' 36501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <policy class="TestClass" displayName="$(string.SampleEnumPolicy)"' 36601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' explainText="$(string.SampleEnumPolicy_Explain)"' 36701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' key="Software\\Policies\\Test" name="SampleEnumPolicy"' 36801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' presentation="$(presentation.SampleEnumPolicy)">\n' 36901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 37001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 37101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <elements>\n' 37201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n' 37301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <item displayName="$(string.item_1)">\n' 37401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <value>\n' 37501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <string>one</string>\n' 37601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </value>\n' 37701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </item>\n' 37801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <item displayName="$(string.item_2)">\n' 37901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <value>\n' 38001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <string>two</string>\n' 38101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </value>\n' 38201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </item>\n' 38301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </enum>\n' 38401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </elements>\n' 38501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </policy>\n' 38601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</policyDefinitions>') 38701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 38801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 38901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testListPolicy(self): 39001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org list_policy = { 39101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'name': 'SampleListPolicy', 39201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'type': 'list', 39301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 39401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self._initWriterForPolicy(self.writer, list_policy) 39501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.writer.WritePolicy(list_policy) 39601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 39701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org expected_output = ( 398786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org '<policy class="TestClass" displayName="$(string.SampleListPolicy)"' 399786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' explainText="$(string.SampleListPolicy_Explain)"' 400786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' key="Software\\Policies\\Test" name="SampleListPolicy"' 401786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' presentation="$(presentation.SampleListPolicy)">\n' 402786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 403786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 404786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' <elements>\n' 405786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' <list id="SampleListPolicyDesc"' 406786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' key="Software\Policies\Test\SampleListPolicy" valuePrefix=""/>\n' 407786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ' </elements>\n' 408786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org '</policy>') 409786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org 410786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org self.AssertXMLEquals(output, expected_output) 411786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org 412786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org def testStringEnumListPolicy(self): 413786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org list_policy = { 414786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org 'name': 'SampleListPolicy', 415786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org 'type': 'string-enum-list', 416786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org 'items': [ 417786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org {'name': 'item_1', 'value': 'one'}, 418786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org {'name': 'item_2', 'value': 'two'}, 419786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org ] 420786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org } 421786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org self._initWriterForPolicy(self.writer, list_policy) 422786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org self.writer.WritePolicy(list_policy) 423786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 424786be15cb6c0f7d78f3eab9fda9d4266619ddbf0joaodasilva@chromium.org expected_output = ( 42501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '<policy class="TestClass" displayName="$(string.SampleListPolicy)"' 42601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' explainText="$(string.SampleListPolicy_Explain)"' 42701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' key="Software\\Policies\\Test" name="SampleListPolicy"' 42801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' presentation="$(presentation.SampleListPolicy)">\n' 42901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 43001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 43101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <elements>\n' 43201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' <list id="SampleListPolicyDesc"' 43301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' key="Software\Policies\Test\SampleListPolicy" valuePrefix=""/>\n' 43401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ' </elements>\n' 43501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '</policy>') 43601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 43701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.AssertXMLEquals(output, expected_output) 43801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 439248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org def testDictionaryPolicy(self): 440248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org dict_policy = { 441248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org 'name': 'SampleDictionaryPolicy', 442248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org 'type': 'dict', 443248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org } 444248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org self._initWriterForPolicy(self.writer, dict_policy) 445248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org 446248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org self.writer.WritePolicy(dict_policy) 447248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) 448248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org expected_output = ( 449248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org '<policy class="TestClass" displayName="$(string.' 450248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org 'SampleDictionaryPolicy)"' 451248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' explainText="$(string.SampleDictionaryPolicy_Explain)"' 452248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' key="Software\\Policies\\Test" name="SampleDictionaryPolicy"' 453248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' presentation="$(presentation.SampleDictionaryPolicy)">\n' 454248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' <parentCategory ref="PolicyGroup"/>\n' 455248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' 456248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' <elements>\n' 457248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' <text id="SampleDictionaryPolicy" ' 458248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org 'valueName="SampleDictionaryPolicy"/>\n' 459248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org ' </elements>\n' 460248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org '</policy>') 461248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org self.AssertXMLEquals(output, expected_output) 462248837b02a1e8da230541fa6c12e4d1b1dea2701joaodasilva@chromium.org 46301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def testPlatform(self): 46401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org # Test that the writer correctly chooses policies of platform Windows. 46501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.assertTrue(self.writer.IsPolicySupported({ 46601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'supported_on': [ 46701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'platforms': ['win', 'zzz']}, {'platforms': ['aaa']} 46801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ] 46901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org })) 47001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org self.assertFalse(self.writer.IsPolicySupported({ 47101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'supported_on': [ 47201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org {'platforms': ['mac', 'linux']}, {'platforms': ['aaa']} 47301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org ] 47401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org })) 47501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 47601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 47701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgif __name__ == '__main__': 47801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org unittest.main() 479