Index: grit/format/policy_templates/writers/adml_writer_unittest.py |
=================================================================== |
--- grit/format/policy_templates/writers/adml_writer_unittest.py (revision 0) |
+++ grit/format/policy_templates/writers/adml_writer_unittest.py (revision 0) |
@@ -0,0 +1,336 @@ |
+#!/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.adml_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 adml_writer |
+from grit.format.policy_templates.writers import xml_writer_base_unittest |
+from xml.dom import minidom |
+ |
+ |
+class AdmlWriterTest(xml_writer_base_unittest.XmlWriterBaseTest): |
+ |
+ def setUp(self): |
+ config = { |
+ 'build': 'test', |
+ 'win_supported_os': 'SUPPORTED_TESTOS', |
+ } |
+ self.writer = adml_writer.GetWriter(config) |
+ self.writer.messages = { |
+ 'win_supported_winxpsp2': { |
+ 'text': 'Supported on Test OS or higher', |
+ 'desc': 'blah' |
+ } |
+ } |
+ self.writer.Init() |
+ |
+ def _InitWriterForAddingPolicyGroups(self, writer): |
+ '''Initialize the writer for adding policy groups. This method must be |
+ called before the method "BeginPolicyGroup" can be called. It initializes |
+ attributes of the writer. |
+ ''' |
+ writer.BeginTemplate() |
+ |
+ def _InitWriterForAddingPolicies(self, writer, policy): |
+ '''Initialize the writer for adding policies. This method must be |
+ called before the method "WritePolicy" can be called. It initializes |
+ attributes of the writer. |
+ ''' |
+ self._InitWriterForAddingPolicyGroups(writer) |
+ policy_group = { |
+ 'name': 'PolicyGroup', |
+ 'caption': 'Test Caption', |
+ 'desc': 'This is the test description of the test policy group.', |
+ 'policies': policy, |
+ } |
+ writer.BeginPolicyGroup(policy_group) |
+ |
+ string_elements = \ |
+ self.writer._string_table_elem.getElementsByTagName('string') |
+ for elem in string_elements: |
+ self.writer._string_table_elem.removeChild(elem) |
+ |
+ def testEmpty(self): |
+ self.writer.BeginTemplate() |
+ self.writer.EndTemplate() |
+ output = self.writer.GetTemplateText() |
+ expected_output = ( |
+ '<?xml version="1.0" ?><policyDefinitionResources' |
+ ' revision="1.0" schemaVersion="1.0"><displayName/><description/>' |
+ '<resources><stringTable><string id="SUPPORTED_TESTOS">Supported on' |
+ ' Test OS or higher</string></stringTable><presentationTable/>' |
+ '</resources></policyDefinitionResources>') |
+ self.AssertXMLEquals(output, expected_output) |
+ |
+ def testPolicyGroup(self): |
+ empty_policy_group = { |
+ 'name': 'PolicyGroup', |
+ 'caption': 'Test Group Caption', |
+ 'desc': 'This is the test description of the test policy group.', |
+ 'policies': [ |
+ {'name': 'PolicyStub2', |
+ 'type': 'main'}, |
+ {'name': 'PolicyStub1', |
+ 'type': 'main'}, |
+ ], |
+ } |
+ self._InitWriterForAddingPolicyGroups(self.writer) |
+ self.writer.BeginPolicyGroup(empty_policy_group) |
+ self.writer.EndPolicyGroup |
+ # Assert generated string elements. |
+ output = self.GetXMLOfChildren(self.writer._string_table_elem) |
+ expected_output = ( |
+ '<string id="SUPPORTED_TESTOS">\n' |
+ ' Supported on Test OS or higher\n' |
+ '</string>\n' |
+ '<string id="PolicyGroup_group">\n' |
+ ' Test Group Caption\n' |
+ '</string>') |
+ self.AssertXMLEquals(output, expected_output) |
+ # Assert generated presentation elements. |
+ output = self.GetXMLOfChildren(self.writer._presentation_table_elem) |
+ expected_output = '' |
+ self.AssertXMLEquals(output, expected_output) |
+ |
+ def testMainPolicy(self): |
+ main_policy = { |
+ 'name': 'DummyMainPolicy', |
+ 'type': 'main', |
+ 'caption': 'Main policy caption', |
+ 'desc': 'Main policy test description.' |
+ } |
+ self. _InitWriterForAddingPolicies(self.writer, main_policy) |
+ self.writer.WritePolicy(main_policy) |
+ # Assert generated string elements. |
+ output = self.GetXMLOfChildren(self.writer._string_table_elem) |
+ expected_output = ( |
+ '<string id="DummyMainPolicy">\n' |
+ ' Main policy caption\n' |
+ '</string>\n' |
+ '<string id="DummyMainPolicy_Explain">\n' |
+ ' Main policy test description.\n' |
+ '</string>') |
+ self.AssertXMLEquals(output, expected_output) |
+ # Assert generated presentation elements. |
+ output = self.GetXMLOfChildren(self.writer._presentation_table_elem) |
+ expected_output = '<presentation id="DummyMainPolicy"/>' |
+ self.AssertXMLEquals(output, expected_output) |
+ |
+ def testStringPolicy(self): |
+ string_policy = { |
+ 'name': 'StringPolicyStub', |
+ 'type': 'string', |
+ 'caption': 'String policy caption', |
+ 'label': 'String policy label', |
+ 'desc': 'This is a test description.', |
+ } |
+ self. _InitWriterForAddingPolicies(self.writer, string_policy) |
+ self.writer.WritePolicy(string_policy) |
+ # Assert generated string elements. |
+ output = self.GetXMLOfChildren(self.writer._string_table_elem) |
+ expected_output = ( |
+ '<string id="StringPolicyStub">\n' |
+ ' String policy caption\n' |
+ '</string>\n' |
+ '<string id="StringPolicyStub_Explain">\n' |
+ ' This is a test description.\n' |
+ '</string>') |
+ self.AssertXMLEquals(output, expected_output) |
+ # Assert generated presentation elements. |
+ output = self.GetXMLOfChildren(self.writer._presentation_table_elem) |
+ expected_output = ( |
+ '<presentation id="StringPolicyStub">\n' |
+ ' <textBox refId="StringPolicyStub">\n' |
+ ' <label>\n' |
+ ' String policy label\n' |
+ ' </label>\n' |
+ ' </textBox>\n' |
+ '</presentation>') |
+ self.AssertXMLEquals(output, expected_output) |
+ |
+ def testIntPolicy(self): |
+ int_policy = { |
+ 'name': 'IntPolicyStub', |
+ 'type': 'int', |
+ 'caption': 'Int policy caption', |
+ 'label': 'Int policy label', |
+ 'desc': 'This is a test description.', |
+ } |
+ self. _InitWriterForAddingPolicies(self.writer, int_policy) |
+ self.writer.WritePolicy(int_policy) |
+ # Assert generated string elements. |
+ output = self.GetXMLOfChildren(self.writer._string_table_elem) |
+ expected_output = ( |
+ '<string id="IntPolicyStub">\n' |
+ ' Int policy caption\n' |
+ '</string>\n' |
+ '<string id="IntPolicyStub_Explain">\n' |
+ ' This is a test description.\n' |
+ '</string>') |
+ self.AssertXMLEquals(output, expected_output) |
+ # Assert generated presentation elements. |
+ output = self.GetXMLOfChildren(self.writer._presentation_table_elem) |
+ expected_output = ( |
+ '<presentation id="IntPolicyStub">\n' |
+ ' <decimalTextBox refId="IntPolicyStub">\n' |
+ ' Int policy label:\n' |
+ ' </decimalTextBox>\n' |
+ '</presentation>') |
+ self.AssertXMLEquals(output, expected_output) |
+ |
+ def testIntEnumPolicy(self): |
+ enum_policy = { |
+ 'name': 'EnumPolicyStub', |
+ 'type': 'int-enum', |
+ 'caption': 'Enum policy caption', |
+ 'label': 'Enum policy label', |
+ 'desc': 'This is a test description.', |
+ 'items': [ |
+ { |
+ 'name': 'item 1', |
+ 'value': 1, |
+ 'caption': 'Caption Item 1', |
+ }, |
+ { |
+ 'name': 'item 2', |
+ 'value': 2, |
+ 'caption': 'Caption Item 2', |
+ }, |
+ ], |
+ } |
+ self. _InitWriterForAddingPolicies(self.writer, enum_policy) |
+ self.writer.WritePolicy(enum_policy) |
+ # Assert generated string elements. |
+ output = self.GetXMLOfChildren(self.writer._string_table_elem) |
+ expected_output = ( |
+ '<string id="EnumPolicyStub">\n' |
+ ' Enum policy caption\n' |
+ '</string>\n' |
+ '<string id="EnumPolicyStub_Explain">\n' |
+ ' This is a test description.\n' |
+ '</string>\n' |
+ '<string id="item 1">\n' |
+ ' Caption Item 1\n' |
+ '</string>\n' |
+ '<string id="item 2">\n' |
+ ' Caption Item 2\n' |
+ '</string>') |
+ self.AssertXMLEquals(output, expected_output) |
+ # Assert generated presentation elements. |
+ output = self.GetXMLOfChildren(self.writer._presentation_table_elem) |
+ expected_output = ( |
+ '<presentation id="EnumPolicyStub">\n' |
+ ' <dropdownList refId="EnumPolicyStub">\n' |
+ ' Enum policy label\n' |
+ ' </dropdownList>\n' |
+ '</presentation>') |
+ self.AssertXMLEquals(output, expected_output) |
+ |
+ def testStringEnumPolicy(self): |
+ enum_policy = { |
+ 'name': 'EnumPolicyStub', |
+ 'type': 'string-enum', |
+ 'caption': 'Enum policy caption', |
+ 'label': 'Enum policy label', |
+ 'desc': 'This is a test description.', |
+ 'items': [ |
+ { |
+ 'name': 'item 1', |
+ 'value': 'value 1', |
+ 'caption': 'Caption Item 1', |
+ }, |
+ { |
+ 'name': 'item 2', |
+ 'value': 'value 2', |
+ 'caption': 'Caption Item 2', |
+ }, |
+ ], |
+ } |
+ self. _InitWriterForAddingPolicies(self.writer, enum_policy) |
+ self.writer.WritePolicy(enum_policy) |
+ # Assert generated string elements. |
+ output = self.GetXMLOfChildren(self.writer._string_table_elem) |
+ expected_output = ( |
+ '<string id="EnumPolicyStub">\n' |
+ ' Enum policy caption\n' |
+ '</string>\n' |
+ '<string id="EnumPolicyStub_Explain">\n' |
+ ' This is a test description.\n' |
+ '</string>\n' |
+ '<string id="item 1">\n' |
+ ' Caption Item 1\n' |
+ '</string>\n' |
+ '<string id="item 2">\n' |
+ ' Caption Item 2\n' |
+ '</string>') |
+ self.AssertXMLEquals(output, expected_output) |
+ # Assert generated presentation elements. |
+ output = self.GetXMLOfChildren(self.writer._presentation_table_elem) |
+ expected_output = ( |
+ '<presentation id="EnumPolicyStub">\n' |
+ ' <dropdownList refId="EnumPolicyStub">\n' |
+ ' Enum policy label\n' |
+ ' </dropdownList>\n' |
+ '</presentation>') |
+ self.AssertXMLEquals(output, expected_output) |
+ |
+ def testListPolicy(self): |
+ list_policy = { |
+ 'name': 'ListPolicyStub', |
+ 'type': 'list', |
+ 'caption': 'List policy caption', |
+ 'label': 'List policy label', |
+ 'desc': 'This is a test description.', |
+ } |
+ self. _InitWriterForAddingPolicies(self.writer, list_policy) |
+ self.writer.WritePolicy(list_policy) |
+ # Assert generated string elements. |
+ output = self.GetXMLOfChildren(self.writer._string_table_elem) |
+ expected_output = ( |
+ '<string id="ListPolicyStub">\n' |
+ ' List policy caption\n' |
+ '</string>\n' |
+ '<string id="ListPolicyStub_Explain">\n' |
+ ' This is a test description.\n' |
+ '</string>\n' |
+ '<string id="ListPolicyStubDesc">\n' |
+ ' List policy caption\n' |
+ '</string>') |
+ self.AssertXMLEquals(output, expected_output) |
+ # Assert generated presentation elements. |
+ output = self.GetXMLOfChildren(self.writer._presentation_table_elem) |
+ expected_output = ( |
+ '<presentation id="ListPolicyStub">\n' |
+ ' <listBox refId="ListPolicyStubDesc">\n' |
+ ' List policy label\n' |
+ ' </listBox>\n' |
+ '</presentation>') |
+ 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/adml_writer_unittest.py |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |