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

Unified Diff: grit/format/policy_templates/writers/admx_writer_unittest.py

Issue 7994004: Initial source commit to grit-i18n project. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 9 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 side-by-side diff with in-line comments
Download patch
Index: grit/format/policy_templates/writers/admx_writer_unittest.py
===================================================================
--- grit/format/policy_templates/writers/admx_writer_unittest.py (revision 0)
+++ grit/format/policy_templates/writers/admx_writer_unittest.py (revision 0)
@@ -0,0 +1,343 @@
+#!/usr/bin/python2.4
+# Copyright (c) 2011 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+"""Unittests for grit.format.policy_templates.writers.admx_writer."""
+
+
+import os
+import sys
+import unittest
+if __name__ == '__main__':
+ sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '../../../..'))
+
+
+from grit.format.policy_templates.writers import admx_writer
+from grit.format.policy_templates.writers import xml_writer_base_unittest
+from xml.dom import minidom
+
+
+class AdmxWriterTest(xml_writer_base_unittest.XmlWriterBaseTest):
+
+ def _CreateDocumentElement(self):
+ dom_impl = minidom.getDOMImplementation('')
+ doc = dom_impl.createDocument(None, 'root', None)
+ return doc.documentElement
+
+ def setUp(self):
+ # Writer configuration. This dictionary contains parameter used by the ADMX
+ # Writer
+ config = {
+ 'win_group_policy_class': 'TestClass',
+ 'win_supported_os': 'SUPPORTED_TESTOS',
+ 'win_reg_key_name': 'Software\\Policies\\Test',
+ 'win_category_path': ['test_category'],
+ 'admx_namespace': 'ADMXWriter.Test.Namespace',
+ 'admx_prefix': 'test_prefix'
+ }
+ self.writer = admx_writer.GetWriter(config)
+ self.writer.Init()
+
+ def _GetPoliciesElement(self, doc):
+ node_list = doc.getElementsByTagName('policies')
+ self.assertTrue(node_list.length == 1)
+ return node_list.item(0)
+
+ def _GetCategoriesElement(self, doc):
+ node_list = doc.getElementsByTagName('categories')
+ self.assertTrue(node_list.length == 1)
+ return node_list.item(0)
+
+ def testEmpty(self):
+ self.writer.BeginTemplate()
+ self.writer.EndTemplate()
+
+ output = self.writer.GetTemplateText()
+ expected_output = (
+ '<?xml version="1.0" ?>\n'
+ '<policyDefinitions revision="1.0" schemaVersion="1.0">\n'
+ ' <policyNamespaces>\n'
+ ' <target namespace="ADMXWriter.Test.Namespace"'
+ ' prefix="test_prefix"/>\n'
+ ' <using namespace="Microsoft.Policies.Windows" prefix="windows"/>\n'
+ ' </policyNamespaces>\n'
+ ' <resources minRequiredRevision="1.0"/>\n'
+ ' <supportedOn>\n'
+ ' <definitions>\n'
+ ' <definition displayName="'
+ '$(string.SUPPORTED_TESTOS)" name="SUPPORTED_TESTOS"/>\n'
+ ' </definitions>\n'
+ ' </supportedOn>\n'
+ ' <categories>\n'
+ ' <category displayName="$(string.test_category)"'
+ ' name="test_category"/>\n'
+ ' </categories>\n'
+ ' <policies/>\n'
+ '</policyDefinitions>')
+ self.AssertXMLEquals(output, expected_output)
+
+ def testEmptyPolicyGroup(self):
+ empty_policy_group = {
+ 'name': 'PolicyGroup',
+ 'policies': []
+ }
+ # Initialize writer to write a policy group.
+ self.writer.BeginTemplate()
+ # Write policy group
+ self.writer.BeginPolicyGroup(empty_policy_group)
+ self.writer.EndPolicyGroup()
+
+ output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
+ expected_output = ''
+ self.AssertXMLEquals(output, expected_output)
+
+ output = self.GetXMLOfChildren(
+ self._GetCategoriesElement(self.writer._doc))
+ expected_output = (
+ '<category displayName="$(string.test_category)"'
+ ' name="test_category"/>\n'
+ '<category displayName="$(string.PolicyGroup_group)"'
+ ' name="PolicyGroup">\n'
+ ' <parentCategory ref="test_category"/>\n'
+ '</category>')
+
+ self.AssertXMLEquals(output, expected_output)
+
+ def testPolicyGroup(self):
+ empty_policy_group = {
+ 'name': 'PolicyGroup',
+ 'policies': [
+ {'name': 'PolicyStub2',
+ 'type': 'main'},
+ {'name': 'PolicyStub1',
+ 'type': 'main'},
+ ]
+ }
+ # Initialize writer to write a policy group.
+ self.writer.BeginTemplate()
+ # Write policy group
+ self.writer.BeginPolicyGroup(empty_policy_group)
+ self.writer.EndPolicyGroup()
+
+ output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
+ expected_output = ''
+ self.AssertXMLEquals(output, expected_output)
+
+ output = self.GetXMLOfChildren(
+ self._GetCategoriesElement(self.writer._doc))
+ expected_output = (
+ '<category displayName="$(string.test_category)"'
+ ' name="test_category"/>\n'
+ '<category displayName="$(string.PolicyGroup_group)"'
+ ' name="PolicyGroup">\n'
+ ' <parentCategory ref="test_category"/>\n'
+ '</category>')
+ self.AssertXMLEquals(output, expected_output)
+
+
+ def _initWriterForPolicy(self, writer, policy):
+ '''Initializes the writer to write the given policy next.
+ '''
+ policy_group = {
+ 'name': 'PolicyGroup',
+ 'policies': [policy]
+ }
+ writer.BeginTemplate()
+ writer.BeginPolicyGroup(policy_group)
+
+ def testMainPolicy(self):
+ main_policy = {
+ 'name': 'DummyMainPolicy',
+ 'type': 'main',
+ }
+
+ self._initWriterForPolicy(self.writer, main_policy)
+
+ self.writer.WritePolicy(main_policy)
+
+ output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
+ expected_output = (
+ '<policy class="TestClass" displayName="$(string.DummyMainPolicy)"'
+ ' explainText="$(string.DummyMainPolicy_Explain)"'
+ ' key="Software\\Policies\\Test" name="DummyMainPolicy"'
+ ' presentation="$(presentation.DummyMainPolicy)"'
+ ' valueName="DummyMainPolicy">\n'
+ ' <parentCategory ref="PolicyGroup"/>\n'
+ ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
+ ' <enabledValue>\n'
+ ' <decimal value="1"/>\n'
+ ' </enabledValue>\n'
+ ' <disabledValue>\n'
+ ' <decimal value="0"/>\n'
+ ' </disabledValue>\n'
+ '</policy>')
+
+ self.AssertXMLEquals(output, expected_output)
+
+ def testStringPolicy(self):
+ string_policy = {
+ 'name': 'SampleStringPolicy',
+ 'type': 'string',
+ }
+ self._initWriterForPolicy(self.writer, string_policy)
+
+ self.writer.WritePolicy(string_policy)
+ output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
+ expected_output = (
+ '<policy class="TestClass" displayName="$(string.SampleStringPolicy)"'
+ ' explainText="$(string.SampleStringPolicy_Explain)"'
+ ' key="Software\\Policies\\Test" name="SampleStringPolicy"'
+ ' presentation="$(presentation.SampleStringPolicy)">\n'
+ ' <parentCategory ref="PolicyGroup"/>\n'
+ ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
+ ' <elements>\n'
+ ' <text id="SampleStringPolicy" valueName="SampleStringPolicy"/>\n'
+ ' </elements>\n'
+ '</policy>')
+ self.AssertXMLEquals(output, expected_output)
+
+ def testIntPolicy(self):
+ int_policy = {
+ 'name': 'SampleIntPolicy',
+ 'type': 'int',
+ }
+ self._initWriterForPolicy(self.writer, int_policy)
+
+ self.writer.WritePolicy(int_policy)
+ output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
+ expected_output = (
+ '<policy class="TestClass" displayName="$(string.SampleIntPolicy)"'
+ ' explainText="$(string.SampleIntPolicy_Explain)"'
+ ' key="Software\\Policies\\Test" name="SampleIntPolicy"'
+ ' presentation="$(presentation.SampleIntPolicy)">\n'
+ ' <parentCategory ref="PolicyGroup"/>\n'
+ ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
+ ' <elements>\n'
+ ' <decimal id="SampleIntPolicy" valueName="SampleIntPolicy"/>\n'
+ ' </elements>\n'
+ '</policy>')
+ self.AssertXMLEquals(output, expected_output)
+
+ def testIntEnumPolicy(self):
+ enum_policy = {
+ 'name': 'SampleEnumPolicy',
+ 'type': 'int-enum',
+ 'items': [
+ {'name': 'item_1', 'value': 0},
+ {'name': 'item_2', 'value': 1},
+ ]
+ }
+
+ self._initWriterForPolicy(self.writer, enum_policy)
+ self.writer.WritePolicy(enum_policy)
+ output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
+ expected_output = (
+ '<policy class="TestClass" displayName="$(string.SampleEnumPolicy)"'
+ ' explainText="$(string.SampleEnumPolicy_Explain)"'
+ ' key="Software\\Policies\\Test" name="SampleEnumPolicy"'
+ ' presentation="$(presentation.SampleEnumPolicy)">\n'
+ ' <parentCategory ref="PolicyGroup"/>\n'
+ ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
+ ' <elements>\n'
+ ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n'
+ ' <item displayName="$(string.item_1)">\n'
+ ' <value>\n'
+ ' <decimal value="0"/>\n'
+ ' </value>\n'
+ ' </item>\n'
+ ' <item displayName="$(string.item_2)">\n'
+ ' <value>\n'
+ ' <decimal value="1"/>\n'
+ ' </value>\n'
+ ' </item>\n'
+ ' </enum>\n'
+ ' </elements>\n'
+ '</policy>')
+ self.AssertXMLEquals(output, expected_output)
+
+ def testStringEnumPolicy(self):
+ enum_policy = {
+ 'name': 'SampleEnumPolicy',
+ 'type': 'string-enum',
+ 'items': [
+ {'name': 'item_1', 'value': 'one'},
+ {'name': 'item_2', 'value': 'two'},
+ ]
+ }
+
+ # This test is different than the others because it also tests that space
+ # usage inside <string> nodes is correct.
+ dom_impl = minidom.getDOMImplementation('')
+ self.writer._doc = dom_impl.createDocument(None, 'policyDefinitions', None)
+ self.writer._active_policies_elem = self.writer._doc.documentElement
+ self.writer._active_policy_group_name = 'PolicyGroup'
+ self.writer.WritePolicy(enum_policy)
+ output = self.writer.GetTemplateText()
+ expected_output = (
+ '<?xml version="1.0" ?>\n'
+ '<policyDefinitions>\n'
+ ' <policy class="TestClass" displayName="$(string.SampleEnumPolicy)"'
+ ' explainText="$(string.SampleEnumPolicy_Explain)"'
+ ' key="Software\\Policies\\Test" name="SampleEnumPolicy"'
+ ' presentation="$(presentation.SampleEnumPolicy)">\n'
+ ' <parentCategory ref="PolicyGroup"/>\n'
+ ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
+ ' <elements>\n'
+ ' <enum id="SampleEnumPolicy" valueName="SampleEnumPolicy">\n'
+ ' <item displayName="$(string.item_1)">\n'
+ ' <value>\n'
+ ' <string>one</string>\n'
+ ' </value>\n'
+ ' </item>\n'
+ ' <item displayName="$(string.item_2)">\n'
+ ' <value>\n'
+ ' <string>two</string>\n'
+ ' </value>\n'
+ ' </item>\n'
+ ' </enum>\n'
+ ' </elements>\n'
+ ' </policy>\n'
+ '</policyDefinitions>')
+ self.AssertXMLEquals(output, expected_output)
+
+ def testListPolicy(self):
+ list_policy = {
+ 'name': 'SampleListPolicy',
+ 'type': 'list',
+ }
+ self._initWriterForPolicy(self.writer, list_policy)
+ self.writer.WritePolicy(list_policy)
+ output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc))
+ expected_output = (
+ '<policy class="TestClass" displayName="$(string.SampleListPolicy)"'
+ ' explainText="$(string.SampleListPolicy_Explain)"'
+ ' key="Software\\Policies\\Test" name="SampleListPolicy"'
+ ' presentation="$(presentation.SampleListPolicy)">\n'
+ ' <parentCategory ref="PolicyGroup"/>\n'
+ ' <supportedOn ref="SUPPORTED_TESTOS"/>\n'
+ ' <elements>\n'
+ ' <list id="SampleListPolicyDesc"'
+ ' key="Software\Policies\Test\SampleListPolicy" valuePrefix=""/>\n'
+ ' </elements>\n'
+ '</policy>')
+
+ self.AssertXMLEquals(output, expected_output)
+
+ def testPlatform(self):
+ # Test that the writer correctly chooses policies of platform Windows.
+ self.assertTrue(self.writer.IsPolicySupported({
+ 'supported_on': [
+ {'platforms': ['win', 'zzz']}, {'platforms': ['aaa']}
+ ]
+ }))
+ self.assertFalse(self.writer.IsPolicySupported({
+ 'supported_on': [
+ {'platforms': ['mac', 'linux']}, {'platforms': ['aaa']}
+ ]
+ }))
+
+
+if __name__ == '__main__':
+ unittest.main()
Property changes on: grit/format/policy_templates/writers/admx_writer_unittest.py
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « grit/format/policy_templates/writers/admx_writer.py ('k') | grit/format/policy_templates/writers/doc_writer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698