def testGetDescription(self): gatherer = policy_json.PolicyJson({}) gatherer.SetDefines({'_google_chrome': True}) self.assertEquals( gatherer._GetDescription({ 'name': 'Policy1', 'owners': ['a@b'] }, 'policy', None, 'desc'), 'Description of the policy named Policy1 [owner(s): a@b]') self.assertEquals( gatherer._GetDescription( { 'name': 'Plcy2', 'owners': ['a@b', 'c@d'] }, 'policy', None, 'caption'), 'Caption of the policy named Plcy2 [owner(s): a@b,c@d]') self.assertEquals( gatherer._GetDescription({ 'name': 'Plcy3', 'owners': ['a@b'] }, 'policy', None, 'label'), 'Label of the policy named Plcy3 [owner(s): a@b]') self.assertEquals( gatherer._GetDescription({'name': 'Item'}, 'enum_item', { 'name': 'Plcy', 'owners': ['a@b'] }, 'caption'), 'Caption of the option named Item in policy Plcy [owner(s): a@b]')
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 testPlaceholdersChrome(self): original = """{ "policy_definitions": [ { "name": "Policy1", "caption": "Please install\\n<ph name=\\"PRODUCT_NAME\\">$1<ex>Google Chrome</ex></ph>.", "owners": "a@b" } ], "policy_atomic_group_definitions": [], "messages": {} }""" gatherer = policy_json.PolicyJson(StringIO(original)) gatherer.SetDefines({'_google_chrome': True}) gatherer.Parse() self.failUnless(len(gatherer.GetCliques()) == 1) expected = json.loads(re.sub('<ph.*ph>', 'Google Chrome', original)) self.failUnless(expected == json.loads(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() == 'Google Chrome') self.failUnless(ph.GetPresentation() == 'PRODUCT_NAME') self.failUnless(ph.GetExample() == 'Google Chrome')
def testSchema(self): original = ("{" " 'policy_definitions': [" " {" " 'name': 'Policy1'," " 'schema': {" " 'type': 'object'," " 'properties': {" " 'outer': {" " 'description': 'outer description'," " 'type': 'object'," " 'inner': {" " 'description': 'inner description'," " 'type': 'integer'," " }," " }," " }," " }," " 'caption': 'nothing special'," " }," " ]," " 'policy_atomic_group_definitions': []," " 'messages': {}" "}") gatherer = policy_json.PolicyJson(StringIO.StringIO(original)) gatherer.Parse() self.failUnless(len(gatherer.GetCliques()) == 3) expected = self.GetExpectedOutput(original) self.failUnless(expected == eval(gatherer.Translate('en')))
def testEmpty(self): original = """{ 'policy_definitions': [], 'policy_atomic_group_definitions': [], 'messages': {} }""" gatherer = policy_json.PolicyJson(StringIO.StringIO(original)) gatherer.Parse() self.failUnless(len(gatherer.GetCliques()) == 0) self.failUnless(eval(original) == json.loads(gatherer.Translate('en')))
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')
def testEscapingAndLineBreaks(self): original = """{ 'policy_definitions': [], 'policy_atomic_group_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 == json.loads(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 testSubPolicyNewFormat(self): original = ("{" " 'policy_definitions': [" " {" " 'type': 'group'," " 'policies': ['Policy1']" " }," " {" " 'name': 'Policy1'," " 'caption': 'nothing special'," " }" " ]," " 'policy_atomic_group_definitions': []," " 'messages': {}" "}") gatherer = policy_json.PolicyJson(StringIO(original)) gatherer.Parse() self.failUnless(len(gatherer.GetCliques()) == 1) expected = self.GetExpectedOutput(original) self.failUnless(expected == json.loads(gatherer.Translate('en')))
def testDescriptionSchema(self): original = ("{" " 'policy_definitions': [" " {" " 'name': 'Policy1'," " 'description_schema': {" " 'type': 'object'," " 'properties': {" " 'description': 'properties description'," " 'type': 'object'," " }," " }," " }," " ]," " 'policy_atomic_group_definitions': []," " 'messages': {}" "}") gatherer = policy_json.PolicyJson(StringIO.StringIO(original)) gatherer.Parse() self.failUnless(len(gatherer.GetCliques()) == 1) expected = self.GetExpectedOutput(original) self.failUnless(expected == json.loads(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 testSchema(self): original = ( "{" " 'policy_definitions': [" " {" " 'name': 'Policy1'," " 'schema': {" " 'type': 'object'," " 'properties': {" " 'outer': {" " 'description': 'outer description'," " 'type': 'object'," " 'inner': {" " 'description': 'inner description'," " 'type': 'integer', 'minimum': 0, 'maximum': 100" " }," " 'inner2': {" " 'description': 'inner2 description'," " 'type': 'integer'," " 'enum': [ 1, 2, 3 ]," " 'sensitiveValue': True" " }," " }," " }," " }," " 'caption': 'nothing special'," " 'owners': ['a@b']" " }," " ]," " 'policy_atomic_group_definitions': []," " 'messages': {}" "}") gatherer = policy_json.PolicyJson(StringIO(original)) gatherer.Parse() self.failUnless(len(gatherer.GetCliques()) == 4) expected = self.GetExpectedOutput(original) self.failUnless(expected == json.loads(gatherer.Translate('en')))
def testEmpty(self): original = "{'policy_definitions': [], 'messages': {}}" gatherer = policy_json.PolicyJson(original) gatherer.Parse() self.failUnless(len(gatherer.GetCliques()) == 0) self.failUnless(eval(original) == eval(gatherer.Translate('en')))