summaryrefslogtreecommitdiffstats
path: root/tools/grit/grit/format/c_format_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/grit/grit/format/c_format_unittest.py')
-rwxr-xr-xtools/grit/grit/format/c_format_unittest.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/tools/grit/grit/format/c_format_unittest.py b/tools/grit/grit/format/c_format_unittest.py
new file mode 100755
index 0000000..ba1c5c7
--- /dev/null
+++ b/tools/grit/grit/format/c_format_unittest.py
@@ -0,0 +1,78 @@
+#!/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 os
+import sys
+if __name__ == '__main__':
+ sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
+
+import unittest
+import StringIO
+
+from grit import util
+from grit.tool import build
+
+
+class CFormatUnittest(unittest.TestCase):
+
+ def testMessages(self):
+ root = util.ParseGrdForUnittest("""
+ <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>
+ """)
+
+ buf = StringIO.StringIO()
+ build.RcBuilder.ProcessNode(root, DummyOutput('c_format', 'en'), buf)
+ output = util.StripBlankLinesAndComments(buf.getvalue())
+ self.assertEqual(u"""\
+#include "resource.h"
+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;
+ }
+}""", output)
+
+
+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()