| Index: grit/gather/policy_json_unittest.py
|
| ===================================================================
|
| --- grit/gather/policy_json_unittest.py (revision 202)
|
| +++ grit/gather/policy_json_unittest.py (working copy)
|
| @@ -1,190 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# 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.gather.policy_json'''
|
| -
|
| -import os
|
| -import re
|
| -import sys
|
| -if __name__ == '__main__':
|
| - sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
|
| -
|
| -import unittest
|
| -import StringIO
|
| -
|
| -from grit.gather import policy_json
|
| -
|
| -class PolicyJsonUnittest(unittest.TestCase):
|
| -
|
| - def GetExpectedOutput(self, original):
|
| - expected = eval(original)
|
| - for key, message in expected['messages'].iteritems():
|
| - del message['desc']
|
| - return expected
|
| -
|
| - def testEmpty(self):
|
| - original = "{'policy_definitions': [], 'messages': {}}"
|
| - gatherer = policy_json.PolicyJson(StringIO.StringIO(original))
|
| - gatherer.Parse()
|
| - self.failUnless(len(gatherer.GetCliques()) == 0)
|
| - self.failUnless(eval(original) == eval(gatherer.Translate('en')))
|
| -
|
| - def testGeneralPolicy(self):
|
| - original = (
|
| - "{"
|
| - " 'policy_definitions': ["
|
| - " {"
|
| - " 'name': 'HomepageLocation',"
|
| - " 'type': 'string',"
|
| - " 'supported_on': ['chrome.*:8-'],"
|
| - " 'features': {'dynamic_refresh': 1},"
|
| - " 'example_value': 'http://chromium.org',"
|
| - " 'caption': 'nothing special 1',"
|
| - " 'desc': 'nothing special 2',"
|
| - " 'label': 'nothing special 3',"
|
| - " },"
|
| - " ],"
|
| - " 'messages': {"
|
| - " 'msg_identifier': {"
|
| - " 'text': 'nothing special 3',"
|
| - " 'desc': 'nothing special descr 3',"
|
| - " }"
|
| - " }"
|
| - "}")
|
| - gatherer = policy_json.PolicyJson(StringIO.StringIO(original))
|
| - gatherer.Parse()
|
| - self.failUnless(len(gatherer.GetCliques()) == 4)
|
| - expected = self.GetExpectedOutput(original)
|
| - self.failUnless(expected == eval(gatherer.Translate('en')))
|
| -
|
| - def testEnum(self):
|
| - original = (
|
| - "{"
|
| - " 'policy_definitions': ["
|
| - " {"
|
| - " 'name': 'Policy1',"
|
| - " 'items': ["
|
| - " {"
|
| - " 'name': 'Item1',"
|
| - " 'caption': 'nothing special',"
|
| - " }"
|
| - " ]"
|
| - " },"
|
| - " ],"
|
| - " 'messages': {}"
|
| - "}")
|
| - gatherer = policy_json.PolicyJson(StringIO.StringIO(original))
|
| - gatherer.Parse()
|
| - self.failUnless(len(gatherer.GetCliques()) == 1)
|
| - expected = self.GetExpectedOutput(original)
|
| - self.failUnless(expected == eval(gatherer.Translate('en')))
|
| -
|
| - def testSubPolicy(self):
|
| - original = (
|
| - "{"
|
| - " 'policy_definitions': ["
|
| - " {"
|
| - " 'policies': ["
|
| - " {"
|
| - " 'name': 'Policy1',"
|
| - " 'caption': 'nothing special',"
|
| - " }"
|
| - " ]"
|
| - " },"
|
| - " ],"
|
| - " 'messages': {}"
|
| - "}")
|
| - gatherer = policy_json.PolicyJson(StringIO.StringIO(original))
|
| - gatherer.Parse()
|
| - self.failUnless(len(gatherer.GetCliques()) == 1)
|
| - expected = self.GetExpectedOutput(original)
|
| - self.failUnless(expected == eval(gatherer.Translate('en')))
|
| -
|
| - def testEscapingAndLineBreaks(self):
|
| - original = """{
|
| - 'policy_definitions': [],
|
| - 'messages': {
|
| - 'msg1': {
|
| - # The following line will contain two backslash characters when it
|
| - # ends up in eval().
|
| - 'text': '''backslashes, Sir? \\\\''',
|
| - 'desc': '',
|
| - },
|
| - 'msg2': {
|
| - 'text': '''quotes, Madam? "''',
|
| - 'desc': '',
|
| - },
|
| - 'msg3': {
|
| - # The following line will contain two backslash characters when it
|
| - # ends up in eval().
|
| - 'text': 'backslashes, Sir? \\\\',
|
| - 'desc': '',
|
| - },
|
| - 'msg4': {
|
| - 'text': "quotes, Madam? '",
|
| - 'desc': '',
|
| - },
|
| - 'msg5': {
|
| - 'text': '''what happens
|
| -with a newline?''',
|
| - 'desc': ''
|
| - },
|
| - 'msg6': {
|
| - # The following line will contain a backslash+n when it ends up in
|
| - # eval().
|
| - 'text': 'what happens\\nwith a newline? (Episode 1)',
|
| - 'desc': ''
|
| - }
|
| - }
|
| -}"""
|
| - gatherer = policy_json.PolicyJson(StringIO.StringIO(original))
|
| - gatherer.Parse()
|
| - self.failUnless(len(gatherer.GetCliques()) == 6)
|
| - expected = self.GetExpectedOutput(original)
|
| - self.failUnless(expected == eval(gatherer.Translate('en')))
|
| -
|
| - def testPlaceholders(self):
|
| - original = """{
|
| - 'policy_definitions': [
|
| - {
|
| - 'name': 'Policy1',
|
| - 'caption': '''Please install
|
| - <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>.''',
|
| - },
|
| - ],
|
| - 'messages': {}
|
| -}"""
|
| - gatherer = policy_json.PolicyJson(StringIO.StringIO(original))
|
| - gatherer.Parse()
|
| - self.failUnless(len(gatherer.GetCliques()) == 1)
|
| - expected = eval(re.sub('<ph.*ph>', '$1', original))
|
| - self.failUnless(expected == eval(gatherer.Translate('en')))
|
| - self.failUnless(gatherer.GetCliques()[0].translateable)
|
| - msg = gatherer.GetCliques()[0].GetMessage()
|
| - self.failUnless(len(msg.GetPlaceholders()) == 1)
|
| - ph = msg.GetPlaceholders()[0]
|
| - self.failUnless(ph.GetOriginal() == '$1')
|
| - self.failUnless(ph.GetPresentation() == 'PRODUCT_NAME')
|
| - self.failUnless(ph.GetExample() == 'Google Chrome')
|
| -
|
| - def testGetDescription(self):
|
| - gatherer = policy_json.PolicyJson({})
|
| - self.assertEquals(
|
| - gatherer._GetDescription({'name': 'Policy1'}, 'policy', None, 'desc'),
|
| - 'Description of the policy named Policy1')
|
| - self.assertEquals(
|
| - gatherer._GetDescription({'name': 'Plcy2'}, 'policy', None, 'caption'),
|
| - 'Caption of the policy named Plcy2')
|
| - self.assertEquals(
|
| - gatherer._GetDescription({'name': 'Plcy3'}, 'policy', None, 'label'),
|
| - 'Label of the policy named Plcy3')
|
| - self.assertEquals(
|
| - gatherer._GetDescription({'name': 'Item'}, 'enum_item',
|
| - {'name': 'Policy'}, 'caption'),
|
| - 'Caption of the option named Item in policy Policy')
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - unittest.main()
|
|
|