| Index: grit/format/c_format_unittest.py
|
| diff --git a/grit/format/c_format_unittest.py b/grit/format/c_format_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..21d7b1c267d05fa3e32bc0bba03aba753c439ab7
|
| --- /dev/null
|
| +++ b/grit/format/c_format_unittest.py
|
| @@ -0,0 +1,75 @@
|
| +#!/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.
|
| +
|
| +"""Unittest for c_format.py.
|
| +"""
|
| +
|
| +import unittest
|
| +import StringIO
|
| +
|
| +from grit import grd_reader
|
| +from grit import util
|
| +from grit.tool import build
|
| +
|
| +
|
| +class CFormatUnittest(unittest.TestCase):
|
| +
|
| + def testMessages(self):
|
| + root = grd_reader.Parse(StringIO.StringIO("""
|
| + <messages>
|
| + <message name="IDS_QUESTIONS">Do you want to play questions?</message>
|
| + <message name="IDS_QUOTES">
|
| + "What's in a name, <ph name="NAME">%s<ex>Brandon</ex></ph>?"
|
| + </message>
|
| + <message name="IDS_LINE_BREAKS">
|
| + Was that rhetoric?
|
| +No.
|
| +Statement. Two all. Game point.
|
| +</message>
|
| + <message name="IDS_NON_ASCII">
|
| + \xc3\xb5\\xc2\\xa4\\\xc2\xa4\\\\xc3\\xb5\xe4\xa4\xa4
|
| + </message>
|
| + </messages>
|
| + """), flexible_root=True)
|
| + util.FixRootForUnittest(root)
|
| +
|
| + buf = StringIO.StringIO()
|
| + build.RcBuilder.ProcessNode(root, DummyOutput('c_format', 'en'), buf)
|
| + output = buf.getvalue()
|
| + test = u"""
|
| +const char* GetString(int id) {
|
| + switch (id) {
|
| + case IDS_QUESTIONS:
|
| + return "Do you want to play questions?";
|
| + case IDS_QUOTES:
|
| + return "\\"What\\'s in a name, %s?\\"";
|
| + case IDS_LINE_BREAKS:
|
| + return "Was that rhetoric?\\nNo.\\nStatement. Two all. Game point.";
|
| + case IDS_NON_ASCII:
|
| + return "\\303\\265\\xc2\\xa4\\\\302\\244\\\\xc3\\xb5\\344\\244\\244";
|
| + default:
|
| + return 0;
|
| + }
|
| +}"""
|
| + self.failUnless(output.strip() == test.strip())
|
| +
|
| +
|
| +class DummyOutput(object):
|
| +
|
| + def __init__(self, type, language):
|
| + self.type = type
|
| + self.language = language
|
| +
|
| + def GetType(self):
|
| + return self.type
|
| +
|
| + def GetLanguage(self):
|
| + return self.language
|
| +
|
| + def GetOutputFilename(self):
|
| + return 'hello.gif'
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|