| Index: grit/format/policy_templates/writers/json_writer_unittest.py
|
| ===================================================================
|
| --- grit/format/policy_templates/writers/json_writer_unittest.py (revision 0)
|
| +++ grit/format/policy_templates/writers/json_writer_unittest.py (revision 0)
|
| @@ -0,0 +1,264 @@
|
| +#!/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.
|
| +
|
| +'''Unit tests for grit.format.policy_templates.writers.json_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 JsonWriterUnittest(writer_unittest_common.WriterUnittestCommon):
|
| + '''Unit tests for JsonWriter.'''
|
| +
|
| + def CompareOutputs(self, output, expected_output):
|
| + '''Compares the output of the json_writer with its expected output.
|
| +
|
| + Args:
|
| + output: The output of the json 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',}, 'json', 'en')
|
| + expected_output = '{\n}'
|
| + 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.linux:8-"],'
|
| + ' "example_value": True'
|
| + ' },'
|
| + ' ],'
|
| + ' "placeholders": [],'
|
| + ' "messages": {},'
|
| + '}')
|
| + output = self.GetOutput(grd, 'fr', {'_google_chrome' : '1'}, 'json', 'en')
|
| + expected_output = (
|
| + '{\n'
|
| + ' "MainPolicy": true\n'
|
| + '}')
|
| + 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.linux:8-"],'
|
| + ' "example_value": "hello, world!"'
|
| + ' },'
|
| + ' ],'
|
| + ' "placeholders": [],'
|
| + ' "messages": {},'
|
| + '}')
|
| + output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en')
|
| + expected_output = (
|
| + '{\n'
|
| + ' "StringPolicy": "hello, world!"\n'
|
| + '}')
|
| + self.CompareOutputs(output, expected_output)
|
| +
|
| + def testIntPolicy(self):
|
| + # Tests a policy group with a single policy of type 'string'.
|
| + grd = self.PrepareTest(
|
| + '{'
|
| + ' "policy_definitions": ['
|
| + ' {'
|
| + ' "name": "IntPolicy",'
|
| + ' "type": "int",'
|
| + ' "caption": "",'
|
| + ' "desc": "",'
|
| + ' "supported_on": ["chrome.linux:8-"],'
|
| + ' "example_value": 15'
|
| + ' },'
|
| + ' ],'
|
| + ' "placeholders": [],'
|
| + ' "messages": {},'
|
| + '}')
|
| + output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en')
|
| + expected_output = (
|
| + '{\n'
|
| + ' "IntPolicy": 15\n'
|
| + '}')
|
| + 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.linux:8-"],'
|
| + ' "example_value": 1'
|
| + ' },'
|
| + ' ],'
|
| + ' "placeholders": [],'
|
| + ' "messages": {},'
|
| + '}')
|
| + output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'json', 'en')
|
| + expected_output = (
|
| + '{\n'
|
| + ' "EnumPolicy": 1\n'
|
| + '}')
|
| + 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.linux:8-"],'
|
| + ' "example_value": "one"'
|
| + ' },'
|
| + ' ],'
|
| + ' "placeholders": [],'
|
| + ' "messages": {},'
|
| + '}')
|
| + output = self.GetOutput(grd, 'fr', {'_google_chrome': '1'}, 'json', 'en')
|
| + expected_output = (
|
| + '{\n'
|
| + ' "EnumPolicy": "one"\n'
|
| + '}')
|
| + 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'}, 'json', 'en')
|
| + expected_output = (
|
| + '{\n'
|
| + ' "ListPolicy": ["foo", "bar"]\n'
|
| + '}')
|
| + self.CompareOutputs(output, expected_output)
|
| +
|
| + def testNonSupportedPolicy(self):
|
| + # Tests a policy that is not supported on Linux, so it shouldn't
|
| + # be included in the JSON file.
|
| + grd = self.PrepareTest(
|
| + '{'
|
| + ' "policy_definitions": ['
|
| + ' {'
|
| + ' "name": "NonLinuxPolicy",'
|
| + ' "type": "list",'
|
| + ' "caption": "",'
|
| + ' "desc": "",'
|
| + ' "supported_on": ["chrome.mac:8-"],'
|
| + ' "example_value": ["a"]'
|
| + ' },'
|
| + ' ],'
|
| + ' "placeholders": [],'
|
| + ' "messages": {},'
|
| + '}')
|
| + output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en')
|
| + expected_output = '{\n}'
|
| + 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.linux:8-"],'
|
| + ' "example_value": ["a", "b"]'
|
| + ' },{'
|
| + ' "name": "Policy2",'
|
| + ' "type": "string",'
|
| + ' "caption": "",'
|
| + ' "desc": "",'
|
| + ' "supported_on": ["chrome.linux:8-"],'
|
| + ' "example_value": "c"'
|
| + ' }],'
|
| + ' },'
|
| + ' ],'
|
| + ' "placeholders": [],'
|
| + ' "messages": {},'
|
| + '}')
|
| + output = self.GetOutput(grd, 'fr', {'_chromium' : '1'}, 'json', 'en')
|
| + expected_output = (
|
| + '{\n'
|
| + ' "Policy1": ["a", "b"],\n'
|
| + ' "Policy2": "c"\n'
|
| + '}')
|
| + self.CompareOutputs(output, expected_output)
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|
| Property changes on: grit/format/policy_templates/writers/json_writer_unittest.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|