| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/env python | |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 3 # Use of this source code is governed by a BSD-style license that can be | |
| 4 # found in the LICENSE file. | |
| 5 | |
| 6 '''Unit tests for grit.node.message''' | |
| 7 | |
| 8 | |
| 9 import os | |
| 10 import sys | |
| 11 if __name__ == '__main__': | |
| 12 sys.path.append(os.path.join(os.path.dirname(__file__), '../..')) | |
| 13 | |
| 14 import unittest | |
| 15 import StringIO | |
| 16 | |
| 17 from grit import tclib | |
| 18 from grit import util | |
| 19 from grit.node import message | |
| 20 | |
| 21 class MessageUnittest(unittest.TestCase): | |
| 22 def testMessage(self): | |
| 23 root = util.ParseGrdForUnittest(''' | |
| 24 <messages> | |
| 25 <message name="IDS_GREETING" | |
| 26 desc="Printed to greet the currently logged in user"> | |
| 27 Hello <ph name="USERNAME">%s<ex>Joi</ex></ph>, how are you doing today? | |
| 28 </message> | |
| 29 </messages>''') | |
| 30 msg, = root.GetChildrenOfType(message.MessageNode) | |
| 31 cliques = msg.GetCliques() | |
| 32 content = cliques[0].GetMessage().GetPresentableContent() | |
| 33 self.failUnless(content == 'Hello USERNAME, how are you doing today?') | |
| 34 | |
| 35 def testMessageWithWhitespace(self): | |
| 36 root = util.ParseGrdForUnittest("""\ | |
| 37 <messages> | |
| 38 <message name="IDS_BLA" desc=""> | |
| 39 ''' Hello there <ph name="USERNAME">%s</ph> ''' | |
| 40 </message> | |
| 41 </messages>""") | |
| 42 msg, = root.GetChildrenOfType(message.MessageNode) | |
| 43 content = msg.GetCliques()[0].GetMessage().GetPresentableContent() | |
| 44 self.failUnless(content == 'Hello there USERNAME') | |
| 45 self.failUnless(msg.ws_at_start == ' ') | |
| 46 self.failUnless(msg.ws_at_end == ' ') | |
| 47 | |
| 48 def testConstruct(self): | |
| 49 msg = tclib.Message(text=" Hello USERNAME, how are you? BINGO\t\t", | |
| 50 placeholders=[tclib.Placeholder('USERNAME', '%s', 'Joi')
, | |
| 51 tclib.Placeholder('BINGO', '%d', '11')]) | |
| 52 msg_node = message.MessageNode.Construct(None, msg, 'BINGOBONGO') | |
| 53 self.failUnless(msg_node.children[0].name == 'ph') | |
| 54 self.failUnless(msg_node.children[0].children[0].name == 'ex') | |
| 55 self.failUnless(msg_node.children[0].children[0].GetCdata() == 'Joi') | |
| 56 self.failUnless(msg_node.children[1].children[0].GetCdata() == '11') | |
| 57 self.failUnless(msg_node.ws_at_start == ' ') | |
| 58 self.failUnless(msg_node.ws_at_end == '\t\t') | |
| 59 | |
| 60 def testUnicodeConstruct(self): | |
| 61 text = u'Howdie \u00fe' | |
| 62 msg = tclib.Message(text=text) | |
| 63 msg_node = message.MessageNode.Construct(None, msg, 'BINGOBONGO') | |
| 64 msg_from_node = msg_node.GetCdata() | |
| 65 self.failUnless(msg_from_node == text) | |
| 66 | |
| 67 def testFormatterData(self): | |
| 68 root = util.ParseGrdForUnittest("""\ | |
| 69 <messages> | |
| 70 <message name="IDS_BLA" desc="" formatter_data=" foo=123 bar qux=low"> | |
| 71 Text | |
| 72 </message> | |
| 73 </messages>""") | |
| 74 msg, = root.GetChildrenOfType(message.MessageNode) | |
| 75 expected_formatter_data = { | |
| 76 'foo': '123', | |
| 77 'bar': '', | |
| 78 'qux': 'low'} | |
| 79 | |
| 80 # Can't use assertDictEqual, not available in Python 2.6, so do it | |
| 81 # by hand. | |
| 82 self.failUnlessEqual(len(expected_formatter_data), | |
| 83 len(msg.formatter_data)) | |
| 84 for key in expected_formatter_data: | |
| 85 self.failUnlessEqual(expected_formatter_data[key], | |
| 86 msg.formatter_data[key]) | |
| 87 | |
| 88 | |
| 89 if __name__ == '__main__': | |
| 90 unittest.main() | |
| OLD | NEW |