| Index: grit/format/policy_templates/writers/plist_strings_writer_unittest.py
 | 
| ===================================================================
 | 
| --- grit/format/policy_templates/writers/plist_strings_writer_unittest.py	(revision 0)
 | 
| +++ grit/format/policy_templates/writers/plist_strings_writer_unittest.py	(revision 0)
 | 
| @@ -0,0 +1,284 @@
 | 
| +#!/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.plist_strings_writer'''
 | 
| +
 | 
| +
 | 
| +import os
 | 
| +import sys
 | 
| +if __name__ == '__main__':
 | 
| +  sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '../../../..'))
 | 
| +
 | 
| +import tempfile
 | 
| +import unittest
 | 
| +import StringIO
 | 
| +
 | 
| +from grit.format.policy_templates.writers import writer_unittest_common
 | 
| +from grit import grd_reader
 | 
| +from grit import util
 | 
| +from grit.tool import build
 | 
| +
 | 
| +
 | 
| +class PListStringsWriterUnittest(writer_unittest_common.WriterUnittestCommon):
 | 
| +  '''Unit tests for PListStringsWriter.'''
 | 
| +
 | 
| +  def testEmpty(self):
 | 
| +    # Test PListStringsWriter in case of empty polices.
 | 
| +    grd = self.PrepareTest('''
 | 
| +      {
 | 
| +        'policy_definitions': [],
 | 
| +        'placeholders': [],
 | 
| +        'messages': {
 | 
| +          'mac_chrome_preferences': {
 | 
| +            'text': '$1 preferen"ces',
 | 
| +            'desc': 'blah'
 | 
| +          }
 | 
| +        }
 | 
| +      }''')
 | 
| +    output = self.GetOutput(
 | 
| +        grd,
 | 
| +        'fr',
 | 
| +        {'_chromium': '1', 'mac_bundle_id': 'com.example.Test'},
 | 
| +        'plist_strings',
 | 
| +        'en')
 | 
| +    expected_output = (
 | 
| +        'Chromium.pfm_title = "Chromium";\n'
 | 
| +        'Chromium.pfm_description = "Chromium preferen\\"ces";')
 | 
| +    self.assertEquals(output.strip(), expected_output.strip())
 | 
| +
 | 
| +  def testMainPolicy(self):
 | 
| +    # Tests a policy group with a single policy of type 'main'.
 | 
| +    grd = self.PrepareTest('''
 | 
| +      {
 | 
| +        'policy_definitions': [
 | 
| +          {
 | 
| +            'name': 'MainGroup',
 | 
| +            'type': 'group',
 | 
| +            'caption': 'Caption of main.',
 | 
| +            'desc': 'Description of main.',
 | 
| +            'policies': [{
 | 
| +              'name': 'MainPolicy',
 | 
| +              'type': 'main',
 | 
| +              'supported_on': ['chrome.mac:8-'],
 | 
| +              'caption': 'Caption of main policy.',
 | 
| +              'desc': 'Description of main policy.',
 | 
| +            }],
 | 
| +          },
 | 
| +        ],
 | 
| +        'placeholders': [],
 | 
| +        'messages': {
 | 
| +          'mac_chrome_preferences': {
 | 
| +            'text': 'Preferences of $1',
 | 
| +            'desc': 'blah'
 | 
| +          }
 | 
| +        }
 | 
| +      }''')
 | 
| +    output = self.GetOutput(
 | 
| +        grd,
 | 
| +        'fr',
 | 
| +        {'_google_chrome' : '1', 'mac_bundle_id': 'com.example.Test'},
 | 
| +        'plist_strings',
 | 
| +        'en')
 | 
| +    expected_output = (
 | 
| +        'Google_Chrome.pfm_title = "Google Chrome";\n'
 | 
| +        'Google_Chrome.pfm_description = "Preferences of Google Chrome";\n'
 | 
| +        'MainPolicy.pfm_title = "Caption of main policy.";\n'
 | 
| +        'MainPolicy.pfm_description = "Description of main policy.";')
 | 
| +    self.assertEquals(output.strip(), expected_output.strip())
 | 
| +
 | 
| +  def testStringPolicy(self):
 | 
| +    # Tests a policy group with a single policy of type 'string'. Also test
 | 
| +    # inheriting group description to policy description.
 | 
| +    grd = self.PrepareTest('''
 | 
| +      {
 | 
| +        'policy_definitions': [
 | 
| +          {
 | 
| +            'name': 'StringGroup',
 | 
| +            'type': 'group',
 | 
| +            'caption': 'Caption of group.',
 | 
| +            'desc': """Description of group.
 | 
| +With a newline.""",
 | 
| +            'policies': [{
 | 
| +              'name': 'StringPolicy',
 | 
| +              'type': 'string',
 | 
| +              'caption': 'Caption of policy.',
 | 
| +              'desc': """Description of policy.
 | 
| +With a newline.""",
 | 
| +              'supported_on': ['chrome.mac:8-'],
 | 
| +            }],
 | 
| +          },
 | 
| +        ],
 | 
| +        'placeholders': [],
 | 
| +        'messages': {
 | 
| +          'mac_chrome_preferences': {
 | 
| +            'text': 'Preferences of $1',
 | 
| +            'desc': 'blah'
 | 
| +          }
 | 
| +        }
 | 
| +      }''')
 | 
| +    output = self.GetOutput(
 | 
| +        grd,
 | 
| +        'fr',
 | 
| +        {'_chromium' : '1', 'mac_bundle_id': 'com.example.Test'},
 | 
| +        'plist_strings',
 | 
| +        'en')
 | 
| +    expected_output = (
 | 
| +        'Chromium.pfm_title = "Chromium";\n'
 | 
| +        'Chromium.pfm_description = "Preferences of Chromium";\n'
 | 
| +        'StringPolicy.pfm_title = "Caption of policy.";\n'
 | 
| +        'StringPolicy.pfm_description = '
 | 
| +            '"Description of policy.\\nWith a newline.";')
 | 
| +    self.assertEquals(output.strip(), expected_output.strip())
 | 
| +
 | 
| +  def testIntEnumPolicy(self):
 | 
| +    # Tests a policy group with a single policy of type 'int-enum'.
 | 
| +    grd = self.PrepareTest('''
 | 
| +      {
 | 
| +        'policy_definitions': [
 | 
| +          {
 | 
| +            'name': 'EnumGroup',
 | 
| +            'type': 'group',
 | 
| +            'desc': '',
 | 
| +            'caption': '',
 | 
| +            'policies': [{
 | 
| +              'name': 'EnumPolicy',
 | 
| +              'type': 'int-enum',
 | 
| +              'desc': 'Description of policy.',
 | 
| +              'caption': 'Caption of policy.',
 | 
| +              'items': [
 | 
| +                {
 | 
| +                  'name': 'ProxyServerDisabled',
 | 
| +                  'value': 0,
 | 
| +                  'caption': 'Option1'
 | 
| +                },
 | 
| +                {
 | 
| +                  'name': 'ProxyServerAutoDetect',
 | 
| +                  'value': 1,
 | 
| +                  'caption': 'Option2'
 | 
| +                },
 | 
| +              ],
 | 
| +              'supported_on': ['chrome.mac:8-'],
 | 
| +            }],
 | 
| +          },
 | 
| +        ],
 | 
| +        'placeholders': [],
 | 
| +        'messages': {
 | 
| +          'mac_chrome_preferences': {
 | 
| +            'text': '$1 preferences',
 | 
| +            'desc': 'blah'
 | 
| +          }
 | 
| +        }
 | 
| +      }''')
 | 
| +    output = self.GetOutput(
 | 
| +        grd,
 | 
| +        'fr',
 | 
| +        {'_google_chrome': '1', 'mac_bundle_id': 'com.example.Test2'},
 | 
| +        'plist_strings',
 | 
| +        'en')
 | 
| +    expected_output = (
 | 
| +        'Google_Chrome.pfm_title = "Google Chrome";\n'
 | 
| +        'Google_Chrome.pfm_description = "Google Chrome preferences";\n'
 | 
| +        'EnumPolicy.pfm_title = "Caption of policy.";\n'
 | 
| +        'EnumPolicy.pfm_description = '
 | 
| +            '"0 - Option1\\n1 - Option2\\nDescription of policy.";\n')
 | 
| +
 | 
| +    self.assertEquals(output.strip(), expected_output.strip())
 | 
| +
 | 
| +  def testStringEnumPolicy(self):
 | 
| +    # Tests a policy group with a single policy of type 'string-enum'.
 | 
| +    grd = self.PrepareTest('''
 | 
| +      {
 | 
| +        'policy_definitions': [
 | 
| +          {
 | 
| +            'name': 'EnumGroup',
 | 
| +            'type': 'group',
 | 
| +            'desc': '',
 | 
| +            'caption': '',
 | 
| +            'policies': [{
 | 
| +              'name': 'EnumPolicy',
 | 
| +              'type': 'string-enum',
 | 
| +              'desc': 'Description of policy.',
 | 
| +              'caption': 'Caption of policy.',
 | 
| +              'items': [
 | 
| +                {
 | 
| +                  'name': 'ProxyServerDisabled',
 | 
| +                  'value': 'one',
 | 
| +                  'caption': 'Option1'
 | 
| +                },
 | 
| +                {
 | 
| +                  'name': 'ProxyServerAutoDetect',
 | 
| +                  'value': 'two',
 | 
| +                  'caption': 'Option2'
 | 
| +                },
 | 
| +              ],
 | 
| +              'supported_on': ['chrome.mac:8-'],
 | 
| +            }],
 | 
| +          },
 | 
| +        ],
 | 
| +        'placeholders': [],
 | 
| +        'messages': {
 | 
| +          'mac_chrome_preferences': {
 | 
| +            'text': '$1 preferences',
 | 
| +            'desc': 'blah'
 | 
| +          }
 | 
| +        }
 | 
| +      }''')
 | 
| +    output = self.GetOutput(
 | 
| +        grd,
 | 
| +        'fr',
 | 
| +        {'_google_chrome': '1', 'mac_bundle_id': 'com.example.Test2'},
 | 
| +        'plist_strings',
 | 
| +        'en')
 | 
| +    expected_output = (
 | 
| +        'Google_Chrome.pfm_title = "Google Chrome";\n'
 | 
| +        'Google_Chrome.pfm_description = "Google Chrome preferences";\n'
 | 
| +        'EnumPolicy.pfm_title = "Caption of policy.";\n'
 | 
| +        'EnumPolicy.pfm_description = '
 | 
| +            '"one - Option1\\ntwo - Option2\\nDescription of policy.";\n')
 | 
| +
 | 
| +    self.assertEquals(output.strip(), expected_output.strip())
 | 
| +
 | 
| +  def testNonSupportedPolicy(self):
 | 
| +    # Tests a policy that is not supported on Mac, so its strings shouldn't
 | 
| +    # be included in the plist string table.
 | 
| +    grd = self.PrepareTest('''
 | 
| +      {
 | 
| +        'policy_definitions': [
 | 
| +          {
 | 
| +            'name': 'NonMacGroup',
 | 
| +            'type': 'group',
 | 
| +            'caption': '',
 | 
| +            'desc': '',
 | 
| +            'policies': [{
 | 
| +              'name': 'NonMacPolicy',
 | 
| +              'type': 'string',
 | 
| +              'caption': '',
 | 
| +              'desc': '',
 | 
| +              'supported_on': ['chrome_os:8-'],
 | 
| +            }],
 | 
| +          },
 | 
| +        ],
 | 
| +        'placeholders': [],
 | 
| +        'messages': {
 | 
| +          'mac_chrome_preferences': {
 | 
| +            'text': '$1 preferences',
 | 
| +            'desc': 'blah'
 | 
| +          }
 | 
| +        }
 | 
| +      }''')
 | 
| +    output = self.GetOutput(
 | 
| +        grd,
 | 
| +        'fr',
 | 
| +        {'_google_chrome': '1', 'mac_bundle_id': 'com.example.Test2'},
 | 
| +        'plist_strings',
 | 
| +        'en')
 | 
| +    expected_output = (
 | 
| +        'Google_Chrome.pfm_title = "Google Chrome";\n'
 | 
| +        'Google_Chrome.pfm_description = "Google Chrome preferences";')
 | 
| +    self.assertEquals(output.strip(), expected_output.strip())
 | 
| +
 | 
| +
 | 
| +if __name__ == '__main__':
 | 
| +  unittest.main()
 | 
| 
 | 
| Property changes on: grit/format/policy_templates/writers/plist_strings_writer_unittest.py
 | 
| ___________________________________________________________________
 | 
| Added: svn:eol-style
 | 
|    + LF
 | 
| 
 | 
| 
 |