| Index: tools/grit/grit/node/message_unittest.py
|
| diff --git a/tools/grit/grit/node/message_unittest.py b/tools/grit/grit/node/message_unittest.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..a058257a74cbcbc7c3b74174247735e7a94ab84b
|
| --- /dev/null
|
| +++ b/tools/grit/grit/node/message_unittest.py
|
| @@ -0,0 +1,90 @@
|
| +#!/usr/bin/env python
|
| +# Copyright (c) 2012 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.node.message'''
|
| +
|
| +
|
| +import os
|
| +import sys
|
| +if __name__ == '__main__':
|
| + sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
|
| +
|
| +import unittest
|
| +import StringIO
|
| +
|
| +from grit import tclib
|
| +from grit import util
|
| +from grit.node import message
|
| +
|
| +class MessageUnittest(unittest.TestCase):
|
| + def testMessage(self):
|
| + root = util.ParseGrdForUnittest('''
|
| + <messages>
|
| + <message name="IDS_GREETING"
|
| + desc="Printed to greet the currently logged in user">
|
| + Hello <ph name="USERNAME">%s<ex>Joi</ex></ph>, how are you doing today?
|
| + </message>
|
| + </messages>''')
|
| + msg, = root.GetChildrenOfType(message.MessageNode)
|
| + cliques = msg.GetCliques()
|
| + content = cliques[0].GetMessage().GetPresentableContent()
|
| + self.failUnless(content == 'Hello USERNAME, how are you doing today?')
|
| +
|
| + def testMessageWithWhitespace(self):
|
| + root = util.ParseGrdForUnittest("""\
|
| + <messages>
|
| + <message name="IDS_BLA" desc="">
|
| + ''' Hello there <ph name="USERNAME">%s</ph> '''
|
| + </message>
|
| + </messages>""")
|
| + msg, = root.GetChildrenOfType(message.MessageNode)
|
| + content = msg.GetCliques()[0].GetMessage().GetPresentableContent()
|
| + self.failUnless(content == 'Hello there USERNAME')
|
| + self.failUnless(msg.ws_at_start == ' ')
|
| + self.failUnless(msg.ws_at_end == ' ')
|
| +
|
| + def testConstruct(self):
|
| + msg = tclib.Message(text=" Hello USERNAME, how are you? BINGO\t\t",
|
| + placeholders=[tclib.Placeholder('USERNAME', '%s', 'Joi'),
|
| + tclib.Placeholder('BINGO', '%d', '11')])
|
| + msg_node = message.MessageNode.Construct(None, msg, 'BINGOBONGO')
|
| + self.failUnless(msg_node.children[0].name == 'ph')
|
| + self.failUnless(msg_node.children[0].children[0].name == 'ex')
|
| + self.failUnless(msg_node.children[0].children[0].GetCdata() == 'Joi')
|
| + self.failUnless(msg_node.children[1].children[0].GetCdata() == '11')
|
| + self.failUnless(msg_node.ws_at_start == ' ')
|
| + self.failUnless(msg_node.ws_at_end == '\t\t')
|
| +
|
| + def testUnicodeConstruct(self):
|
| + text = u'Howdie \u00fe'
|
| + msg = tclib.Message(text=text)
|
| + msg_node = message.MessageNode.Construct(None, msg, 'BINGOBONGO')
|
| + msg_from_node = msg_node.GetCdata()
|
| + self.failUnless(msg_from_node == text)
|
| +
|
| + def testFormatterData(self):
|
| + root = util.ParseGrdForUnittest("""\
|
| + <messages>
|
| + <message name="IDS_BLA" desc="" formatter_data=" foo=123 bar qux=low">
|
| + Text
|
| + </message>
|
| + </messages>""")
|
| + msg, = root.GetChildrenOfType(message.MessageNode)
|
| + expected_formatter_data = {
|
| + 'foo': '123',
|
| + 'bar': '',
|
| + 'qux': 'low'}
|
| +
|
| + # Can't use assertDictEqual, not available in Python 2.6, so do it
|
| + # by hand.
|
| + self.failUnlessEqual(len(expected_formatter_data),
|
| + len(msg.formatter_data))
|
| + for key in expected_formatter_data:
|
| + self.failUnlessEqual(expected_formatter_data[key],
|
| + msg.formatter_data[key])
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|