Index: grit/format/policy_templates/writers/reg_writer_unittest.py |
=================================================================== |
--- grit/format/policy_templates/writers/reg_writer_unittest.py (revision 0) |
+++ grit/format/policy_templates/writers/reg_writer_unittest.py (revision 0) |
@@ -0,0 +1,278 @@ |
+#!/usr/bin/python2.6 |
+# 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. |
+ |
+ |
+'''Unit tests for grit.format.policy_templates.writers.reg_writer''' |
+ |
+ |
+import os |
+import sys |
+if __name__ == '__main__': |
+ sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '../../../..')) |
+ |
+import unittest |
+ |
+from grit.format.policy_templates.writers import writer_unittest_common |
+ |
+ |
+class RegWriterUnittest(writer_unittest_common.WriterUnittestCommon): |
+ '''Unit tests for RegWriter.''' |
+ |
+ NEWLINE = '\r\n' |
+ |
+ def CompareOutputs(self, output, expected_output): |
+ '''Compares the output of the reg_writer with its expected output. |
+ |
+ Args: |
+ output: The output of the reg writer as returned by grit. |
+ expected_output: The expected output. |
+ |
+ Raises: |
+ AssertionError: if the two strings are not equivalent. |
+ ''' |
+ self.assertEquals( |
+ output.strip(), |
+ expected_output.strip()) |
+ |
+ def testEmpty(self): |
+ # Test the handling of an empty policy list. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [],' |
+ ' "placeholders": [],' |
+ ' "messages": {}' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_chromium': '1', }, 'reg', 'en') |
+ expected_output = 'Windows Registry Editor Version 5.00' |
+ self.CompareOutputs(output, expected_output) |
+ |
+ def testMainPolicy(self): |
+ # Tests a policy group with a single policy of type 'main'. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "MainPolicy",' |
+ ' "type": "main",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "supported_on": ["chrome.win:8-"],' |
+ ' "example_value": True' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_google_chrome' : '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Google\\Chrome]', |
+ '"MainPolicy"=dword:00000001']) |
+ self.CompareOutputs(output, expected_output) |
+ |
+ def testStringPolicy(self): |
+ # Tests a policy group with a single policy of type 'string'. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "StringPolicy",' |
+ ' "type": "string",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "supported_on": ["chrome.win:8-"],' |
+ ' "example_value": "hello, world! \\\" \\\\"' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Chromium]', |
+ '"StringPolicy"="hello, world! \\\" \\\\"']) |
+ self.CompareOutputs(output, expected_output) |
+ |
+ def testIntPolicy(self): |
+ # Tests a policy group with a single policy of type 'int'. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "IntPolicy",' |
+ ' "type": "int",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "supported_on": ["chrome.win:8-"],' |
+ ' "example_value": 26' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Chromium]', |
+ '"IntPolicy"=dword:0000001a']) |
+ self.CompareOutputs(output, expected_output) |
+ |
+ def testIntEnumPolicy(self): |
+ # Tests a policy group with a single policy of type 'int-enum'. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "EnumPolicy",' |
+ ' "type": "int-enum",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "items": [' |
+ ' {"name": "ProxyServerDisabled", "value": 0, "caption": ""},' |
+ ' {"name": "ProxyServerAutoDetect", "value": 1, "caption": ""},' |
+ ' ],' |
+ ' "supported_on": ["chrome.win:8-"],' |
+ ' "example_value": 1' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Google\\Chrome]', |
+ '"EnumPolicy"=dword:00000001']) |
+ self.CompareOutputs(output, expected_output) |
+ |
+ def testStringEnumPolicy(self): |
+ # Tests a policy group with a single policy of type 'string-enum'. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "EnumPolicy",' |
+ ' "type": "string-enum",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "items": [' |
+ ' {"name": "ProxyServerDisabled", "value": "one",' |
+ ' "caption": ""},' |
+ ' {"name": "ProxyServerAutoDetect", "value": "two",' |
+ ' "caption": ""},' |
+ ' ],' |
+ ' "supported_on": ["chrome.win:8-"],' |
+ ' "example_value": "two"' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Google\\Chrome]', |
+ '"EnumPolicy"="two"']) |
+ self.CompareOutputs(output, expected_output) |
+ |
+ def testListPolicy(self): |
+ # Tests a policy group with a single policy of type 'list'. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "ListPolicy",' |
+ ' "type": "list",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "supported_on": ["chrome.linux:8-"],' |
+ ' "example_value": ["foo", "bar"]' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Chromium\\ListPolicy]', |
+ '"1"="foo"', |
+ '"2"="bar"']) |
+ |
+ def testNonSupportedPolicy(self): |
+ # Tests a policy that is not supported on Windows, so it shouldn't |
+ # be included in the .REG file. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "NonWindowsPolicy",' |
+ ' "type": "list",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "supported_on": ["chrome.mac:8-"],' |
+ ' "example_value": ["a"]' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00']) |
+ self.CompareOutputs(output, expected_output) |
+ |
+ def testPolicyGroup(self): |
+ # Tests a policy group that has more than one policies. |
+ grd = self.PrepareTest( |
+ '{' |
+ ' "policy_definitions": [' |
+ ' {' |
+ ' "name": "Group1",' |
+ ' "type": "group",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "policies": [{' |
+ ' "name": "Policy1",' |
+ ' "type": "list",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "supported_on": ["chrome.win:8-"],' |
+ ' "example_value": ["a", "b"]' |
+ ' },{' |
+ ' "name": "Policy2",' |
+ ' "type": "string",' |
+ ' "caption": "",' |
+ ' "desc": "",' |
+ ' "supported_on": ["chrome.win:8-"],' |
+ ' "example_value": "c"' |
+ ' }],' |
+ ' },' |
+ ' ],' |
+ ' "placeholders": [],' |
+ ' "messages": {},' |
+ '}') |
+ output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'reg', 'en') |
+ expected_output = self.NEWLINE.join([ |
+ 'Windows Registry Editor Version 5.00', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Chromium]', |
+ '"Policy2"="c"', |
+ '', |
+ '[HKEY_LOCAL_MACHINE\\Software\\Policies\\Chromium\\Policy1]', |
+ '"1"="a"', |
+ '"2"="b"']) |
+ self.CompareOutputs(output, expected_output) |
+ |
+ |
+if __name__ == '__main__': |
+ unittest.main() |
Property changes on: grit/format/policy_templates/writers/reg_writer_unittest.py |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |